Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index bc6217ba5ebe66ae613719d5c67c06a91952c363..a081b35a3831fa94e968aed59bfed286b303fe97 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -605,6 +605,7 @@ TYPE_CHECKER(Oddball, ODDBALL_TYPE) |
TYPE_CHECKER(JSGlobalPropertyCell, JS_GLOBAL_PROPERTY_CELL_TYPE) |
TYPE_CHECKER(SharedFunctionInfo, SHARED_FUNCTION_INFO_TYPE) |
TYPE_CHECKER(JSValue, JS_VALUE_TYPE) |
+TYPE_CHECKER(JSDate, JS_DATE_TYPE) |
TYPE_CHECKER(JSMessageObject, JS_MESSAGE_OBJECT_TYPE) |
@@ -800,6 +801,11 @@ double Object::Number() { |
} |
+bool Object::IsNaN() { |
+ return this->IsHeapNumber() && isnan(HeapNumber::cast(this)->value()); |
+} |
+ |
+ |
MaybeObject* Object::ToSmi() { |
if (IsSmi()) return this; |
if (IsHeapNumber()) { |
@@ -1425,6 +1431,8 @@ int JSObject::GetHeaderSize() { |
return JSFunction::kSize; |
case JS_VALUE_TYPE: |
return JSValue::kSize; |
+ case JS_DATE_TYPE: |
+ return JSDate::kSize; |
case JS_ARRAY_TYPE: |
return JSArray::kSize; |
case JS_WEAK_MAP_TYPE: |
@@ -4118,6 +4126,24 @@ JSValue* JSValue::cast(Object* obj) { |
} |
+ACCESSORS(JSDate, value, Object, kValueOffset) |
+ACCESSORS(JSDate, cache_stamp, Object, kCacheStampOffset) |
+ACCESSORS(JSDate, year, Object, kYearOffset) |
+ACCESSORS(JSDate, month, Object, kMonthOffset) |
+ACCESSORS(JSDate, day, Object, kDayOffset) |
+ACCESSORS(JSDate, hour, Object, kHourOffset) |
+ACCESSORS(JSDate, min, Object, kMinOffset) |
+ACCESSORS(JSDate, sec, Object, kSecOffset) |
+ACCESSORS(JSDate, weekday, Object, kWeekdayOffset) |
rossberg
2012/03/06 15:55:50
Nit: reorder for consistency.
ulan
2012/03/07 10:55:21
Done.
|
+ |
+ |
+JSDate* JSDate::cast(Object* obj) { |
+ ASSERT(obj->IsJSDate()); |
+ ASSERT(HeapObject::cast(obj)->Size() == JSDate::kSize); |
+ return reinterpret_cast<JSDate*>(obj); |
+} |
+ |
+ |
ACCESSORS(JSMessageObject, type, String, kTypeOffset) |
ACCESSORS(JSMessageObject, arguments, JSArray, kArgumentsOffset) |
ACCESSORS(JSMessageObject, script, Object, kScriptOffset) |