From a497f87b59a5271d89cf50063154c46c4e52c523 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Tue, 24 Sep 2019 18:37:04 -0400 Subject: Upgrade V8 for top-level-await (#3015) --- core/libdeno/api.cc | 5 +++-- core/libdeno/modules.cc | 8 ++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'core/libdeno') diff --git a/core/libdeno/api.cc b/core/libdeno/api.cc index 54501f543..18dc1d43e 100644 --- a/core/libdeno/api.cc +++ b/core/libdeno/api.cc @@ -120,8 +120,9 @@ void deno_init() { // remove this to make it work asynchronously too. But that requires getting // PumpMessageLoop and RunMicrotasks setup correctly. // See https://github.com/denoland/deno/issues/2544 - const char* argv[2] = {"", "--no-wasm-async-compilation"}; - int argc = 2; + const char* argv[3] = {"", "--no-wasm-async-compilation", + "--harmony-top-level-await"}; + int argc = 3; v8::V8::SetFlagsFromCommandLine(&argc, const_cast(argv), false); } } diff --git a/core/libdeno/modules.cc b/core/libdeno/modules.cc index e2915e8b1..5293fc95f 100644 --- a/core/libdeno/modules.cc +++ b/core/libdeno/modules.cc @@ -147,8 +147,12 @@ void deno_mod_evaluate(Deno* d_, void* user_data, deno_mod id) { if (status == Module::kInstantiated) { bool ok = !module->Evaluate(context).IsEmpty(); status = module->GetStatus(); // Update status after evaluating. - CHECK_IMPLIES(ok, status == Module::kEvaluated); - CHECK_IMPLIES(!ok, status == Module::kErrored); + if (ok) { + // Note status can still be kErrored even if we get ok. + CHECK(status == Module::kEvaluated || status == Module::kErrored); + } else { + CHECK_EQ(status, Module::kErrored); + } } switch (status) { -- cgit v1.2.3