@scriptc/compiler 0.0.0 → 0.0.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 (206) hide show
  1. package/LICENSE +202 -0
  2. package/ambient/package.json +3 -0
  3. package/ambient/scriptc-node-fallback.d.ts +3001 -0
  4. package/ambient/scriptc-overrides.d.ts +95 -0
  5. package/ambient/scriptc.d.ts +74 -0
  6. package/dist/backend/cc.d.ts +169 -0
  7. package/dist/backend/cc.js +897 -0
  8. package/dist/backend/cc.js.map +1 -0
  9. package/dist/backend/emission/emit-async.d.ts +145 -0
  10. package/dist/backend/emission/emit-async.js +996 -0
  11. package/dist/backend/emission/emit-async.js.map +1 -0
  12. package/dist/backend/emission/emit-exprs.d.ts +3 -0
  13. package/dist/backend/emission/emit-exprs.js +5949 -0
  14. package/dist/backend/emission/emit-exprs.js.map +1 -0
  15. package/dist/backend/emission/emit-island.d.ts +45 -0
  16. package/dist/backend/emission/emit-island.js +271 -0
  17. package/dist/backend/emission/emit-island.js.map +1 -0
  18. package/dist/backend/emission/emit-shapes.d.ts +142 -0
  19. package/dist/backend/emission/emit-shapes.js +575 -0
  20. package/dist/backend/emission/emit-shapes.js.map +1 -0
  21. package/dist/backend/emission/emit-stmts.d.ts +78 -0
  22. package/dist/backend/emission/emit-stmts.js +960 -0
  23. package/dist/backend/emission/emit-stmts.js.map +1 -0
  24. package/dist/backend/emission/emit-types.d.ts +65 -0
  25. package/dist/backend/emission/emit-types.js +652 -0
  26. package/dist/backend/emission/emit-types.js.map +1 -0
  27. package/dist/backend/emission/emit-walkers.d.ts +154 -0
  28. package/dist/backend/emission/emit-walkers.js +1587 -0
  29. package/dist/backend/emission/emit-walkers.js.map +1 -0
  30. package/dist/backend/emission/emitter.d.ts +452 -0
  31. package/dist/backend/emission/emitter.js +1249 -0
  32. package/dist/backend/emission/emitter.js.map +1 -0
  33. package/dist/backend/emission/may-throw.d.ts +15 -0
  34. package/dist/backend/emission/may-throw.js +250 -0
  35. package/dist/backend/emission/may-throw.js.map +1 -0
  36. package/dist/backend/llvm/blocks.d.ts +21 -0
  37. package/dist/backend/llvm/blocks.js +68 -0
  38. package/dist/backend/llvm/blocks.js.map +1 -0
  39. package/dist/backend/llvm/classes.d.ts +84 -0
  40. package/dist/backend/llvm/classes.js +438 -0
  41. package/dist/backend/llvm/classes.js.map +1 -0
  42. package/dist/backend/llvm/dyn.d.ts +123 -0
  43. package/dist/backend/llvm/dyn.js +2624 -0
  44. package/dist/backend/llvm/dyn.js.map +1 -0
  45. package/dist/backend/llvm/emitter.d.ts +3 -0
  46. package/dist/backend/llvm/emitter.js +10102 -0
  47. package/dist/backend/llvm/emitter.js.map +1 -0
  48. package/dist/backend/llvm/shapes.d.ts +78 -0
  49. package/dist/backend/llvm/shapes.js +754 -0
  50. package/dist/backend/llvm/shapes.js.map +1 -0
  51. package/dist/backend/llvm/unsupported.d.ts +6 -0
  52. package/dist/backend/llvm/unsupported.js +12 -0
  53. package/dist/backend/llvm/unsupported.js.map +1 -0
  54. package/dist/backend/llvm/walkers.d.ts +58 -0
  55. package/dist/backend/llvm/walkers.js +793 -0
  56. package/dist/backend/llvm/walkers.js.map +1 -0
  57. package/dist/backend/mangle.d.ts +124 -0
  58. package/dist/backend/mangle.js +232 -0
  59. package/dist/backend/mangle.js.map +1 -0
  60. package/dist/coverage/report.d.ts +65 -0
  61. package/dist/coverage/report.js +238 -0
  62. package/dist/coverage/report.js.map +1 -0
  63. package/dist/diagnostics/diagnostic.d.ts +140 -0
  64. package/dist/diagnostics/diagnostic.js +458 -0
  65. package/dist/diagnostics/diagnostic.js.map +1 -0
  66. package/dist/diagnostics/render.d.ts +11 -0
  67. package/dist/diagnostics/render.js +58 -0
  68. package/dist/diagnostics/render.js.map +1 -0
  69. package/dist/frontend/cjs-lexer.d.ts +20 -0
  70. package/dist/frontend/cjs-lexer.js +813 -0
  71. package/dist/frontend/cjs-lexer.js.map +1 -0
  72. package/dist/frontend/lowering/http2-constants.d.ts +1 -0
  73. package/dist/frontend/lowering/http2-constants.js +251 -0
  74. package/dist/frontend/lowering/http2-constants.js.map +1 -0
  75. package/dist/frontend/lowering/lib-boundary.d.ts +6 -0
  76. package/dist/frontend/lowering/lib-boundary.js +143 -0
  77. package/dist/frontend/lowering/lib-boundary.js.map +1 -0
  78. package/dist/frontend/lowering/lower-assert.d.ts +18 -0
  79. package/dist/frontend/lowering/lower-assert.js +1269 -0
  80. package/dist/frontend/lowering/lower-assert.js.map +1 -0
  81. package/dist/frontend/lowering/lower-builtins.d.ts +511 -0
  82. package/dist/frontend/lowering/lower-builtins.js +5249 -0
  83. package/dist/frontend/lowering/lower-builtins.js.map +1 -0
  84. package/dist/frontend/lowering/lower-calls.d.ts +581 -0
  85. package/dist/frontend/lowering/lower-calls.js +6286 -0
  86. package/dist/frontend/lowering/lower-calls.js.map +1 -0
  87. package/dist/frontend/lowering/lower-classes.d.ts +727 -0
  88. package/dist/frontend/lowering/lower-classes.js +4701 -0
  89. package/dist/frontend/lowering/lower-classes.js.map +1 -0
  90. package/dist/frontend/lowering/lower-comptime.d.ts +53 -0
  91. package/dist/frontend/lowering/lower-comptime.js +244 -0
  92. package/dist/frontend/lowering/lower-comptime.js.map +1 -0
  93. package/dist/frontend/lowering/lower-containers.d.ts +486 -0
  94. package/dist/frontend/lowering/lower-containers.js +6345 -0
  95. package/dist/frontend/lowering/lower-containers.js.map +1 -0
  96. package/dist/frontend/lowering/lower-dgram.d.ts +20 -0
  97. package/dist/frontend/lowering/lower-dgram.js +319 -0
  98. package/dist/frontend/lowering/lower-dgram.js.map +1 -0
  99. package/dist/frontend/lowering/lower-emitter.d.ts +10 -0
  100. package/dist/frontend/lowering/lower-emitter.js +688 -0
  101. package/dist/frontend/lowering/lower-emitter.js.map +1 -0
  102. package/dist/frontend/lowering/lower-enums.d.ts +22 -0
  103. package/dist/frontend/lowering/lower-enums.js +235 -0
  104. package/dist/frontend/lowering/lower-enums.js.map +1 -0
  105. package/dist/frontend/lowering/lower-expando.d.ts +35 -0
  106. package/dist/frontend/lowering/lower-expando.js +276 -0
  107. package/dist/frontend/lowering/lower-expando.js.map +1 -0
  108. package/dist/frontend/lowering/lower-exprs.d.ts +524 -0
  109. package/dist/frontend/lowering/lower-exprs.js +8111 -0
  110. package/dist/frontend/lowering/lower-exprs.js.map +1 -0
  111. package/dist/frontend/lowering/lower-generators.d.ts +50 -0
  112. package/dist/frontend/lowering/lower-generators.js +421 -0
  113. package/dist/frontend/lowering/lower-generators.js.map +1 -0
  114. package/dist/frontend/lowering/lower-inspect.d.ts +20 -0
  115. package/dist/frontend/lowering/lower-inspect.js +1074 -0
  116. package/dist/frontend/lowering/lower-inspect.js.map +1 -0
  117. package/dist/frontend/lowering/lower-island.d.ts +108 -0
  118. package/dist/frontend/lowering/lower-island.js +650 -0
  119. package/dist/frontend/lowering/lower-island.js.map +1 -0
  120. package/dist/frontend/lowering/lower-mixins.d.ts +96 -0
  121. package/dist/frontend/lowering/lower-mixins.js +534 -0
  122. package/dist/frontend/lowering/lower-mixins.js.map +1 -0
  123. package/dist/frontend/lowering/lower-modules.d.ts +135 -0
  124. package/dist/frontend/lowering/lower-modules.js +1613 -0
  125. package/dist/frontend/lowering/lower-modules.js.map +1 -0
  126. package/dist/frontend/lowering/lower-namespaces.d.ts +168 -0
  127. package/dist/frontend/lowering/lower-namespaces.js +706 -0
  128. package/dist/frontend/lowering/lower-namespaces.js.map +1 -0
  129. package/dist/frontend/lowering/lower-server.d.ts +90 -0
  130. package/dist/frontend/lowering/lower-server.js +3471 -0
  131. package/dist/frontend/lowering/lower-server.js.map +1 -0
  132. package/dist/frontend/lowering/lower-stmts.d.ts +361 -0
  133. package/dist/frontend/lowering/lower-stmts.js +5341 -0
  134. package/dist/frontend/lowering/lower-stmts.js.map +1 -0
  135. package/dist/frontend/lowering/lower-stream.d.ts +88 -0
  136. package/dist/frontend/lowering/lower-stream.js +1533 -0
  137. package/dist/frontend/lowering/lower-stream.js.map +1 -0
  138. package/dist/frontend/lowering/lower-test.d.ts +27 -0
  139. package/dist/frontend/lowering/lower-test.js +353 -0
  140. package/dist/frontend/lowering/lower-test.js.map +1 -0
  141. package/dist/frontend/lowering/lowerer.d.ts +1748 -0
  142. package/dist/frontend/lowering/lowerer.js +6257 -0
  143. package/dist/frontend/lowering/lowerer.js.map +1 -0
  144. package/dist/frontend/lowering/surfaces.d.ts +272 -0
  145. package/dist/frontend/lowering/surfaces.js +1096 -0
  146. package/dist/frontend/lowering/surfaces.js.map +1 -0
  147. package/dist/frontend/npm-static.d.ts +55 -0
  148. package/dist/frontend/npm-static.js +300 -0
  149. package/dist/frontend/npm-static.js.map +1 -0
  150. package/dist/frontend/npm.d.ts +330 -0
  151. package/dist/frontend/npm.js +1259 -0
  152. package/dist/frontend/npm.js.map +1 -0
  153. package/dist/frontend/program.d.ts +186 -0
  154. package/dist/frontend/program.js +2255 -0
  155. package/dist/frontend/program.js.map +1 -0
  156. package/dist/frontend/provenance-registry.d.ts +48 -0
  157. package/dist/frontend/provenance-registry.js +87 -0
  158. package/dist/frontend/provenance-registry.js.map +1 -0
  159. package/dist/frontend/provenance.d.ts +6 -0
  160. package/dist/frontend/provenance.js +459 -0
  161. package/dist/frontend/provenance.js.map +1 -0
  162. package/dist/frontend/resolve.d.ts +56 -0
  163. package/dist/frontend/resolve.js +682 -0
  164. package/dist/frontend/resolve.js.map +1 -0
  165. package/dist/frontend/shared.d.ts +67 -0
  166. package/dist/frontend/shared.js +241 -0
  167. package/dist/frontend/shared.js.map +1 -0
  168. package/dist/frontend/ts7/adapter.d.ts +7 -0
  169. package/dist/frontend/ts7/adapter.js +54 -0
  170. package/dist/frontend/ts7/adapter.js.map +1 -0
  171. package/dist/frontend/ts7/ast.d.ts +50 -0
  172. package/dist/frontend/ts7/ast.js +211 -0
  173. package/dist/frontend/ts7/ast.js.map +1 -0
  174. package/dist/frontend/ts7/census-check.d.ts +1 -0
  175. package/dist/frontend/ts7/census-check.js +12 -0
  176. package/dist/frontend/ts7/census-check.js.map +1 -0
  177. package/dist/frontend/ts7/checker.d.ts +140 -0
  178. package/dist/frontend/ts7/checker.js +544 -0
  179. package/dist/frontend/ts7/checker.js.map +1 -0
  180. package/dist/frontend/ts7/enums.d.ts +18 -0
  181. package/dist/frontend/ts7/enums.js +43 -0
  182. package/dist/frontend/ts7/enums.js.map +1 -0
  183. package/dist/frontend/ts7/program.d.ts +99 -0
  184. package/dist/frontend/ts7/program.js +278 -0
  185. package/dist/frontend/ts7/program.js.map +1 -0
  186. package/dist/frontend/ts7/world-check.d.ts +3 -0
  187. package/dist/frontend/ts7/world-check.js +34 -0
  188. package/dist/frontend/ts7/world-check.js.map +1 -0
  189. package/dist/frontend/types.d.ts +205 -0
  190. package/dist/frontend/types.js +2485 -0
  191. package/dist/frontend/types.js.map +1 -0
  192. package/dist/index.d.ts +85 -0
  193. package/dist/index.js +429 -0
  194. package/dist/index.js.map +1 -0
  195. package/dist/ir/nodes.d.ts +4334 -0
  196. package/dist/ir/nodes.js +1906 -0
  197. package/dist/ir/nodes.js.map +1 -0
  198. package/dist/ir/serialize.d.ts +4 -0
  199. package/dist/ir/serialize.js +34 -0
  200. package/dist/ir/serialize.js.map +1 -0
  201. package/dist/ir/validate.d.ts +36 -0
  202. package/dist/ir/validate.js +4885 -0
  203. package/dist/ir/validate.js.map +1 -0
  204. package/package.json +30 -6
  205. package/README.md +0 -3
  206. package/index.js +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lower-stream.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import * as ts from "../ts7/adapter.js";
