Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index db9e2ef7b10f95e01cfce86773eed94bd6a6ce32..50f4031b79cfd2aaa4f19b22ed0dcbc8435a4a16 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -408,7 +408,7 @@ bool MaybeObject::IsRetryAfterGC() { |
bool MaybeObject::IsOutOfMemory() { |
return HAS_FAILURE_TAG(this) |
- && Failure::cast(this)->IsOutOfMemoryException(); |
+ && Failure::cast(this)->IsOutOfMemoryException(); |
} |
@@ -430,26 +430,26 @@ Failure* Failure::cast(MaybeObject* obj) { |
bool Object::IsJSObject() { |
return IsHeapObject() |
- && HeapObject::cast(this)->map()->instance_type() >= FIRST_JS_OBJECT_TYPE; |
+ && HeapObject::cast(this)->map()->instance_type() >= FIRST_JS_OBJECT_TYPE; |
} |
bool Object::IsJSContextExtensionObject() { |
return IsHeapObject() |
- && (HeapObject::cast(this)->map()->instance_type() == |
- JS_CONTEXT_EXTENSION_OBJECT_TYPE); |
+ && (HeapObject::cast(this)->map()->instance_type() == |
+ JS_CONTEXT_EXTENSION_OBJECT_TYPE); |
} |
bool Object::IsMap() { |
return Object::IsHeapObject() |
- && HeapObject::cast(this)->map()->instance_type() == MAP_TYPE; |
+ && HeapObject::cast(this)->map()->instance_type() == MAP_TYPE; |
} |
bool Object::IsFixedArray() { |
return Object::IsHeapObject() |
- && HeapObject::cast(this)->map()->instance_type() == FIXED_ARRAY_TYPE; |
+ && HeapObject::cast(this)->map()->instance_type() == FIXED_ARRAY_TYPE; |
} |
@@ -495,19 +495,19 @@ bool Object::IsContext() { |
bool Object::IsCatchContext() { |
return Object::IsHeapObject() |
- && HeapObject::cast(this)->map() == Heap::catch_context_map(); |
+ && HeapObject::cast(this)->map() == Heap::catch_context_map(); |
} |
bool Object::IsGlobalContext() { |
return Object::IsHeapObject() |
- && HeapObject::cast(this)->map() == Heap::global_context_map(); |
+ && HeapObject::cast(this)->map() == Heap::global_context_map(); |
} |
bool Object::IsJSFunction() { |
return Object::IsHeapObject() |
- && HeapObject::cast(this)->map()->instance_type() == JS_FUNCTION_TYPE; |
+ && HeapObject::cast(this)->map()->instance_type() == JS_FUNCTION_TYPE; |
} |
@@ -518,7 +518,7 @@ template <> inline bool Is<JSFunction>(Object* obj) { |
bool Object::IsCode() { |
return Object::IsHeapObject() |
- && HeapObject::cast(this)->map()->instance_type() == CODE_TYPE; |
+ && HeapObject::cast(this)->map()->instance_type() == CODE_TYPE; |
} |
@@ -544,7 +544,14 @@ bool Object::IsSharedFunctionInfo() { |
bool Object::IsJSValue() { |
return Object::IsHeapObject() |
- && HeapObject::cast(this)->map()->instance_type() == JS_VALUE_TYPE; |
+ && HeapObject::cast(this)->map()->instance_type() == JS_VALUE_TYPE; |
+} |
+ |
+ |
+bool Object::IsJSMessageObject() { |
+ return Object::IsHeapObject() |
+ && (HeapObject::cast(this)->map()->instance_type() == |
+ JS_MESSAGE_OBJECT_TYPE); |
} |
@@ -555,7 +562,7 @@ bool Object::IsStringWrapper() { |
bool Object::IsProxy() { |
return Object::IsHeapObject() |
- && HeapObject::cast(this)->map()->instance_type() == PROXY_TYPE; |
+ && HeapObject::cast(this)->map()->instance_type() == PROXY_TYPE; |
} |
@@ -566,13 +573,13 @@ bool Object::IsBoolean() { |
bool Object::IsJSArray() { |
return Object::IsHeapObject() |
- && HeapObject::cast(this)->map()->instance_type() == JS_ARRAY_TYPE; |
+ && HeapObject::cast(this)->map()->instance_type() == JS_ARRAY_TYPE; |
} |
bool Object::IsJSRegExp() { |
return Object::IsHeapObject() |
- && HeapObject::cast(this)->map()->instance_type() == JS_REGEXP_TYPE; |
+ && HeapObject::cast(this)->map()->instance_type() == JS_REGEXP_TYPE; |
} |
@@ -583,7 +590,7 @@ template <> inline bool Is<JSArray>(Object* obj) { |
bool Object::IsHashTable() { |
return Object::IsHeapObject() |
- && HeapObject::cast(this)->map() == Heap::hash_table_map(); |
+ && HeapObject::cast(this)->map() == Heap::hash_table_map(); |
} |
@@ -1285,6 +1292,8 @@ int JSObject::GetHeaderSize() { |
return JSValue::kSize; |
case JS_CONTEXT_EXTENSION_OBJECT_TYPE: |
return JSObject::kHeaderSize; |
+ case JS_MESSAGE_OBJECT_TYPE: |
+ return JSMessageObject::kSize; |
default: |
UNREACHABLE(); |
return 0; |
@@ -3289,6 +3298,22 @@ JSValue* JSValue::cast(Object* obj) { |
} |
+ACCESSORS(JSMessageObject, type, String, kTypeOffset) |
+ACCESSORS(JSMessageObject, arguments, JSArray, kArgumentsOffset) |
+ACCESSORS(JSMessageObject, script, Object, kScriptOffset) |
+ACCESSORS(JSMessageObject, stack_trace, Object, kStackTraceOffset) |
+ACCESSORS(JSMessageObject, stack_frames, Object, kStackFramesOffset) |
+SMI_ACCESSORS(JSMessageObject, start_position, kStartPositionOffset) |
+SMI_ACCESSORS(JSMessageObject, end_position, kEndPositionOffset) |
+ |
+ |
+JSMessageObject* JSMessageObject::cast(Object* obj) { |
+ ASSERT(obj->IsJSMessageObject()); |
+ ASSERT(HeapObject::cast(obj)->Size() == JSMessageObject::kSize); |
+ return reinterpret_cast<JSMessageObject*>(obj); |
+} |
+ |
+ |
INT_ACCESSORS(Code, instruction_size, kInstructionSizeOffset) |
ACCESSORS(Code, relocation_info, ByteArray, kRelocationInfoOffset) |
ACCESSORS(Code, deoptimization_data, FixedArray, kDeoptimizationDataOffset) |