@scriptc/compiler 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ambient/scriptc-node-fallback.d.ts +45 -17
- package/ambient/scriptc.d.ts +2 -1
- package/dist/backend/build-cache.js.map +1 -1
- package/dist/backend/c/async.js +24 -2
- package/dist/backend/c/async.js.map +1 -1
- package/dist/backend/c/c-emitter.d.ts +22 -10
- package/dist/backend/c/c-emitter.js +60 -15
- package/dist/backend/c/c-emitter.js.map +1 -1
- package/dist/backend/c/exprs.js +220 -10
- package/dist/backend/c/exprs.js.map +1 -1
- package/dist/backend/c/island.js.map +1 -1
- package/dist/backend/c/may-throw.js.map +1 -1
- package/dist/backend/c/stmts.d.ts +3 -5
- package/dist/backend/c/stmts.js +58 -17
- package/dist/backend/c/stmts.js.map +1 -1
- package/dist/backend/c/types.js.map +1 -1
- package/dist/backend/c/walkers.js +31 -5
- package/dist/backend/c/walkers.js.map +1 -1
- package/dist/backend/external-c.js.map +1 -1
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/dyn.js +56 -3
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.js +98 -19
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +85 -3
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +1 -0
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +6 -3
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-island.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +220 -9
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +2 -0
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +18 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +6 -3
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/split.js.map +1 -1
- package/dist/backend/llvm/unsupported.js.map +1 -1
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +2 -0
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/compat/fetch-profile.js +4 -2
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +12 -0
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +6 -5
- package/dist/diagnostics/diagnostic.js +7 -6
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/ffi/ffi-manifest.js.map +1 -1
- package/dist/frontend/cjs-lexer.js.map +1 -1
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/input-tracker.d.ts +10 -0
- package/dist/frontend/input-tracker.js +26 -3
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +8 -1
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/lowering/array-values.d.ts +4 -0
- package/dist/frontend/lowering/array-values.js +18 -2
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/callback-arg.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.d.ts +35 -0
- package/dist/frontend/lowering/containers/bytes.js +1021 -0
- package/dist/frontend/lowering/containers/bytes.js.map +1 -0
- package/dist/frontend/lowering/containers/string-and-regexp.d.ts +17 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js +345 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -0
- package/dist/frontend/lowering/expressions/evaluation-safety.d.ts +13 -0
- package/dist/frontend/lowering/expressions/evaluation-safety.js +76 -0
- package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -0
- package/dist/frontend/lowering/expressions/object-literals.d.ts +44 -0
- package/dist/frontend/lowering/expressions/object-literals.js +1815 -0
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -0
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +31 -0
- package/dist/frontend/lowering/expressions/optional-chains.js +382 -0
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -0
- package/dist/frontend/lowering/expressions/try-lower-expression.d.ts +7 -0
- package/dist/frontend/lowering/expressions/try-lower-expression.js +26 -0
- package/dist/frontend/lowering/expressions/try-lower-expression.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.js +7 -2
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.d.ts +7 -0
- package/dist/frontend/lowering/lower-async-iteration.js +657 -0
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -0
- package/dist/frontend/lowering/lower-builtins.d.ts +18 -0
- package/dist/frontend/lowering/lower-builtins.js +219 -48
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +13 -4
- package/dist/frontend/lowering/lower-calls.js +407 -64
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +7 -13
- package/dist/frontend/lowering/lower-classes.js +128 -35
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +1 -47
- package/dist/frontend/lowering/lower-containers.js +135 -1467
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.js +51 -5
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +0 -78
- package/dist/frontend/lowering/lower-exprs.js +402 -2351
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +18 -3
- package/dist/frontend/lowering/lower-generators.js +145 -9
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +3 -3
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +6 -0
- package/dist/frontend/lowering/lower-island.js +37 -5
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +52 -15
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-node-module.d.ts +18 -0
- package/dist/frontend/lowering/lower-node-module.js +302 -0
- package/dist/frontend/lowering/lower-node-module.js.map +1 -0
- package/dist/frontend/lowering/lower-server.js +1 -1
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +5 -24
- package/dist/frontend/lowering/lower-stmts.js +519 -253
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +4 -4
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +37 -34
- package/dist/frontend/lowering/lowerer.js +143 -57
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/optional-arguments.d.ts +9 -0
- package/dist/frontend/lowering/optional-arguments.js +57 -0
- package/dist/frontend/lowering/optional-arguments.js.map +1 -0
- package/dist/frontend/npm-static-declarations.d.ts +35 -0
- package/dist/frontend/npm-static-declarations.js +506 -0
- package/dist/frontend/npm-static-declarations.js.map +1 -0
- package/dist/frontend/npm-static-declarations.test.d.ts +1 -0
- package/dist/frontend/npm-static-declarations.test.js +122 -0
- package/dist/frontend/npm-static-declarations.test.js.map +1 -0
- package/dist/frontend/npm-static.d.ts +2 -0
- package/dist/frontend/npm-static.js +26 -10
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.d.ts +60 -0
- package/dist/frontend/npm.js +38 -4
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/npm.test.d.ts +1 -0
- package/dist/frontend/npm.test.js +50 -0
- package/dist/frontend/npm.test.js.map +1 -0
- package/dist/frontend/program.d.ts +3 -2
- package/dist/frontend/program.js +495 -68
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/resolve.d.ts +10 -2
- package/dist/frontend/resolve.js +90 -14
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/resolve.test.js +4 -1
- package/dist/frontend/resolve.test.js.map +1 -1
- package/dist/frontend/runtime-resolve.d.ts +22 -0
- package/dist/frontend/runtime-resolve.js +101 -0
- package/dist/frontend/runtime-resolve.js.map +1 -0
- package/dist/frontend/runtime-resolve.test.d.ts +1 -0
- package/dist/frontend/runtime-resolve.test.js +18 -0
- package/dist/frontend/runtime-resolve.test.js.map +1 -0
- package/dist/frontend/ts7/adapter.js +12 -13
- package/dist/frontend/ts7/adapter.js.map +1 -1
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/census-check.js +3 -3
- package/dist/frontend/ts7/census-check.js.map +1 -1
- package/dist/frontend/ts7/checker.d.ts +3 -0
- package/dist/frontend/ts7/checker.js +12 -3
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/enums.js.map +1 -1
- package/dist/frontend/ts7/program-adapter.js +42 -3
- package/dist/frontend/ts7/program-adapter.js.map +1 -1
- package/dist/frontend/type-mapper.js +120 -7
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/ir.d.ts +60 -30
- package/dist/ir/ir.js +57 -6
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/validate.js +44 -59
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/cache-primitives.js.map +1 -1
- package/dist/library/cache-reset.test.js.map +1 -1
- package/dist/library/compiler-self-identity.js.map +1 -1
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js.map +1 -1
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/sidecar-validate.js.map +1 -1
- package/dist/library/sidecar.js.map +1 -1
- package/dist/startup-cache.js.map +1 -1
- package/dist/wasi-paths.js.map +1 -1
- package/package.json +18 -18
- package/surface-manifest.json +60 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lower-async-iteration.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-async-iteration.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,15 @@ import * as ts from "../ts7/adapter.js";
|
|
|
2
2
|
import type { Lowerer } from "./lowerer.js";
|
|
3
3
|
import { BuiltinModuleFn } from "./surfaces.js";
|
|
4
4
|
import { IrExpr, IrType, SrcLoc } from "../../ir/ir.js";
|
|
5
|
+
/** timers/promises.setInterval(delay, value), the first Node API built on
|
|
6
|
+
* the generic async-generator protocol. The supported form has an explicit
|
|
7
|
+
* value and no AbortSignal options. It lowers to a generated typed async
|
|
8
|
+
* generator whose loop awaits the existing promise timeout then yields the
|
|
9
|
+
* retained value; creating the iterator remains lazy. */
|
|
10
|
+
export declare function lowerTimersPromisesSetInterval(lowerer: Lowerer, expr: ts.CallExpression, bi: {
|
|
11
|
+
module: string;
|
|
12
|
+
member: string;
|
|
13
|
+
}, loc: SrcLoc): IrExpr | null;
|
|
5
14
|
/** Resolves an identifier to a supported builtin-module IMPORT BINDING:
|
|
6
15
|
* a named import (through its alias, so `import { join as j }` matches)
|
|
7
16
|
* whose declaration is an ImportSpecifier under a supported builtin
|
|
@@ -83,6 +92,15 @@ export declare function createRequireNamespaceDecl(lowerer: Lowerer, nameNode: t
|
|
|
83
92
|
* embedded it) and reports the requires-dynamic diagnostic in a static
|
|
84
93
|
* build. Null when the callee is not a createRequire require. */
|
|
85
94
|
export declare function lowerCreateRequireCall(lowerer: Lowerer, call: ts.CallExpression, loc: SrcLoc): IrExpr | null;
|
|
95
|
+
/** import.meta.resolve("literal") folds through the runtime-module
|
|
96
|
+
* resolver, never TypeScript's declaration-file resolver. Relative and
|
|
97
|
+
* URL-like names remain valid even when no file exists; bare packages use
|
|
98
|
+
* Node's import-condition exports path. */
|
|
99
|
+
export declare function lowerImportMetaResolveCall(lowerer: Lowerer, call: ts.CallExpression): IrExpr | null;
|
|
100
|
+
/** CommonJS require.resolve and require.resolve.paths for the ambient
|
|
101
|
+
* wrapper or a supported createRequire binding. Results are build-time
|
|
102
|
+
* constants; failures lower to Node's catchable error object. */
|
|
103
|
+
export declare function lowerRequireResolveCall(lowerer: Lowerer, call: ts.CallExpression): IrExpr | null;
|
|
86
104
|
/** `constants.NGHTTP2_CANCEL` / `constants.SSL_OP_NO_TICKET` (any baked-
|
|
87
105
|
* constants spelling) → the literal; unknown members fence by name.
|
|
88
106
|
* Null when the receiver is not a baked constants object (the property
|
|
@@ -7,17 +7,21 @@ import { builtinModules } from "node:module";
|
|
|
7
7
|
import { dirname, resolve } from "node:path";
|
|
8
8
|
import * as ts from "../ts7/adapter.js";
|
|
9
9
|
import { PoisonError, dynUndefinedExpr, ladderFenceExpr, nodeThrowExpr, own } from "./lowerer.js";
|
|
10
|
-
import { canonicalBuiltinModule, isJsSourceFile, locOf, requireSpecOf } from "../program.js";
|
|
10
|
+
import { canonicalBuiltinModule, isJsSourceFile, isNodeEsmFile, locOf, requireSpecOf } from "../program.js";
|
|
11
11
|
import { isRelativeSpecifier } from "../workspace-registry.js";
|
|
12
12
|
import { probeNodeRequireRefusal } from "../npm.js";
|
|
13
13
|
import { isNpmStaticPackage } from "../npm-static.js";
|
|
14
14
|
import { trackedReadFile } from "../input-tracker.js";
|
|
15
|
+
import { requireResolvePathsRuntime, resolveImportMetaRuntime, resolveRequireRuntime } from "../runtime-resolve.js";
|
|
15
16
|
import { invalidJsonModuleDiag, requiresDynamicImportDiag } from "../../diagnostics/diagnostic.js";
|
|
16
17
|
import { builtinModuleFnOf, FS_READDIR_DOCUMENTED_OPTIONS, FS_WATCH_DOCUMENTED_OPTIONS, FS_WRITE_FILE_DOCUMENTED_OPTIONS, QS_PARSE_DOCUMENTED_OPTIONS, QS_STRINGIFY_DOCUMENTED_OPTIONS, READLINE_DOCUMENTED_OPTIONS, builtinConstLit, fenceOrDropOptionKey, isChildSurfaceMember, } from "./surfaces.js";
|
|
17
|
-
import {
|
|
18
|
+
import { lowerAbsenceProbe } from "./lower-exprs.js";
|
|
19
|
+
import { conditionalSpreadOf, lowerDynObjectLiteral } from "./expressions/object-literals.js";
|
|
20
|
+
import { isSafeToDiscard } from "./expressions/evaluation-safety.js";
|
|
21
|
+
import { defaultAfterUndefined, lowerStaticallyUndefinedArgument } from "./optional-arguments.js";
|
|
18
22
|
import { HTTP2_CONSTANTS } from "./http2-constants.js";
|
|
19
23
|
import { CRYPTO_CIPHERS, CRYPTO_CONSTANTS, CRYPTO_CURVES, CRYPTO_HASHES } from "./crypto-tables.js";
|
|
20
|
-
import { timerStyleCallback } from "./lower-calls.js";
|
|
24
|
+
import { generatorMeta, timerStyleCallback } from "./lower-calls.js";
|
|
21
25
|
import { registerHttpClientFnBinding, voidizedCallback } from "./lower-server.js";
|
|
22
26
|
import { pairsSnapshotHelper } from "./pairs-snapshot.js";
|
|
23
27
|
import { BOOL, BYTES_U8, CHILD_T, CHILDSTREAM_T, DYN, F64, FILEHANDLE_T, FSWATCHER_T, PROCSTREAM_T, JSVAL, NULL_T, SEARCH_PARAMS_T, SPAWNRES_T, STRING, UNDEFINED_T, VOID, arrayOf, canBoxFuncIntoDyn, canConvertToDyn, funcOf, isUnitType, typeEquals, typeKey } from "../../ir/ir.js";
|
|
@@ -32,6 +36,74 @@ function optionalStringTags(lowerer, type) {
|
|
|
32
36
|
const undefinedTag = lowerer.armTag(type.unionId, UNDEFINED_T);
|
|
33
37
|
return stringTag >= 0 && undefinedTag >= 0 ? { stringTag, undefinedTag } : null;
|
|
34
38
|
}
|
|
39
|
+
/** timers/promises.setInterval(delay, value), the first Node API built on
|
|
40
|
+
* the generic async-generator protocol. The supported form has an explicit
|
|
41
|
+
* value and no AbortSignal options. It lowers to a generated typed async
|
|
42
|
+
* generator whose loop awaits the existing promise timeout then yields the
|
|
43
|
+
* retained value; creating the iterator remains lazy. */
|
|
44
|
+
export function lowerTimersPromisesSetInterval(lowerer, expr, bi, loc) {
|
|
45
|
+
if (bi.module !== "timers/promises" || bi.member !== "setInterval")
|
|
46
|
+
return null;
|
|
47
|
+
if (expr.arguments.some(ts.isSpreadElement)) {
|
|
48
|
+
lowerer.unsupported("SC1090", expr, "spread arguments");
|
|
49
|
+
}
|
|
50
|
+
if (expr.arguments.length !== 2) {
|
|
51
|
+
lowerer.noLowering(`timers/promises.setInterval with ${expr.arguments.length} arguments`, expr, "the lowered form is setInterval(delay, value) with an explicit yielded value; AbortSignal options are not supported yet");
|
|
52
|
+
}
|
|
53
|
+
const delayNode = expr.arguments[0];
|
|
54
|
+
const valueNode = expr.arguments[1];
|
|
55
|
+
const delay = lowerer.lowerExpr(delayNode);
|
|
56
|
+
const ms = delay.kind === "unitLit"
|
|
57
|
+
? { kind: "numLit", value: 1, type: F64, loc }
|
|
58
|
+
: lowerer.coerceInto(delayNode, delay, F64);
|
|
59
|
+
const value = lowerer.lowerExpr(valueNode);
|
|
60
|
+
const callType = lowerer.mapTypeOf(lowerer.typeOf(expr));
|
|
61
|
+
if (callType?.kind !== "generator" || !callType.async) {
|
|
62
|
+
lowerer.badType(expr, lowerer.typeOf(expr));
|
|
63
|
+
}
|
|
64
|
+
const genT = callType;
|
|
65
|
+
const yielded = lowerer.coerceInto(valueNode, value, genT.yieldT);
|
|
66
|
+
const fnName = `%fn${lowerer.lambdaCounter++}_tpInterval`;
|
|
67
|
+
const msParam = { id: "%tp.ms", name: "delay", type: F64, mutable: false };
|
|
68
|
+
const valueParam = { id: "%tp.value", name: "value", type: genT.yieldT, mutable: false };
|
|
69
|
+
const promiseVoid = { kind: "promise", inner: VOID };
|
|
70
|
+
const msRef = () => ({ kind: "varRef", localId: msParam.id, type: F64, loc });
|
|
71
|
+
const valueRef = () => ({ kind: "varRef", localId: valueParam.id, type: genT.yieldT, loc });
|
|
72
|
+
const fn = {
|
|
73
|
+
name: fnName,
|
|
74
|
+
params: [
|
|
75
|
+
{ localId: msParam.id, name: msParam.name, type: msParam.type },
|
|
76
|
+
{ localId: valueParam.id, name: valueParam.name, type: valueParam.type },
|
|
77
|
+
],
|
|
78
|
+
returnType: VOID,
|
|
79
|
+
locals: [msParam, valueParam],
|
|
80
|
+
async: true,
|
|
81
|
+
generator: generatorMeta(lowerer, genT),
|
|
82
|
+
body: [
|
|
83
|
+
{
|
|
84
|
+
kind: "while",
|
|
85
|
+
cond: { kind: "boolLit", value: true, type: BOOL, loc },
|
|
86
|
+
body: [
|
|
87
|
+
{
|
|
88
|
+
kind: "exprStmt",
|
|
89
|
+
expr: {
|
|
90
|
+
kind: "awaitExpr",
|
|
91
|
+
value: { kind: "libCall", fn: "tp.setTimeout", args: [msRef()], type: promiseVoid, loc },
|
|
92
|
+
type: VOID,
|
|
93
|
+
loc,
|
|
94
|
+
},
|
|
95
|
+
loc,
|
|
96
|
+
},
|
|
97
|
+
{ kind: "exprStmt", expr: { kind: "yieldExpr", value: valueRef(), type: VOID, loc }, loc },
|
|
98
|
+
],
|
|
99
|
+
loc,
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
loc,
|
|
103
|
+
};
|
|
104
|
+
lowerer.liftedFns.push(fn);
|
|
105
|
+
return { kind: "call", callee: fnName, args: [ms, yielded], type: genT, loc };
|
|
106
|
+
}
|
|
35
107
|
function lowerBuiltinValuePreservingUndefined(lowerer, node) {
|
|
36
108
|
return lowerer.runtimeOptionalIdentifierValue(node)?.value ??
|
|
37
109
|
lowerAbsenceProbe(lowerer, node) ??
|
|
@@ -90,49 +162,11 @@ function lowerOptionalNumberPredicate(lowerer, value, fn, loc) {
|
|
|
90
162
|
}
|
|
91
163
|
return { kind: "call", callee: helper, args: [value], type: BOOL, loc };
|
|
92
164
|
}
|
|
93
|
-
/** Lower an optional builtin argument whose checker type is statically
|
|
94
|
-
* undefined/void. The returned expression exists only to preserve effects;
|
|
95
|
-
* callers replace its value with the API default. */
|
|
96
|
-
function lowerStaticallyUndefinedBuiltinArg(lowerer, node) {
|
|
97
|
-
const peel = (value) => {
|
|
98
|
-
let expr = value;
|
|
99
|
-
while (ts.isParenthesizedExpression(expr) ||
|
|
100
|
-
ts.isAsExpression(expr) ||
|
|
101
|
-
ts.isTypeAssertion(expr) ||
|
|
102
|
-
ts.isSatisfiesExpression(expr)) {
|
|
103
|
-
expr = expr.expression;
|
|
104
|
-
}
|
|
105
|
-
return expr;
|
|
106
|
-
};
|
|
107
|
-
let expr = node;
|
|
108
|
-
while (ts.isParenthesizedExpression(expr))
|
|
109
|
-
expr = expr.expression;
|
|
110
|
-
if ((lowerer.typeOf(expr).flags & (ts.TypeFlags.Undefined | ts.TypeFlags.Void)) === 0)
|
|
111
|
-
return null;
|
|
112
|
-
expr = peel(expr);
|
|
113
|
-
let sawVoid = false;
|
|
114
|
-
while (ts.isVoidExpression(expr)) {
|
|
115
|
-
sawVoid = true;
|
|
116
|
-
expr = peel(expr.expression);
|
|
117
|
-
}
|
|
118
|
-
return lowerer.lowerExpr(sawVoid ? expr : node);
|
|
119
|
-
}
|
|
120
|
-
function defaultAfterUndefined(value, dflt) {
|
|
121
|
-
if (droppableStatic(value))
|
|
122
|
-
return dflt;
|
|
123
|
-
return {
|
|
124
|
-
kind: "seqExpr",
|
|
125
|
-
stmts: [{ kind: "exprStmt", expr: value, loc: value.loc }],
|
|
126
|
-
result: dflt,
|
|
127
|
-
type: dflt.type,
|
|
128
|
-
loc: value.loc,
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
165
|
/** Complete an optional builtin argument. Statically undefined spellings
|
|
132
166
|
* preserve their effects and select the default; a runtime unit-armed union
|
|
133
167
|
* uses nullish selection when every non-unit arm is the expected type. */
|
|
134
168
|
function lowerBuiltinOptionalDefault(lowerer, node, expected, dflt, nullIsDefault = false) {
|
|
135
|
-
const undefinedArg =
|
|
169
|
+
const undefinedArg = lowerStaticallyUndefinedArgument(lowerer, node);
|
|
136
170
|
if (undefinedArg)
|
|
137
171
|
return defaultAfterUndefined(undefinedArg, dflt);
|
|
138
172
|
if (nullIsDefault && (lowerer.typeOf(node).flags & ts.TypeFlags.Null) !== 0) {
|
|
@@ -502,6 +536,134 @@ export function lowerCreateRequireCall(lowerer, call, loc) {
|
|
|
502
536
|
loc,
|
|
503
537
|
};
|
|
504
538
|
}
|
|
539
|
+
function staticString(node) {
|
|
540
|
+
if (node === undefined)
|
|
541
|
+
return null;
|
|
542
|
+
const value = stripTypeCasts(node);
|
|
543
|
+
return ts.isStringLiteralLike(value) ? value.text : null;
|
|
544
|
+
}
|
|
545
|
+
function runtimeResolveThrow(error, type, loc) {
|
|
546
|
+
return nodeThrowExpr(error.name === "TypeError" ? 1 : 0, error.code, error.message, type, loc);
|
|
547
|
+
}
|
|
548
|
+
/** import.meta.resolve("literal") folds through the runtime-module
|
|
549
|
+
* resolver, never TypeScript's declaration-file resolver. Relative and
|
|
550
|
+
* URL-like names remain valid even when no file exists; bare packages use
|
|
551
|
+
* Node's import-condition exports path. */
|
|
552
|
+
export function lowerImportMetaResolveCall(lowerer, call) {
|
|
553
|
+
const callee = call.expression;
|
|
554
|
+
if (!ts.isPropertyAccessExpression(callee) || callee.questionDotToken !== undefined ||
|
|
555
|
+
callee.name.text !== "resolve" || !ts.isMetaProperty(callee.expression) ||
|
|
556
|
+
callee.expression.keywordToken !== ts.SyntaxKind.ImportKeyword ||
|
|
557
|
+
callee.expression.name.text !== "meta") {
|
|
558
|
+
return null;
|
|
559
|
+
}
|
|
560
|
+
if (call.questionDotToken !== undefined || call.arguments.length !== 1) {
|
|
561
|
+
lowerer.noLowering("import.meta.resolve with this argument shape", call, "the lowered form is import.meta.resolve(\"<static specifier>\") using the containing module as its parent");
|
|
562
|
+
}
|
|
563
|
+
const specifier = staticString(call.arguments[0]);
|
|
564
|
+
if (specifier === null) {
|
|
565
|
+
lowerer.noLowering("import.meta.resolve with a runtime-computed specifier", call.arguments[0], "a compiled binary has a fixed module graph — pass a string literal");
|
|
566
|
+
}
|
|
567
|
+
const result = resolveImportMetaRuntime(call.getSourceFile().fileName, specifier, lowerer.targetPlatform);
|
|
568
|
+
if (result === null) {
|
|
569
|
+
lowerer.noLowering(`import.meta.resolve of '${specifier}'`, call, "relative paths, URL-like names, builtins, and installed package names are supported; package-import aliases remain unsupported");
|
|
570
|
+
}
|
|
571
|
+
const loc = locOf(call);
|
|
572
|
+
return result.ok
|
|
573
|
+
? { kind: "strLit", value: result.value, type: STRING, loc }
|
|
574
|
+
: runtimeResolveThrow(result.error, STRING, loc);
|
|
575
|
+
}
|
|
576
|
+
function requireResolverBaseFile(lowerer, receiver) {
|
|
577
|
+
const created = createRequireCalleeFileOf(lowerer, receiver);
|
|
578
|
+
if (created !== null)
|
|
579
|
+
return created;
|
|
580
|
+
return lowerer.isStdlibGlobal(receiver, "require") && !isNodeEsmFile(receiver.getSourceFile())
|
|
581
|
+
? receiver.getSourceFile()
|
|
582
|
+
: null;
|
|
583
|
+
}
|
|
584
|
+
function staticResolveOptionPaths(node) {
|
|
585
|
+
if (node === undefined)
|
|
586
|
+
return undefined;
|
|
587
|
+
const value = stripTypeCasts(node);
|
|
588
|
+
if (ts.isIdentifier(value) && value.text === "undefined")
|
|
589
|
+
return undefined;
|
|
590
|
+
if (!ts.isObjectLiteralExpression(value))
|
|
591
|
+
return null;
|
|
592
|
+
let paths;
|
|
593
|
+
for (const prop of value.properties) {
|
|
594
|
+
if (!ts.isPropertyAssignment(prop))
|
|
595
|
+
return null;
|
|
596
|
+
const name = ts.isIdentifier(prop.name) || ts.isStringLiteralLike(prop.name) ? prop.name.text : null;
|
|
597
|
+
if (name !== "paths" || paths !== undefined)
|
|
598
|
+
return null;
|
|
599
|
+
const init = stripTypeCasts(prop.initializer);
|
|
600
|
+
if (!ts.isArrayLiteralExpression(init))
|
|
601
|
+
return null;
|
|
602
|
+
const entries = [];
|
|
603
|
+
for (const item of init.elements) {
|
|
604
|
+
if (!ts.isStringLiteralLike(item))
|
|
605
|
+
return null;
|
|
606
|
+
entries.push(item.text);
|
|
607
|
+
}
|
|
608
|
+
paths = entries;
|
|
609
|
+
}
|
|
610
|
+
return paths;
|
|
611
|
+
}
|
|
612
|
+
/** CommonJS require.resolve and require.resolve.paths for the ambient
|
|
613
|
+
* wrapper or a supported createRequire binding. Results are build-time
|
|
614
|
+
* constants; failures lower to Node's catchable error object. */
|
|
615
|
+
export function lowerRequireResolveCall(lowerer, call) {
|
|
616
|
+
const callee = call.expression;
|
|
617
|
+
if (!ts.isPropertyAccessExpression(callee) || callee.questionDotToken !== undefined)
|
|
618
|
+
return null;
|
|
619
|
+
let receiver;
|
|
620
|
+
let pathsCall = false;
|
|
621
|
+
if (callee.name.text === "resolve") {
|
|
622
|
+
receiver = callee.expression;
|
|
623
|
+
}
|
|
624
|
+
else if (callee.name.text === "paths" && ts.isPropertyAccessExpression(callee.expression) &&
|
|
625
|
+
callee.expression.questionDotToken === undefined && callee.expression.name.text === "resolve") {
|
|
626
|
+
receiver = callee.expression.expression;
|
|
627
|
+
pathsCall = true;
|
|
628
|
+
}
|
|
629
|
+
else {
|
|
630
|
+
return null;
|
|
631
|
+
}
|
|
632
|
+
const baseFile = requireResolverBaseFile(lowerer, receiver);
|
|
633
|
+
if (baseFile === null)
|
|
634
|
+
return null;
|
|
635
|
+
if (call.questionDotToken !== undefined || call.arguments.length < 1 || call.arguments.length > (pathsCall ? 1 : 2)) {
|
|
636
|
+
lowerer.noLowering(pathsCall ? "require.resolve.paths with this argument shape" : "require.resolve with this argument shape", call);
|
|
637
|
+
}
|
|
638
|
+
const specifier = staticString(call.arguments[0]);
|
|
639
|
+
if (specifier === null) {
|
|
640
|
+
lowerer.noLowering(`${pathsCall ? "require.resolve.paths" : "require.resolve"} with a runtime-computed request`, call.arguments[0], "a compiled binary has a fixed module graph — pass a string literal");
|
|
641
|
+
}
|
|
642
|
+
const loc = locOf(call);
|
|
643
|
+
if (pathsCall) {
|
|
644
|
+
const result = requireResolvePathsRuntime(baseFile.fileName, specifier, lowerer.targetPlatform);
|
|
645
|
+
if (result !== null && !Array.isArray(result)) {
|
|
646
|
+
return runtimeResolveThrow(result, lowerer.irTypeOf(call), loc);
|
|
647
|
+
}
|
|
648
|
+
const raw = result === null
|
|
649
|
+
? { kind: "unitLit", unit: "null", type: NULL_T, loc }
|
|
650
|
+
: {
|
|
651
|
+
kind: "arrayLit",
|
|
652
|
+
elems: result.map((value) => ({ kind: "strLit", value, type: STRING, loc })),
|
|
653
|
+
type: arrayOf(STRING),
|
|
654
|
+
loc,
|
|
655
|
+
};
|
|
656
|
+
return lowerer.coerceInto(call, raw, lowerer.irTypeOf(call));
|
|
657
|
+
}
|
|
658
|
+
const paths = staticResolveOptionPaths(call.arguments[1]);
|
|
659
|
+
if (paths === null) {
|
|
660
|
+
lowerer.noLowering("require.resolve with runtime-computed options", call.arguments[1], "omit options or pass { paths: [\"<static directory>\", ...] }");
|
|
661
|
+
}
|
|
662
|
+
const result = resolveRequireRuntime(baseFile.fileName, specifier, lowerer.targetPlatform, paths);
|
|
663
|
+
return result.ok
|
|
664
|
+
? { kind: "strLit", value: result.value, type: STRING, loc }
|
|
665
|
+
: runtimeResolveThrow(result.error, STRING, loc);
|
|
666
|
+
}
|
|
505
667
|
/** The builtin modules whose `constants` object bakes as literals at
|
|
506
668
|
* every access site (the fs.constants precedent, scaled up): http2's
|
|
507
669
|
* full Node v24 table, and crypto's OpenSSL-constant table. The object
|
|
@@ -4094,7 +4256,7 @@ export function lowerFileHandleMethodCall(lowerer, call, access) {
|
|
|
4094
4256
|
const defaultValue = { kind: "numLit", value: dflt, type: F64, loc };
|
|
4095
4257
|
if (!node)
|
|
4096
4258
|
return { value: defaultValue, defaulted: boolLit(true, loc) };
|
|
4097
|
-
const undefinedArg =
|
|
4259
|
+
const undefinedArg = lowerStaticallyUndefinedArgument(lowerer, node);
|
|
4098
4260
|
if (undefinedArg) {
|
|
4099
4261
|
return { value: defaultAfterUndefined(undefinedArg, defaultValue), defaulted: boolLit(true, loc) };
|
|
4100
4262
|
}
|
|
@@ -4862,6 +5024,15 @@ export function lowerProcessProperty(lowerer, expr) {
|
|
|
4862
5024
|
const fn = expr.name.text === "node" ? "process.versionsNode" : "process.versionsOpenssl";
|
|
4863
5025
|
return { kind: "libCall", fn, args: [], type: STRING, loc: locOf(expr) };
|
|
4864
5026
|
}
|
|
5027
|
+
// process.versions?.electron is the runtime-capability probe used by
|
|
5028
|
+
// CLI packages to select Electron argument conventions. versions
|
|
5029
|
+
// itself always exists, and a native scriptc binary is not Electron,
|
|
5030
|
+
// so both the optional and ordinary property spellings read undefined.
|
|
5031
|
+
if (ts.isPropertyAccessExpression(expr.expression) &&
|
|
5032
|
+
lowerer.stdlibGlobalMember(expr.expression, "process") === "versions" &&
|
|
5033
|
+
expr.name.text === "electron") {
|
|
5034
|
+
return { kind: "unitLit", unit: "undefined", type: UNDEFINED_T, loc: locOf(expr) };
|
|
5035
|
+
}
|
|
4865
5036
|
// The capability-probe members that honestly DON'T EXIST in a
|
|
4866
5037
|
// compiled binary — each reads undefined (their declared types carry
|
|
4867
5038
|
// the undefined arm), so feature probes take their documented
|
|
@@ -5472,10 +5643,10 @@ export function lowerProcessMethodCall(lowerer, call, access) {
|
|
|
5472
5643
|
const secondNode = args[1];
|
|
5473
5644
|
const thirdNode = args[2];
|
|
5474
5645
|
const secondUndefined = secondNode
|
|
5475
|
-
?
|
|
5646
|
+
? lowerStaticallyUndefinedArgument(lowerer, secondNode)
|
|
5476
5647
|
: null;
|
|
5477
5648
|
const thirdUndefined = thirdNode
|
|
5478
|
-
?
|
|
5649
|
+
? lowerStaticallyUndefinedArgument(lowerer, thirdNode)
|
|
5479
5650
|
: null;
|
|
5480
5651
|
const secondT = secondNode && !secondUndefined ? lowerer.mapTypeOf(lowerer.typeOf(secondNode)) : undefined;
|
|
5481
5652
|
const callbackNode = args.length === 3 && !thirdUndefined
|
|
@@ -5512,7 +5683,7 @@ export function lowerProcessMethodCall(lowerer, call, access) {
|
|
|
5512
5683
|
if (canonical === raw)
|
|
5513
5684
|
return evaluated;
|
|
5514
5685
|
const normalized = { kind: "strLit", value: canonical, type: STRING, loc: locOf(encodingNode) };
|
|
5515
|
-
return
|
|
5686
|
+
return isSafeToDiscard(evaluated)
|
|
5516
5687
|
? normalized
|
|
5517
5688
|
: {
|
|
5518
5689
|
kind: "seqExpr",
|
|
@@ -5577,9 +5748,9 @@ export function lowerProcessMethodCall(lowerer, call, access) {
|
|
|
5577
5748
|
// data and encoding, even though it schedules no callback. Strings
|
|
5578
5749
|
// already evaluate encoding while producing `bytes`; byte chunks
|
|
5579
5750
|
// fold both ignored argument effects into this final ABI slot.
|
|
5580
|
-
if (thirdUndefined && !
|
|
5751
|
+
if (thirdUndefined && !isSafeToDiscard(thirdUndefined)) {
|
|
5581
5752
|
const effects = isBytes
|
|
5582
|
-
? [encoding, thirdUndefined].filter((effect) => !
|
|
5753
|
+
? [encoding, thirdUndefined].filter((effect) => !isSafeToDiscard(effect))
|
|
5583
5754
|
: [thirdUndefined];
|
|
5584
5755
|
runtimeEncoding = {
|
|
5585
5756
|
kind: "seqExpr",
|