fix(javascript): retain timer delays after opaque global effects

This commit is contained in:
RRFZ authored and Ysopwnable committed 2026-11-14 04:46:27 +01:00
1 parent 186b2c352c
commit 1abd327913
2 files changed
+53 -2

No files matched your search

@@ -20,7 +20,10 @@ import {
import { semanticBindingAtRead } from "./javascriptSemanticMutationInitializers.js";
import { traverseJavaScriptValueAst } from "./javascriptSemanticTraversal.js";
import { isUnmodifiedGlobalReference } from "./javascriptSemanticAmbientWrites.js";
import { semanticOpaqueNameMayHaveChanged } from "./javascriptSemanticOpaqueEffects.js";
import {
semanticOpaqueGlobalMayHaveChanged,
semanticOpaqueNameMayHaveChanged,
} from "./javascriptSemanticOpaqueEffects.js";
import { range } from "./javascriptStaticAnalysisHelpers.js";
import {
builtinDataEffectIdentity,
@@ -402,7 +405,8 @@ const schedulesWithInvalidDelay = (
t.isIdentifier(value.callee) &&
["BigInt", "Symbol"].includes(value.callee.name) &&
isUnmodifiedGlobalReference(value.callee, state, value.callee.name) &&
!semanticOpaqueNameMayHaveChanged(value.callee, state)
!semanticOpaqueNameMayHaveChanged(value.callee, state) &&
!semanticOpaqueGlobalMayHaveChanged(value.callee, state)
);
};