Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 0f6ce61c06f0bd58af6bae4d9887c3cf8b1ac6c1..6df4f2ec59244ec51e004647d928551672a04cf9 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -2480,10 +2480,6 @@ void JSObject::JSObjectShortPrint(StringStream* accumulator) { |
accumulator->Add("<JS Generator>"); |
break; |
} |
- case JS_MODULE_TYPE: { |
- accumulator->Add("<JS Module>"); |
- break; |
- } |
// All other JSObjects are rather similar to each other (JSObject, |
// JSGlobalProxy, JSGlobalObject, JSUndetectable, JSValue). |
default: { |
@@ -12735,7 +12731,6 @@ bool CanSubclassHaveInobjectProperties(InstanceType instance_type) { |
case JS_MAP_ITERATOR_TYPE: |
case JS_MAP_TYPE: |
case JS_MESSAGE_OBJECT_TYPE: |
- case JS_MODULE_TYPE: |
case JS_OBJECT_TYPE: |
case JS_ERROR_TYPE: |
case JS_ARGUMENTS_TYPE: |
@@ -19470,26 +19465,27 @@ bool JSReceiver::HasProxyInPrototype(Isolate* isolate) { |
return false; |
} |
-void JSModule::CreateExport(Handle<JSModule> module, Handle<String> name) { |
+void Module::CreateExport(Handle<Module> module, Handle<String> name) { |
Isolate* isolate = module->GetIsolate(); |
Handle<Cell> cell = |
isolate->factory()->NewCell(isolate->factory()->undefined_value()); |
- LookupIterator it(module, name); |
- JSObject::CreateDataProperty(&it, cell, Object::THROW_ON_ERROR).ToChecked(); |
+ Handle<ObjectHashTable> exports(module->exports(), isolate); |
+ DCHECK(exports->Lookup(name)->IsTheHole(isolate)); |
+ exports = ObjectHashTable::Put(exports, name, cell); |
+ module->set_exports(*exports); |
} |
-void JSModule::StoreExport(Handle<JSModule> module, Handle<String> name, |
- Handle<Object> value) { |
- LookupIterator it(module, name); |
- Handle<Cell> cell = Handle<Cell>::cast(JSObject::GetDataProperty(&it)); |
+void Module::StoreExport(Handle<Module> module, Handle<String> name, |
+ Handle<Object> value) { |
+ Handle<ObjectHashTable> exports(module->exports()); |
+ Handle<Cell> cell(Cell::cast(exports->Lookup(name))); |
cell->set_value(*value); |
} |
-Handle<Object> JSModule::LoadExport(Handle<JSModule> module, |
- Handle<String> name) { |
+Handle<Object> Module::LoadExport(Handle<Module> module, Handle<String> name) { |
Isolate* isolate = module->GetIsolate(); |
- LookupIterator it(module, name); |
- Handle<Cell> cell = Handle<Cell>::cast(JSObject::GetDataProperty(&it)); |
+ Handle<ObjectHashTable> exports(module->exports(), isolate); |
+ Handle<Cell> cell(Cell::cast(exports->Lookup(name))); |
return handle(cell->value(), isolate); |
} |