fix(javascript): derive program strictness from parser context

This commit is contained in:
morluto committed 2026-10-24 08:22:14 +08:00
1 parent 7f3e32c69b
commit 002f9df43a
4 files changed
+43 -13

No files matched your search

@@ -100,6 +100,7 @@ import {
import { semanticResourceLimitReason } from "./javascriptSemanticResourceLimits.js";
import {
javaScriptRuntimeContext,
javaScriptProgramStrictness,
parseJavaScriptSource,
type ParsedJavaScriptSource,
} from "./javascriptSourceParser.js";
@@ -1799,15 +1800,7 @@ const semanticStrictnessAt = (
current.body.directives.some(({ value }) => value.value === "use strict")
)
return "strict";
if (t.isProgram(current)) {
if (current.sourceType === "module") return "strict";
if (current.directives.some(({ value }) => value.value === "use strict"))
return "strict";
const runtimeContext = javaScriptRuntimeContext(current);
if (runtimeContext === "module") return "strict";
if (runtimeContext === "commonjs") return "sloppy";
return "unknown";
}
if (t.isProgram(current)) return javaScriptProgramStrictness(current);
}
return "unknown";
};