| Index: src/objects-inl.h
|
| ===================================================================
|
| --- src/objects-inl.h (revision 7030)
|
| +++ src/objects-inl.h (working copy)
|
| @@ -58,8 +58,7 @@
|
|
|
|
|
| PropertyDetails PropertyDetails::AsDeleted() {
|
| - PropertyDetails d(DONT_ENUM, NORMAL);
|
| - Smi* smi = Smi::FromInt(AsSmi()->value() | DeletedField::encode(1));
|
| + Smi* smi = Smi::FromInt(value_ | DeletedField::encode(1));
|
| return PropertyDetails(smi);
|
| }
|
|
|
| @@ -419,7 +418,7 @@
|
|
|
| bool MaybeObject::IsOutOfMemory() {
|
| return HAS_FAILURE_TAG(this)
|
| - && Failure::cast(this)->IsOutOfMemoryException();
|
| + && Failure::cast(this)->IsOutOfMemoryException();
|
| }
|
|
|
|
|
| @@ -441,26 +440,26 @@
|
|
|
| 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;
|
| }
|
|
|
|
|
| @@ -523,7 +522,7 @@
|
|
|
| bool Object::IsJSFunction() {
|
| return Object::IsHeapObject()
|
| - && HeapObject::cast(this)->map()->instance_type() == JS_FUNCTION_TYPE;
|
| + && HeapObject::cast(this)->map()->instance_type() == JS_FUNCTION_TYPE;
|
| }
|
|
|
|
|
| @@ -534,7 +533,7 @@
|
|
|
| bool Object::IsCode() {
|
| return Object::IsHeapObject()
|
| - && HeapObject::cast(this)->map()->instance_type() == CODE_TYPE;
|
| + && HeapObject::cast(this)->map()->instance_type() == CODE_TYPE;
|
| }
|
|
|
|
|
| @@ -561,10 +560,17 @@
|
|
|
| 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);
|
| +}
|
| +
|
| +
|
| bool Object::IsStringWrapper() {
|
| return IsJSValue() && JSValue::cast(this)->value()->IsString();
|
| }
|
| @@ -572,7 +578,7 @@
|
|
|
| bool Object::IsProxy() {
|
| return Object::IsHeapObject()
|
| - && HeapObject::cast(this)->map()->instance_type() == PROXY_TYPE;
|
| + && HeapObject::cast(this)->map()->instance_type() == PROXY_TYPE;
|
| }
|
|
|
|
|
| @@ -584,13 +590,13 @@
|
|
|
| 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;
|
| }
|
|
|
|
|
| @@ -1337,6 +1343,8 @@
|
| return JSValue::kSize;
|
| case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
|
| return JSObject::kHeaderSize;
|
| + case JS_MESSAGE_OBJECT_TYPE:
|
| + return JSMessageObject::kSize;
|
| default:
|
| UNREACHABLE();
|
| return 0;
|
| @@ -3388,6 +3396,22 @@
|
| }
|
|
|
|
|
| +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)
|
|
|