Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index fce862b2579627425f2f17c208520df8fc2f27b0..bca5bb8afa2e10545370e0fe585eccedc62d8bc1 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -19343,5 +19343,28 @@ bool JSReceiver::HasProxyInPrototype(Isolate* isolate) { |
return false; |
} |
+void JSModule::CreateExport(Handle<JSModule> 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(); |
+} |
+ |
+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)); |
+ cell->set_value(*value); |
+} |
+ |
+Handle<Object> JSModule::LoadExport(Handle<JSModule> module, |
+ Handle<String> name) { |
+ Isolate* isolate = module->GetIsolate(); |
+ LookupIterator it(module, name); |
+ Handle<Cell> cell = Handle<Cell>::cast(JSObject::GetDataProperty(&it)); |
+ return handle(cell->value(), isolate); |
+} |
+ |
} // namespace internal |
} // namespace v8 |