Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 20701a73edf89ec5cc5d13e3352ba397bab55fc5..d271ab760016de43b65760ecdaa9fdcec77bd5fc 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -19470,5 +19470,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 |