diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2019-02-26 19:29:45 +0100 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-02-26 13:29:45 -0500 |
commit | 5dfbbbb07a8f484dca27bbe0d7a3bafb0bdb91fd (patch) | |
tree | c4fc86d16e5747733e9d7a18652e791b9a255766 /libdeno/binding.cc | |
parent | 8dee6ea454deb05e69bfaed39a230950c9100c37 (diff) |
Add import.meta.main (#1835)
Diffstat (limited to 'libdeno/binding.cc')
-rw-r--r-- | libdeno/binding.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libdeno/binding.cc b/libdeno/binding.cc index f7ee977e8..f640fe83c 100644 --- a/libdeno/binding.cc +++ b/libdeno/binding.cc @@ -265,7 +265,8 @@ v8::ScriptOrigin ModuleOrigin(v8::Isolate* isolate, v8::True(isolate)); } -deno_mod DenoIsolate::RegisterModule(const char* name, const char* source) { +deno_mod DenoIsolate::RegisterModule(bool main, const char* name, + const char* source) { v8::Isolate::Scope isolate_scope(isolate_); v8::Locker locker(isolate_); v8::HandleScope handle_scope(isolate_); @@ -300,8 +301,9 @@ deno_mod DenoIsolate::RegisterModule(const char* name, const char* source) { import_specifiers.push_back(*specifier_utf8); } - mods_.emplace(std::piecewise_construct, std::make_tuple(id), - std::make_tuple(isolate_, module, name, import_specifiers)); + mods_.emplace( + std::piecewise_construct, std::make_tuple(id), + std::make_tuple(isolate_, module, main, name, import_specifiers)); mods_by_name_[name] = id; return id; @@ -519,8 +521,10 @@ void HostInitializeImportMetaObjectCallback(v8::Local<v8::Context> context, auto* info = d->GetModuleInfo(id); const char* url = info->name.c_str(); + const bool main = info->main; meta->CreateDataProperty(context, v8_str("url"), v8_str(url)).ToChecked(); + meta->CreateDataProperty(context, v8_str("main"), v8_bool(main)).ToChecked(); } void DenoIsolate::AddIsolate(v8::Isolate* isolate) { |