Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index db4d9b5a0cb544bb43f51a088e57eb69eef520d7..4db3fc27fbe4e4bb57109a8d4c0c69e0f2ee29fa 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -19436,5 +19436,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 |