2
+ import type { Lowerer } from "./lowerer.js";
3
+ import { IrExpr, SrcLoc } from "../../ir/nodes.js";
4
+ /** Module-function calls on node:test import bindings (named imports AND
5
+ * namespace/default-import members — both funnel here). Null for other
6
+ * modules; every node:test member lands here — unlowered ones fence with
7
+ * the module-qualified name. */
8
+ export declare function lowerNodeTestModuleCall(L: Lowerer, expr: ts.CallExpression, bi: {
9
+ module: string;
10
+ member: string;
11
+ }, loc: SrcLoc): IrExpr | null;
12
+ /** The callable-module form: `test(...)` where the callee identifier IS
13
+ * the node:test module binding — a default import (`import test from
14
+ * "node:test"`) or the CJS `const test = require('node:test')` twin
15
+ * (Node's module object is the test function itself). Null for other
16
+ * callees. */
17
+ export declare function lowerTestDirectCall(L: Lowerer, expr: ts.CallExpression, loc: SrcLoc): IrExpr | null;
18
+ /** Method-position node:test calls — one entry in lower-calls.ts's
19
+ * intrinsic chain: skip/todo/only twins on NAMED import bindings
20
+ * (`test.skip(...)` where `test` came from `{ test }`), the TestContext
21
+ * surface (t.test/t.skip/t.todo/t.diagnostic), and t.assert.* (delegated
22
+ * to the assert spoke). Null for other receivers. */
23
+ export declare function lowerTestMethodCall(L: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
24
+ /** `t.name` as a VALUE — one entry in lower-exprs' property chain. Null
25
+ * for other receivers/members (the chain keeps trying); unlowered
26
+ * TestContext members fence member-qualified. */
27
+ export declare function lowerTestCtxProperty(L: Lowerer, expr: ts.PropertyAccessExpression): IrExpr | null;
@@ -0,0 +1,353 @@
1
+ /* The node:test lowering (a spoke module like lower-dgram.ts): the
2
+ * registration surface — test/it with sync and async bodies, skip/todo/
3
+ * only options and their method twins (test.skip/test.todo/test.only),
4
+ * describe/suite groups (bodies run at registration, Node's collection
5
+ * phase), the before/after/beforeEach/afterEach hooks — plus the
6
+ * TestContext argument's members: t.test subtests (inline on the runner
7
+ * fiber, the settled promise `await` consumes), t.skip/t.todo,
8
+ * t.diagnostic, t.name, and t.assert.* (delegated to the assert spoke —
9
+ * Node's t.assert methods ARE the assert functions bound to the test).
10
+ *
11
+ * Everything else the module declares fences member-qualified with a
12
+ * named hint — mock/run/snapshot (no lowering), concurrency/timeout/plan
13
+ * options, non-literal skip/todo values. Never a generic rejection,
14
+ * never silence. */
15
+ import * as ts from "../ts7/adapter.js";
16
+ import { locOf } from "../program.js";
17
+ import { F64, STRING, VOID, isUnitType } from "../../ir/nodes.js";
18
+ const TEST_FN_HINT = "test bodies take () or (t: TestContext) and return void or Promise<void>";
19
+ const TESTCTX_SURFACE_HINT = "t.test, t.skip, t.todo, t.diagnostic, t.name, and t.assert.* are the supported TestContext members";
20
+ /** Registration calls return Node's Promise<void>, but the promise only
21
+ * resolves through the runner — consuming it outside `await t.test(...)`
22
+ * has no lowering, so top-level registrations stand as statements. */
23
+ function requireStatementPosition(L, call, what) {
24
+ if (ts.isExpressionStatement(call.parent) || ts.isArrowFunction(call.parent))
25
+ return;
26
+ L.noLowering(`using the result of ${what}`, call, "call it as its own statement (await t.test(...) is the supported awaited form)");
27
+ }
28
+ const strLit = (value, loc) => ({ kind: "strLit", value, type: STRING, loc });
29
+ const numLit = (value, loc) => ({ kind: "numLit", value, type: F64, loc });
30
+ /** The "file:line:col" of a registration call — the failing-section
31
+ * "test at" line (Node reads the stack; the frontend HAS the position).
32
+ * V8 frames point at the callee's NAME for member calls (`t.test(...)`
33
+ * reports the `test` property's column), at the call for plain ones. */
34
+ function atStringOf(expr) {
35
+ const target = ts.isPropertyAccessExpression(expr.expression)
36
+ ? expr.expression.name
37
+ : expr;
38
+ const sf = expr.getSourceFile();
39
+ const pos = sf.getLineAndCharacterOfPosition(target.getStart());
40
+ return `${sf.fileName}:${pos.line + 1}:${pos.character + 1}`;
41
+ }
42
+ /** Parses a test/describe options argument — an OBJECT LITERAL whose
43
+ * skip/todo values are boolean literals or string messages and whose
44
+ * only is the boolean literal. Everything else fences with the option
45
+ * name (concurrency/timeout/plan included — bounded surface, honest
46
+ * fence). */
47
+ function lowerTestOptions(L, node, what) {
48
+ if (!ts.isObjectLiteralExpression(node)) {
49
+ L.noLowering(`${what} with a non-literal options argument`, node, "pass the options as an object literal: { skip?, todo?, only? }");
50
+ }
51
+ const out = { mode: 0, msg: null, only: false };
52
+ for (const prop of node.properties) {
53
+ if (!ts.isPropertyAssignment(prop) || !ts.isIdentifier(prop.name)) {
54
+ L.noLowering(`${what} options with computed keys, spreads, or shorthand entries`, prop, "each option must be a plain `name: value` entry with a literal key");
55
+ }
56
+ const name = prop.name.text;
57
+ if (name === "skip" || name === "todo") {
58
+ const mode = name === "skip" ? 1 : 2;
59
+ const t = L.typeOf(prop.initializer);
60
+ if (t.isStringLiteralType() || L.mapTypeOf(t)?.kind === "string") {
61
+ out.mode = mode;
62
+ out.msg = L.lowerExprExpecting(prop.initializer, STRING);
63
+ }
64
+ else if (prop.initializer.kind === ts.SyntaxKind.TrueKeyword) {
65
+ out.mode = mode;
66
+ }
67
+ else if (prop.initializer.kind === ts.SyntaxKind.FalseKeyword) {
68
+ // explicit false: run normally
69
+ }
70
+ else {
71
+ L.noLowering(`${what} with a non-literal ${name} value`, prop.initializer, `${name} takes the literal true/false or a string message here`);
72
+ }
73
+ }
74
+ else if (name === "only") {
75
+ if (prop.initializer.kind === ts.SyntaxKind.TrueKeyword)
76
+ out.only = true;
77
+ else if (prop.initializer.kind !== ts.SyntaxKind.FalseKeyword) {
78
+ L.noLowering(`${what} with a non-literal only value`, prop.initializer, "only takes the literal true/false here");
79
+ }
80
+ }
81
+ else {
82
+ L.noLowering(`${what} option '${name}'`, prop, "skip, todo, and only are the supported options");
83
+ }
84
+ }
85
+ return out;
86
+ }
87
+ /** Lowers a test/hook body, pinning the shape: 0 params or the one
88
+ * TestContext param, returning void (sync) or Promise<void> (async —
89
+ * the runner awaits through the emitted spawn wrapper). Returns the
90
+ * closure and its runtime flags (1 async | 2 takes-ctx). */
91
+ function lowerBodyArg(L, node, what, allowCtx) {
92
+ const cb = L.lowerExpr(node);
93
+ if (cb.type.kind !== "func") {
94
+ L.noLowering(`${what} whose body is not a function`, node, TEST_FN_HINT);
95
+ }
96
+ let flags = 0;
97
+ if (cb.type.params.length > (allowCtx ? 1 : 0)) {
98
+ L.noLowering(`${what} with ${cb.type.params.length} parameters`, node, allowCtx ? TEST_FN_HINT : "hooks take no parameters");
99
+ }
100
+ if (cb.type.params.length === 1) {
101
+ if (cb.type.params[0].kind !== "testCtx") {
102
+ L.noLowering(`${what} whose parameter is not the TestContext`, node, TEST_FN_HINT);
103
+ }
104
+ flags |= 2;
105
+ }
106
+ const ret = cb.type.ret;
107
+ if (ret.kind === "promise") {
108
+ if (!(ret.inner.kind === "void" || isUnitType(ret.inner))) {
109
+ L.noLowering(`${what} returning Promise<${L.fmt(ret.inner)}>`, node, TEST_FN_HINT);
110
+ }
111
+ flags |= 1;
112
+ }
113
+ else if (ret.kind !== "void" && !isUnitType(ret)) {
114
+ L.noLowering(`${what} returning '${L.fmt(ret)}'`, node, TEST_FN_HINT);
115
+ }
116
+ return { cb, flags };
117
+ }
118
+ /** The shared registration lowering behind test/it and their skip/todo/
119
+ * only method twins — and, with `sub`, behind t.test. Argument shapes:
120
+ * (name), (name, fn), (name, options, fn). */
121
+ function lowerRegistration(L, expr, what, loc, methodMode, // 0 none, 1 skip, 2 todo, 3 only
122
+ sub) {
123
+ if (sub === null)
124
+ requireStatementPosition(L, expr, what);
125
+ const args = expr.arguments;
126
+ if (args.length < 1 || args.length > 3) {
127
+ L.noLowering(`${what} with ${args.length} arguments`, expr, "the supported forms are (name), (name, fn), and (name, options, fn)");
128
+ }
129
+ const name = L.lowerExprExpecting(args[0], STRING);
130
+ let opts = { mode: 0, msg: null, only: false };
131
+ let fnNode;
132
+ if (args.length === 2)
133
+ fnNode = args[1];
134
+ if (args.length === 3) {
135
+ opts = lowerTestOptions(L, args[1], what);
136
+ fnNode = args[2];
137
+ }
138
+ if (methodMode === 1 || methodMode === 2)
139
+ opts.mode = methodMode;
140
+ if (methodMode === 3)
141
+ opts.only = true;
142
+ const at = strLit(atStringOf(expr), loc);
143
+ const mode = numLit(opts.mode, loc);
144
+ const msg = opts.msg ?? strLit("", loc);
145
+ if (!fnNode) {
146
+ const emptyFlags = numLit(opts.only ? 4 : 0, loc);
147
+ return sub
148
+ ? { kind: "libCall", fn: "test.subEmpty", args: [sub, name, mode, msg, at], type: VOID, loc }
149
+ : { kind: "libCall", fn: "test.registerEmpty", args: [name, mode, msg, emptyFlags, at], type: VOID, loc };
150
+ }
151
+ const { cb, flags } = lowerBodyArg(L, fnNode, what, true);
152
+ const flagsLit = numLit(flags | (opts.only ? 4 : 0), loc);
153
+ if (sub) {
154
+ const promiseVoid = { kind: "promise", inner: VOID };
155
+ return { kind: "libCall", fn: "test.sub", args: [sub, name, mode, msg, cb, flagsLit, at], type: promiseVoid, loc };
156
+ }
157
+ return { kind: "libCall", fn: "test.register", args: [name, mode, msg, cb, flagsLit, at], type: VOID, loc };
158
+ }
159
+ /** describe/suite (and describe.skip/todo/only): the body is a SYNC
160
+ * zero-parameter closure that runs AT registration. */
161
+ function lowerSuite(L, expr, what, loc, methodMode) {
162
+ requireStatementPosition(L, expr, what);
163
+ const args = expr.arguments;
164
+ if (args.length < 2 || args.length > 3) {
165
+ L.noLowering(`${what} with ${args.length} arguments`, expr, "the supported forms are (name, fn) and (name, options, fn)");
166
+ }
167
+ const name = L.lowerExprExpecting(args[0], STRING);
168
+ let opts = { mode: 0, msg: null, only: false };
169
+ let fnNode = args[1];
170
+ if (args.length === 3) {
171
+ opts = lowerTestOptions(L, args[1], what);
172
+ fnNode = args[2];
173
+ }
174
+ if (methodMode === 1 || methodMode === 2)
175
+ opts.mode = methodMode;
176
+ const cb = L.lowerExpr(fnNode);
177
+ if (cb.type.kind !== "func" || cb.type.params.length !== 0) {
178
+ L.noLowering(`${what} whose body is not a zero-parameter function`, fnNode, "suite bodies take no parameters (they run at registration)");
179
+ }
180
+ if (cb.type.ret.kind !== "void" && !isUnitType(cb.type.ret)) {
181
+ L.noLowering(`${what} with a non-void body`, fnNode, "suite bodies are synchronous and return nothing");
182
+ }
183
+ const at = strLit(atStringOf(expr), loc);
184
+ const mode = numLit(opts.mode, loc);
185
+ const msg = opts.msg ?? strLit("", loc);
186
+ return { kind: "libCall", fn: "test.suite", args: [name, mode, msg, cb, at], type: VOID, loc };
187
+ }
188
+ /** before/after/beforeEach/afterEach — hooks on the enclosing suite
189
+ * (top-level hooks attach to the implicit root). */
190
+ function lowerHook(L, expr, which, what, loc) {
191
+ requireStatementPosition(L, expr, what);
192
+ const args = expr.arguments;
193
+ if (args.length !== 1) {
194
+ L.noLowering(`${what} with ${args.length} arguments`, expr, "the supported form is one zero-parameter function (hook options have no lowering)");
195
+ }
196
+ const { cb, flags } = lowerBodyArg(L, args[0], what, false);
197
+ return {
198
+ kind: "libCall", fn: "test.hook",
199
+ args: [numLit(which, loc), cb, numLit(flags, loc)], type: VOID, loc,
200
+ };
201
+ }
202
+ const HOOK_WHICH = {
203
+ before: 0, after: 1, beforeEach: 2, afterEach: 3,
204
+ };
205
+ /** Module-function calls on node:test import bindings (named imports AND
206
+ * namespace/default-import members — both funnel here). Null for other
207
+ * modules; every node:test member lands here — unlowered ones fence with
208
+ * the module-qualified name. */
209
+ export function lowerNodeTestModuleCall(L, expr, bi, loc) {
210
+ if (bi.module !== "test")
211
+ return null;
212
+ switch (bi.member) {
213
+ case "test":
214
+ case "it":
215
+ return lowerRegistration(L, expr, `${bi.member}(...)`, loc, 0, null);
216
+ case "skip":
217
+ case "todo":
218
+ case "only":
219
+ // The default-import method twins (`test.skip(...)` where `test`
220
+ // is the module object).
221
+ return lowerRegistration(L, expr, `test.${bi.member}(...)`, loc, bi.member === "skip" ? 1 : bi.member === "todo" ? 2 : 3, null);
222
+ case "describe":
223
+ case "suite":
224
+ return lowerSuite(L, expr, `${bi.member}(...)`, loc, 0);
225
+ case "before":
226
+ case "after":
227
+ case "beforeEach":
228
+ case "afterEach":
229
+ return lowerHook(L, expr, HOOK_WHICH[bi.member], `${bi.member}(...)`, loc);
230
+ case "run":
231
+ L.noLowering("test.run", expr, "the programmatic runner has no lowering — run tests by executing the compiled binary");
232
+ break;
233
+ case "snapshot":
234
+ L.noLowering("test.snapshot", expr, "snapshot testing has no lowering");
235
+ break;
236
+ default:
237
+ L.noLowering(`test.${bi.member}`, expr, "test/it, describe/suite, before/after/beforeEach/afterEach, and the skip/todo/only twins are the lowered node:test members", ts.isIdentifier(expr.expression) ? L.resolveValueSymbol(expr.expression) : undefined);
238
+ }
239
+ return null; // unreachable — noLowering throws
240
+ }
241
+ /** The callable-module form: `test(...)` where the callee identifier IS
242
+ * the node:test module binding — a default import (`import test from
243
+ * "node:test"`) or the CJS `const test = require('node:test')` twin
244
+ * (Node's module object is the test function itself). Null for other
245
+ * callees. */
246
+ export function lowerTestDirectCall(L, expr, loc) {
247
+ const callee = expr.expression;
248
+ if (!ts.isIdentifier(callee))
249
+ return null;
250
+ if (L.builtinNamespaceModuleOf(callee) !== "test")
251
+ return null;
252
+ const calleeSym = L.checker.getSymbolAtLocation(callee);
253
+ const decl = calleeSym ? L.checker.declarationsOf(calleeSym)[0] : undefined;
254
+ if (decl && ts.isNamespaceImport(decl)) {
255
+ L.unsupported("SC1013", expr, "calling a module namespace object (Node throws TypeError there — " +
256
+ 'use the default import: import test from "node:test")');
257
+ }
258
+ return lowerRegistration(L, expr, "test(...)", loc, 0, null);
259
+ }
260
+ /** Method-position node:test calls — one entry in lower-calls.ts's
261
+ * intrinsic chain: skip/todo/only twins on NAMED import bindings
262
+ * (`test.skip(...)` where `test` came from `{ test }`), the TestContext
263
+ * surface (t.test/t.skip/t.todo/t.diagnostic), and t.assert.* (delegated
264
+ * to the assert spoke). Null for other receivers. */
265
+ export function lowerTestMethodCall(L, call, access) {
266
+ if (call.questionDotToken || access.questionDotToken)
267
+ return null;
268
+ const loc = locOf(call);
269
+ const member = access.name.text;
270
+ // test.skip / it.only / describe.todo on a NAMED import binding: the
271
+ // receiver resolves to the module member the binding imported.
272
+ if (ts.isIdentifier(access.expression)) {
273
+ const bi = L.builtinImportOf(access.expression);
274
+ if (bi && bi.module === "test") {
275
+ if ((bi.member === "test" || bi.member === "it") && (member === "skip" || member === "todo" || member === "only")) {
276
+ return lowerRegistration(L, call, `${bi.member}.${member}(...)`, loc, member === "skip" ? 1 : member === "todo" ? 2 : 3, null);
277
+ }
278
+ if ((bi.member === "describe" || bi.member === "suite") && (member === "skip" || member === "todo" || member === "only")) {
279
+ return lowerSuite(L, call, `${bi.member}.${member}(...)`, loc, member === "skip" ? 1 : member === "todo" ? 2 : 0);
280
+ }
281
+ if (bi.member === "mock") {
282
+ L.noLowering("test.mock", call, "mocking has no lowering", L.checker.getSymbolAtLocation(access.name));
283
+ }
284
+ L.noLowering(`test.${bi.member}.${member}`, call, "skip, todo, and only are the supported method twins", L.checker.getSymbolAtLocation(access.name));
285
+ }
286
+ }
287
+ // t.assert.strictEqual(...) — the callee's receiver is `t.assert` on a
288
+ // TestContext: Node's t.assert methods ARE the assert functions (bound
289
+ // to the test for its counters — not modeled; the throw is identical),
290
+ // so the assert spoke owns the call shape.
291
+ if (ts.isPropertyAccessExpression(access.expression) &&
292
+ !access.expression.questionDotToken &&
293
+ access.expression.name.text === "assert" &&
294
+ L.mapTypeOf(L.typeOf(access.expression.expression))?.kind === "testCtx" &&
295
+ L.isStdlibMember(access.expression)) {
296
+ const served = L.lowerAssertModuleCall(call, { module: "assert", member }, loc);
297
+ if (served)
298
+ return served;
299
+ L.noLowering(`t.assert.${member}`, call, "the assert-module surface is the supported t.assert surface", L.checker.getSymbolAtLocation(access.name));
300
+ }
301
+ // The TestContext receiver surface.
302
+ if (L.mapTypeOf(L.typeOf(access.expression))?.kind !== "testCtx")
303
+ return null;
304
+ if (!L.isStdlibMember(access))
305
+ return null;
306
+ const args = call.arguments;
307
+ if (member === "test") {
308
+ const receiver = L.lowerExpr(access.expression);
309
+ return lowerRegistration(L, call, "t.test(...)", loc, 0, receiver);
310
+ }
311
+ if (member === "skip" || member === "todo") {
312
+ requireStatementPosition(L, call, `t.${member}(...)`);
313
+ if (args.length > 1) {
314
+ L.noLowering(`t.${member} with ${args.length} arguments`, call, `the supported form is t.${member}([message])`);
315
+ }
316
+ const receiver = L.lowerExpr(access.expression);
317
+ const msg = args[0] ? L.lowerExprExpecting(args[0], STRING) : strLit("", loc);
318
+ return {
319
+ kind: "libCall", fn: member === "skip" ? "test.ctxSkip" : "test.ctxTodo",
320
+ args: [receiver, msg], type: VOID, loc,
321
+ };
322
+ }
323
+ if (member === "diagnostic") {
324
+ requireStatementPosition(L, call, "t.diagnostic(...)");
325
+ if (args.length !== 1) {
326
+ L.noLowering(`t.diagnostic with ${args.length} arguments`, call, "the supported form is t.diagnostic(message)");
327
+ }
328
+ const receiver = L.lowerExpr(access.expression);
329
+ const msg = L.lowerExprExpecting(args[0], STRING);
330
+ return { kind: "libCall", fn: "test.ctxDiagnostic", args: [receiver, msg], type: VOID, loc };
331
+ }
332
+ L.noLowering(`TestContext.${member}`, call, TESTCTX_SURFACE_HINT, L.checker.getSymbolAtLocation(access.name));
333
+ }
334
+ /** `t.name` as a VALUE — one entry in lower-exprs' property chain. Null
335
+ * for other receivers/members (the chain keeps trying); unlowered
336
+ * TestContext members fence member-qualified. */
337
+ export function lowerTestCtxProperty(L, expr) {
338
+ if (expr.questionDotToken)
339
+ return null;
340
+ if (L.mapTypeOf(L.typeOf(expr.expression))?.kind !== "testCtx")
341
+ return null;
342
+ if (!L.isStdlibMember(expr))
343
+ return null;
344
+ const loc = locOf(expr);
345
+ if (expr.name.text === "name") {
346
+ const receiver = L.lowerExpr(expr.expression);
347
+ return { kind: "libCall", fn: "test.ctxName", args: [receiver], type: STRING, loc };
348
+ }
349
+ if (expr.name.text === "assert")
350
+ return null; // claimed by the call path
351
+ L.noLowering(`TestContext.${expr.name.text}`, expr, TESTCTX_SURFACE_HINT, L.checker.getSymbolAtLocation(expr.name));
352
+ }
353
+ //# sourceMappingURL=lower-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lower-test.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-test.ts"],"names":[],"mappings":"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"}