module: do not set CJS variables for Worker eval · nodejs/node@b86f575
@@ -1445,7 +1445,8 @@ static MaybeLocal<Function> CompileFunctionForCJSLoader(Environment* env,
14451445 Local<Context> context,
14461446 Local<String> code,
14471447 Local<String> filename,
1448-bool* cache_rejected) {
1448+bool* cache_rejected,
1449+bool is_cjs_scope) {
14491450 Isolate* isolate = context->GetIsolate();
14501451 EscapableHandleScope scope(isolate);
14511452@@ -1485,7 +1486,10 @@ static MaybeLocal<Function> CompileFunctionForCJSLoader(Environment* env,
14851486 options = ScriptCompiler::kConsumeCodeCache;
14861487 }
148714881488- std::vector<Local<String>> params = GetCJSParameters(env->isolate_data());
1489+ std::vector<Local<String>> params;
1490+if (is_cjs_scope) {
1491+ params = GetCJSParameters(env->isolate_data());
1492+ }
14891493 MaybeLocal<Function> maybe_fn = ScriptCompiler::CompileFunction(
14901494 context,
14911495 &source,
@@ -1544,7 +1548,7 @@ static void CompileFunctionForCJSLoader(
15441548 ShouldNotAbortOnUncaughtScope no_abort_scope(realm->env());
15451549 TryCatchScope try_catch(env);
15461550if (!CompileFunctionForCJSLoader(
1547- env, context, code, filename, &cache_rejected)
1551+ env, context, code, filename, &cache_rejected, true)
15481552 .ToLocal(&fn)) {
15491553CHECK(try_catch.HasCaught());
15501554CHECK(!try_catch.HasTerminated());
@@ -1682,11 +1686,15 @@ static void ContainsModuleSyntax(const FunctionCallbackInfo<Value>& args) {
16821686CHECK(args[1]->IsString());
16831687 Local<String> filename = args[1].As<String>();
168416881685-// Argument 2: resource name (URL for ES module).
1689+// Argument 3: resource name (URL for ES module).
16861690 Local<String> resource_name = filename;
16871691if (args[2]->IsString()) {
16881692 resource_name = args[2].As<String>();
16891693 }
1694+// Argument 4: flag to indicate if CJS variables should not be in scope
1695+// (they should be for normal CommonJS modules, but not for the
1696+// CommonJS eval scope).
1697+bool cjs_var = !args[3]->IsString();
1690169816911699bool cache_rejected = false;
16921700 Local<String> message;
@@ -1695,7 +1703,7 @@ static void ContainsModuleSyntax(const FunctionCallbackInfo<Value>& args) {
16951703 TryCatchScope try_catch(env);
16961704 ShouldNotAbortOnUncaughtScope no_abort_scope(env);
16971705if (CompileFunctionForCJSLoader(
1698- env, context, code, filename, &cache_rejected)
1706+ env, context, code, filename, &cache_rejected, cjs_var)
16991707 .ToLocal(&fn)) {
17001708 args.GetReturnValue().Set(false);
17011709return;