@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.
Files changed (209) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +45 -17
  2. package/ambient/scriptc.d.ts +2 -1
  3. package/dist/backend/build-cache.js.map +1 -1
  4. package/dist/backend/c/async.js +24 -2
  5. package/dist/backend/c/async.js.map +1 -1
  6. package/dist/backend/c/c-emitter.d.ts +22 -10
  7. package/dist/backend/c/c-emitter.js +60 -15
  8. package/dist/backend/c/c-emitter.js.map +1 -1
  9. package/dist/backend/c/exprs.js +220 -10
  10. package/dist/backend/c/exprs.js.map +1 -1
  11. package/dist/backend/c/island.js.map +1 -1
  12. package/dist/backend/c/may-throw.js.map +1 -1
  13. package/dist/backend/c/stmts.d.ts +3 -5
  14. package/dist/backend/c/stmts.js +58 -17
  15. package/dist/backend/c/stmts.js.map +1 -1
  16. package/dist/backend/c/types.js.map +1 -1
  17. package/dist/backend/c/walkers.js +31 -5
  18. package/dist/backend/c/walkers.js.map +1 -1
  19. package/dist/backend/external-c.js.map +1 -1
  20. package/dist/backend/linker.js.map +1 -1
  21. package/dist/backend/llvm/blocks.js.map +1 -1
  22. package/dist/backend/llvm/dyn.js +56 -3
  23. package/dist/backend/llvm/dyn.js.map +1 -1
  24. package/dist/backend/llvm/emitter.js +98 -19
  25. package/dist/backend/llvm/emitter.js.map +1 -1
  26. package/dist/backend/llvm/expr-async.js +85 -3
  27. package/dist/backend/llvm/expr-async.js.map +1 -1
  28. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  29. package/dist/backend/llvm/expr-calls.js.map +1 -1
  30. package/dist/backend/llvm/expr-containers.js.map +1 -1
  31. package/dist/backend/llvm/expr-context.d.ts +1 -0
  32. package/dist/backend/llvm/expr-control.js.map +1 -1
  33. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  34. package/dist/backend/llvm/expr-dynamic.js +6 -3
  35. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  36. package/dist/backend/llvm/expr-island.js.map +1 -1
  37. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  38. package/dist/backend/llvm/expr-records.js.map +1 -1
  39. package/dist/backend/llvm/expr-stream-bridges.js +220 -9
  40. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  41. package/dist/backend/llvm/lib-dispatch.js +2 -0
  42. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  43. package/dist/backend/llvm/lib-shared.js +18 -0
  44. package/dist/backend/llvm/lib-shared.js.map +1 -1
  45. package/dist/backend/llvm/lib-stream.js +6 -3
  46. package/dist/backend/llvm/lib-stream.js.map +1 -1
  47. package/dist/backend/llvm/split.js.map +1 -1
  48. package/dist/backend/llvm/unsupported.js.map +1 -1
  49. package/dist/backend/llvm/walkers.js.map +1 -1
  50. package/dist/backend/native-codegen.js.map +1 -1
  51. package/dist/backend/native-codegen.test.js +2 -0
  52. package/dist/backend/native-codegen.test.js.map +1 -1
  53. package/dist/backend/native-toolchain.js.map +1 -1
  54. package/dist/backend/native-toolchain.test.js.map +1 -1
  55. package/dist/backend/runtime-pack.js.map +1 -1
  56. package/dist/backend/targets.js.map +1 -1
  57. package/dist/backend/vendor-archives.js.map +1 -1
  58. package/dist/compat/fetch-profile.js +4 -2
  59. package/dist/compat/fetch-profile.js.map +1 -1
  60. package/dist/coverage/report.js.map +1 -1
  61. package/dist/coverage/surface-manifest.js +12 -0
  62. package/dist/coverage/surface-manifest.js.map +1 -1
  63. package/dist/diagnostics/diagnostic.d.ts +6 -5
  64. package/dist/diagnostics/diagnostic.js +7 -6
  65. package/dist/diagnostics/diagnostic.js.map +1 -1
  66. package/dist/diagnostics/render.js.map +1 -1
  67. package/dist/ffi/ffi-manifest.js.map +1 -1
  68. package/dist/frontend/cjs-lexer.js.map +1 -1
  69. package/dist/frontend/dts-paths.js.map +1 -1
  70. package/dist/frontend/input-tracker.d.ts +10 -0
  71. package/dist/frontend/input-tracker.js +26 -3
  72. package/dist/frontend/input-tracker.js.map +1 -1
  73. package/dist/frontend/input-tracker.test.js +8 -1
  74. package/dist/frontend/input-tracker.test.js.map +1 -1
  75. package/dist/frontend/lib-contract.js.map +1 -1
  76. package/dist/frontend/lowering/array-values.d.ts +4 -0
  77. package/dist/frontend/lowering/array-values.js +18 -2
  78. package/dist/frontend/lowering/array-values.js.map +1 -1
  79. package/dist/frontend/lowering/callback-arg.js.map +1 -1
  80. package/dist/frontend/lowering/containers/bytes.d.ts +35 -0
  81. package/dist/frontend/lowering/containers/bytes.js +1021 -0
  82. package/dist/frontend/lowering/containers/bytes.js.map +1 -0
  83. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +17 -0
  84. package/dist/frontend/lowering/containers/string-and-regexp.js +345 -0
  85. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -0
  86. package/dist/frontend/lowering/expressions/evaluation-safety.d.ts +13 -0
  87. package/dist/frontend/lowering/expressions/evaluation-safety.js +76 -0
  88. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -0
  89. package/dist/frontend/lowering/expressions/object-literals.d.ts +44 -0
  90. package/dist/frontend/lowering/expressions/object-literals.js +1815 -0
  91. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -0
  92. package/dist/frontend/lowering/expressions/optional-chains.d.ts +31 -0
  93. package/dist/frontend/lowering/expressions/optional-chains.js +382 -0
  94. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -0
  95. package/dist/frontend/lowering/expressions/try-lower-expression.d.ts +7 -0
  96. package/dist/frontend/lowering/expressions/try-lower-expression.js +26 -0
  97. package/dist/frontend/lowering/expressions/try-lower-expression.js.map +1 -0
  98. package/dist/frontend/lowering/lib-boundary.js +7 -2
  99. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  100. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  101. package/dist/frontend/lowering/lower-async-iteration.d.ts +7 -0
  102. package/dist/frontend/lowering/lower-async-iteration.js +657 -0
  103. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -0
  104. package/dist/frontend/lowering/lower-builtins.d.ts +18 -0
  105. package/dist/frontend/lowering/lower-builtins.js +219 -48
  106. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  107. package/dist/frontend/lowering/lower-calls.d.ts +13 -4
  108. package/dist/frontend/lowering/lower-calls.js +407 -64
  109. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  110. package/dist/frontend/lowering/lower-classes.d.ts +7 -13
  111. package/dist/frontend/lowering/lower-classes.js +128 -35
  112. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  113. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  114. package/dist/frontend/lowering/lower-containers.d.ts +1 -47
  115. package/dist/frontend/lowering/lower-containers.js +135 -1467
  116. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  117. package/dist/frontend/lowering/lower-event-emitter.js +51 -5
  118. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  119. package/dist/frontend/lowering/lower-exprs.d.ts +0 -78
  120. package/dist/frontend/lowering/lower-exprs.js +402 -2351
  121. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  122. package/dist/frontend/lowering/lower-generators.d.ts +18 -3
  123. package/dist/frontend/lowering/lower-generators.js +145 -9
  124. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  125. package/dist/frontend/lowering/lower-inspect.js +3 -3
  126. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  127. package/dist/frontend/lowering/lower-island.d.ts +6 -0
  128. package/dist/frontend/lowering/lower-island.js +37 -5
  129. package/dist/frontend/lowering/lower-island.js.map +1 -1
  130. package/dist/frontend/lowering/lower-modules.js +52 -15
  131. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  132. package/dist/frontend/lowering/lower-node-module.d.ts +18 -0
  133. package/dist/frontend/lowering/lower-node-module.js +302 -0
  134. package/dist/frontend/lowering/lower-node-module.js.map +1 -0
  135. package/dist/frontend/lowering/lower-server.js +1 -1
  136. package/dist/frontend/lowering/lower-server.js.map +1 -1
  137. package/dist/frontend/lowering/lower-stmts.d.ts +5 -24
  138. package/dist/frontend/lowering/lower-stmts.js +519 -253
  139. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  140. package/dist/frontend/lowering/lower-stream.js +4 -4
  141. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  142. package/dist/frontend/lowering/lowerer.d.ts +37 -34
  143. package/dist/frontend/lowering/lowerer.js +143 -57
  144. package/dist/frontend/lowering/lowerer.js.map +1 -1
  145. package/dist/frontend/lowering/optional-arguments.d.ts +9 -0
  146. package/dist/frontend/lowering/optional-arguments.js +57 -0
  147. package/dist/frontend/lowering/optional-arguments.js.map +1 -0
  148. package/dist/frontend/npm-static-declarations.d.ts +35 -0
  149. package/dist/frontend/npm-static-declarations.js +506 -0
  150. package/dist/frontend/npm-static-declarations.js.map +1 -0
  151. package/dist/frontend/npm-static-declarations.test.d.ts +1 -0
  152. package/dist/frontend/npm-static-declarations.test.js +122 -0
  153. package/dist/frontend/npm-static-declarations.test.js.map +1 -0
  154. package/dist/frontend/npm-static.d.ts +2 -0
  155. package/dist/frontend/npm-static.js +26 -10
  156. package/dist/frontend/npm-static.js.map +1 -1
  157. package/dist/frontend/npm.d.ts +60 -0
  158. package/dist/frontend/npm.js +38 -4
  159. package/dist/frontend/npm.js.map +1 -1
  160. package/dist/frontend/npm.test.d.ts +1 -0
  161. package/dist/frontend/npm.test.js +50 -0
  162. package/dist/frontend/npm.test.js.map +1 -0
  163. package/dist/frontend/program.d.ts +3 -2
  164. package/dist/frontend/program.js +495 -68
  165. package/dist/frontend/program.js.map +1 -1
  166. package/dist/frontend/resolve.d.ts +10 -2
  167. package/dist/frontend/resolve.js +90 -14
  168. package/dist/frontend/resolve.js.map +1 -1
  169. package/dist/frontend/resolve.test.js +4 -1
  170. package/dist/frontend/resolve.test.js.map +1 -1
  171. package/dist/frontend/runtime-resolve.d.ts +22 -0
  172. package/dist/frontend/runtime-resolve.js +101 -0
  173. package/dist/frontend/runtime-resolve.js.map +1 -0
  174. package/dist/frontend/runtime-resolve.test.d.ts +1 -0
  175. package/dist/frontend/runtime-resolve.test.js +18 -0
  176. package/dist/frontend/runtime-resolve.test.js.map +1 -0
  177. package/dist/frontend/ts7/adapter.js +12 -13
  178. package/dist/frontend/ts7/adapter.js.map +1 -1
  179. package/dist/frontend/ts7/ast.js.map +1 -1
  180. package/dist/frontend/ts7/census-check.js +3 -3
  181. package/dist/frontend/ts7/census-check.js.map +1 -1
  182. package/dist/frontend/ts7/checker.d.ts +3 -0
  183. package/dist/frontend/ts7/checker.js +12 -3
  184. package/dist/frontend/ts7/checker.js.map +1 -1
  185. package/dist/frontend/ts7/enums.js.map +1 -1
  186. package/dist/frontend/ts7/program-adapter.js +42 -3
  187. package/dist/frontend/ts7/program-adapter.js.map +1 -1
  188. package/dist/frontend/type-mapper.js +120 -7
  189. package/dist/frontend/type-mapper.js.map +1 -1
  190. package/dist/index.js +5 -5
  191. package/dist/index.js.map +1 -1
  192. package/dist/ir/analysis.js.map +1 -1
  193. package/dist/ir/ir.d.ts +60 -30
  194. package/dist/ir/ir.js +57 -6
  195. package/dist/ir/ir.js.map +1 -1
  196. package/dist/ir/validate.js +44 -59
  197. package/dist/ir/validate.js.map +1 -1
  198. package/dist/library/cache-primitives.js.map +1 -1
  199. package/dist/library/cache-reset.test.js.map +1 -1
  200. package/dist/library/compiler-self-identity.js.map +1 -1
  201. package/dist/library/int-infer.js.map +1 -1
  202. package/dist/library/int-infer.test.js.map +1 -1
  203. package/dist/library/library-profile.js.map +1 -1
  204. package/dist/library/sidecar-validate.js.map +1 -1
  205. package/dist/library/sidecar.js.map +1 -1
  206. package/dist/startup-cache.js.map +1 -1
  207. package/dist/wasi-paths.js.map +1 -1
  208. package/package.json +18 -18
  209. 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 { conditionalSpreadOf, droppableStatic, lowerAbsenceProbe, lowerDynObjectLiteral } from "./lower-exprs.js";
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 = lowerStaticallyUndefinedBuiltinArg(lowerer, node);
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 = lowerStaticallyUndefinedBuiltinArg(lowerer, node);
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
- ? lowerStaticallyUndefinedBuiltinArg(lowerer, secondNode)
5646
+ ? lowerStaticallyUndefinedArgument(lowerer, secondNode)
5476
5647
  : null;
5477
5648
  const thirdUndefined = thirdNode
5478
- ? lowerStaticallyUndefinedBuiltinArg(lowerer, thirdNode)
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 droppableStatic(evaluated)
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 && !droppableStatic(thirdUndefined)) {
5751
+ if (thirdUndefined && !isSafeToDiscard(thirdUndefined)) {
5581
5752
  const effects = isBytes
5582
- ? [encoding, thirdUndefined].filter((effect) => !droppableStatic(effect))
5753
+ ? [encoding, thirdUndefined].filter((effect) => !isSafeToDiscard(effect))
5583
5754
  : [thirdUndefined];
5584
5755
  runtimeEncoding = {
5585
5756
  kind: "seqExpr",