Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/compiler/src/frontend/lowering/lower-exprs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -923,6 +923,7 @@ function lowerExprInner(L: Lowerer, expr: ts.Expression): IrExpr {
WeakRef: "deref()-after-collect exposes GC timing — genuinely dynamic; hold a strong reference instead",
FinalizationRegistry: "finalization callbacks expose GC timing — genuinely dynamic; release resources explicitly instead",
eval: "runtime code evaluation cannot be compiled ahead of time",
crypto: "the Web Crypto API (globalThis.crypto) has no static lowering; import named exports from 'node:crypto' instead — e.g. `import { randomUUID } from \"node:crypto\"`",
};
L.noLowering(expr.text, expr, globalHints[expr.text], sym ?? undefined);
}
Expand Down
2 changes: 1 addition & 1 deletion packages/compiler/src/frontend/lowering/lower-stmts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1825,7 +1825,7 @@ export function lowerStmt(L: Lowerer, stmt: ts.Statement): IrStmt | IrStmt[] | n
* the one split surface: its five CALL members fence by name, while
* the rest (`Console` — the suite's constructor-identity probe) have
* no surface to lose and bind tokens. */
const TOKEN_OPAQUE_GLOBALS: ReadonlySet<string> = new Set(["crypto"]);
const TOKEN_OPAQUE_GLOBALS: ReadonlySet<string> = new Set([]);
const CONSOLE_CALL_MEMBERS: ReadonlySet<string> = new Set(["log", "info", "debug", "error", "warn"]);

/** `const { subtle } = globalThis.crypto`, `const { Console } = console`,
Expand Down