Index: src/objects-inl.h |
=================================================================== |
--- src/objects-inl.h (revision 11348) |
+++ src/objects-inl.h (working copy) |
@@ -581,7 +581,8 @@ |
map == heap->catch_context_map() || |
map == heap->with_context_map() || |
map == heap->global_context_map() || |
- map == heap->block_context_map()); |
+ map == heap->block_context_map() || |
+ map == heap->module_context_map()); |
} |
return false; |
} |
@@ -594,6 +595,13 @@ |
} |
+bool Object::IsModuleContext() { |
+ return Object::IsHeapObject() && |
+ HeapObject::cast(this)->map() == |
+ HeapObject::cast(this)->GetHeap()->module_context_map(); |
+} |
+ |
+ |
bool Object::IsScopeInfo() { |
return Object::IsHeapObject() && |
HeapObject::cast(this)->map() == |
@@ -613,6 +621,7 @@ |
TYPE_CHECKER(Oddball, ODDBALL_TYPE) |
TYPE_CHECKER(JSGlobalPropertyCell, JS_GLOBAL_PROPERTY_CELL_TYPE) |
TYPE_CHECKER(SharedFunctionInfo, SHARED_FUNCTION_INFO_TYPE) |
+TYPE_CHECKER(JSModule, JS_MODULE_TYPE) |
TYPE_CHECKER(JSValue, JS_VALUE_TYPE) |
TYPE_CHECKER(JSDate, JS_DATE_TYPE) |
TYPE_CHECKER(JSMessageObject, JS_MESSAGE_OBJECT_TYPE) |
@@ -1436,6 +1445,8 @@ |
// field operations considerably on average. |
if (type == JS_OBJECT_TYPE) return JSObject::kHeaderSize; |
switch (type) { |
+ case JS_MODULE_TYPE: |
+ return JSModule::kSize; |
case JS_GLOBAL_PROXY_TYPE: |
return JSGlobalProxy::kSize; |
case JS_GLOBAL_OBJECT_TYPE: |
@@ -1922,15 +1933,15 @@ |
} |
-Smi* DescriptorArray::GetDetails(int descriptor_number) { |
+PropertyDetails DescriptorArray::GetDetails(int descriptor_number) { |
ASSERT(descriptor_number < number_of_descriptors()); |
- return Smi::cast(GetContentArray()->get(ToDetailsIndex(descriptor_number))); |
+ Object* details = GetContentArray()->get(ToDetailsIndex(descriptor_number)); |
+ return PropertyDetails(Smi::cast(details)); |
} |
PropertyType DescriptorArray::GetType(int descriptor_number) { |
- ASSERT(descriptor_number < number_of_descriptors()); |
- return PropertyDetails(GetDetails(descriptor_number)).type(); |
+ return GetDetails(descriptor_number).type(); |
} |
@@ -1993,15 +2004,10 @@ |
} |
-bool DescriptorArray::IsDontEnum(int descriptor_number) { |
- return PropertyDetails(GetDetails(descriptor_number)).IsDontEnum(); |
-} |
- |
- |
void DescriptorArray::Get(int descriptor_number, Descriptor* desc) { |
desc->Init(GetKey(descriptor_number), |
GetValue(descriptor_number), |
- PropertyDetails(GetDetails(descriptor_number))); |
+ GetDetails(descriptor_number)); |
} |
@@ -4078,6 +4084,16 @@ |
} |
+ACCESSORS(JSModule, context, Object, kContextOffset) |
+ |
+ |
+JSModule* JSModule::cast(Object* obj) { |
+ ASSERT(obj->IsJSModule()); |
+ ASSERT(HeapObject::cast(obj)->Size() == JSModule::kSize); |
+ return reinterpret_cast<JSModule*>(obj); |
+} |
+ |
+ |
ACCESSORS(JSValue, value, Object, kValueOffset) |