@scriptc/compiler 0.0.22 → 0.0.23

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 (68) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +39 -3
  2. package/dist/backend/emission/emit-async.js +3 -1
  3. package/dist/backend/emission/emit-async.js.map +1 -1
  4. package/dist/backend/emission/emit-exprs.d.ts +10 -0
  5. package/dist/backend/emission/emit-exprs.js +127 -10
  6. package/dist/backend/emission/emit-exprs.js.map +1 -1
  7. package/dist/backend/emission/emit-stmts.js +13 -5
  8. package/dist/backend/emission/emit-stmts.js.map +1 -1
  9. package/dist/backend/emission/emit-types.js +4 -1
  10. package/dist/backend/emission/emit-types.js.map +1 -1
  11. package/dist/backend/emission/emitter.d.ts +11 -1
  12. package/dist/backend/emission/emitter.js +61 -1
  13. package/dist/backend/emission/emitter.js.map +1 -1
  14. package/dist/backend/llvm/emitter.js +304 -21
  15. package/dist/backend/llvm/emitter.js.map +1 -1
  16. package/dist/backend/llvm/shapes.js +3 -2
  17. package/dist/backend/llvm/shapes.js.map +1 -1
  18. package/dist/compat/fetch-profile.d.ts +10 -0
  19. package/dist/compat/fetch-profile.js +55 -6
  20. package/dist/compat/fetch-profile.js.map +1 -1
  21. package/dist/coverage/surface-manifest.js +16 -1
  22. package/dist/coverage/surface-manifest.js.map +1 -1
  23. package/dist/diagnostics/diagnostic.d.ts +10 -0
  24. package/dist/diagnostics/diagnostic.js +27 -1
  25. package/dist/diagnostics/diagnostic.js.map +1 -1
  26. package/dist/frontend/lowering/lower-builtins.d.ts +3 -7
  27. package/dist/frontend/lowering/lower-builtins.js +80 -55
  28. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  29. package/dist/frontend/lowering/lower-calls.js +1 -0
  30. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  31. package/dist/frontend/lowering/lower-classes.js +28 -8
  32. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  33. package/dist/frontend/lowering/lower-exprs.d.ts +1 -1
  34. package/dist/frontend/lowering/lower-exprs.js +25 -4
  35. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  36. package/dist/frontend/lowering/lower-generators.js +7 -1
  37. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  38. package/dist/frontend/lowering/lower-island.d.ts +21 -0
  39. package/dist/frontend/lowering/lower-island.js +284 -10
  40. package/dist/frontend/lowering/lower-island.js.map +1 -1
  41. package/dist/frontend/lowering/lower-stmts.js +8 -4
  42. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  43. package/dist/frontend/lowering/lowerer.d.ts +1 -0
  44. package/dist/frontend/lowering/lowerer.js +6 -2
  45. package/dist/frontend/lowering/lowerer.js.map +1 -1
  46. package/dist/frontend/lowering/surfaces.js +43 -12
  47. package/dist/frontend/lowering/surfaces.js.map +1 -1
  48. package/dist/frontend/program.d.ts +4 -4
  49. package/dist/frontend/program.js +264 -46
  50. package/dist/frontend/program.js.map +1 -1
  51. package/dist/frontend/resolve.d.ts +10 -0
  52. package/dist/frontend/resolve.js +37 -0
  53. package/dist/frontend/resolve.js.map +1 -1
  54. package/dist/frontend/ts7/enums.d.ts +9 -0
  55. package/dist/frontend/ts7/enums.js +8 -6
  56. package/dist/frontend/ts7/enums.js.map +1 -1
  57. package/dist/frontend/ts7/program.js +4 -1
  58. package/dist/frontend/ts7/program.js.map +1 -1
  59. package/dist/frontend/types.d.ts +4 -4
  60. package/dist/frontend/types.js +25 -8
  61. package/dist/frontend/types.js.map +1 -1
  62. package/dist/ir/nodes.d.ts +24 -11
  63. package/dist/ir/nodes.js +6 -1
  64. package/dist/ir/nodes.js.map +1 -1
  65. package/dist/ir/validate.js +45 -8
  66. package/dist/ir/validate.js.map +1 -1
  67. package/package.json +2 -2
  68. package/surface-manifest.json +137 -28
@@ -11,6 +11,15 @@ interface ModuleResolutionKindEnum {
11
11
  }
12
12
  export declare const ModuleResolutionKind: ModuleResolutionKindEnum;
13
13
  export type ModuleResolutionKind = number;
14
+ interface ModuleDetectionKindEnum {
15
+ readonly None: number;
16
+ readonly Auto: number;
17
+ readonly Legacy: number;
18
+ readonly Force: number;
19
+ readonly [key: string | number]: string | number;
20
+ }
21
+ export declare const ModuleDetectionKind: ModuleDetectionKindEnum;
22
+ export type ModuleDetectionKind = number;
14
23
  /** Reverse-maps a numeric enum value to its TS7 key name ("ESNext",
15
24
  * "Bundler") — the spelling tsgo's tsconfig JSON parser accepts (lowercased
16
25
  * by the caller where needed). Symbolic by construction: the name comes from
@@ -8,12 +8,13 @@
8
8
  * this module.
9
9
  *
10
10
  * Placement in 7.0.2 (probed): the AST-world enums ship from unstable/ast,
11
- * the checker-world enums from unstable/sync. ModuleResolutionKind is the one
12
- * census enum the package does not re-export from any public entry point —
13
- * it lives in dist/enums (the #enums/* internal imports), which the exports
14
- * map hides from bare-specifier imports but NOT from a direct file require;
15
- * loadHiddenEnum resolves the package root and requires the enum module by
16
- * path, so the values are still TypeScript 7's own, never copied numbers. */
11
+ * the checker-world enums from unstable/sync. ModuleResolutionKind and
12
+ * ModuleDetectionKind are the census/options enums the package does not
13
+ * re-export from any public entry point — they live in dist/enums (the
14
+ * #enums/* internal imports), which the exports map hides from bare-
15
+ * specifier imports but NOT from a direct file require; loadHiddenEnum
16
+ * resolves the package root and requires the enum module by path, so the
17
+ * values are still TypeScript 7's own, never copied numbers. */
17
18
  import { createRequire } from "node:module";
18
19
  import { dirname, join } from "node:path";
19
20
  export { InternalSymbolName, ModifierFlags, NodeFlags, ScriptKind, ScriptTarget, SyntaxKind, TokenFlags, } from "typescript/unstable/ast";
@@ -32,6 +33,7 @@ function loadHiddenEnum(basename, key) {
32
33
  return value;
33
34
  }
34
35
  export const ModuleResolutionKind = loadHiddenEnum("moduleResolutionKind", "ModuleResolutionKind");
36
+ export const ModuleDetectionKind = loadHiddenEnum("moduleDetectionKind", "ModuleDetectionKind");
35
37
  /** Reverse-maps a numeric enum value to its TS7 key name ("ESNext",
36
38
  * "Bundler") — the spelling tsgo's tsconfig JSON parser accepts (lowercased
37
39
  * by the caller where needed). Symbolic by construction: the name comes from
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/frontend/ts7/enums.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;6EAe6E;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,UAAU,EACV,YAAY,EACZ,UAAU,EACV,UAAU,GACX,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,EACX,SAAS,EACT,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAElC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C;;;qCAGqC;AACrC,SAAS,cAAc,CAAI,QAAgB,EAAE,GAAW;IACtD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAsB,CAAC;IAC/F,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,kBAAkB,GAAG,EAAE,CAAC,CAAC;IACpG,OAAO,KAAK,CAAC;AACf,CAAC;AAiBD,MAAM,CAAC,MAAM,oBAAoB,GAC/B,cAAc,CAA2B,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;AAG3F;;;4CAG4C;AAC5C,MAAM,UAAU,SAAS,CAAC,UAAoD,EAAE,KAAa;IAC3F,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/frontend/ts7/enums.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;gEAgBgE;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,UAAU,EACV,YAAY,EACZ,UAAU,EACV,UAAU,GACX,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,EACX,SAAS,EACT,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAElC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C;;;qCAGqC;AACrC,SAAS,cAAc,CAAI,QAAgB,EAAE,GAAW;IACtD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAsB,CAAC;IAC/F,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,kBAAkB,GAAG,EAAE,CAAC,CAAC;IACpG,OAAO,KAAK,CAAC;AACf,CAAC;AAiBD,MAAM,CAAC,MAAM,oBAAoB,GAC/B,cAAc,CAA2B,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;AAW3F,MAAM,CAAC,MAAM,mBAAmB,GAC9B,cAAc,CAA0B,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;AAGxF;;;4CAG4C;AAC5C,MAAM,UAAU,SAAS,CAAC,UAAoD,EAAE,KAAa;IAC3F,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC"}
@@ -18,7 +18,7 @@ import { existsSync, readFileSync, statSync, writeFileSync } from "node:fs";
18
18
  import { dirname, join, resolve } from "node:path";
19
19
  import { API } from "typescript/unstable/sync";
20
20
  import { CheckerFacade } from "./checker.js";
21
- import { enumKeyOf, ModuleKind, ModuleResolutionKind, ScriptTarget } from "./enums.js";
21
+ import { enumKeyOf, ModuleDetectionKind, ModuleKind, ModuleResolutionKind, ScriptTarget } from "./enums.js";
22
22
  import { tsgoPath } from "../shared.js";
23
23
  /* tsconfig JSON wants enum NAMES; the options object carries TS7's numeric
24
24
  * enum values. The names come from the enum objects' own reverse mappings —
@@ -47,6 +47,9 @@ function serializeOptions(options) {
47
47
  case "moduleResolution":
48
48
  out[key] = enumKeyOf(ModuleResolutionKind, value)?.toLowerCase() ?? value;
49
49
  break;
50
+ case "moduleDetection":
51
+ out[key] = enumKeyOf(ModuleDetectionKind, value)?.toLowerCase() ?? value;
52
+ break;
50
53
  case "lib":
51
54
  // 5.9.3 spells lib entries "lib.es2025.d.ts"; tsconfig wants "es2025".
52
55
  out[key] = value.map((lib) => lib.startsWith("lib.") && lib.endsWith(".d.ts") ? lib.slice(4, -5) : lib);
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/frontend/ts7/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/frontend/ts7/program.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;iDAeiD;AAEjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAQ/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAQxC;;kCAEkC;AAClC,SAAS,gBAAgB,CAAC,OAA2B;IACnD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,QAAQ,GAAG,EAAE,CAAC;YACZ,uEAAuE;YACvE,wEAAwE;YACxE,+DAA+D;YAC/D,eAAe;YACf,KAAK,QAAQ;gBACX,iEAAiE;gBACjE,6DAA6D;gBAC7D,GAAG,CAAC,GAAG,CAAC;oBACN,KAAK,KAAK,YAAY,CAAC,MAAM;wBAC3B,CAAC,CAAC,QAAQ;wBACV,CAAC,CAAC,CAAC,SAAS,CAAC,YAAqB,EAAE,KAAe,CAAC,EAAE,WAAW,EAAE,IAAI,KAAK,CAAC,CAAC;gBAClF,MAAM;YACR,KAAK,QAAQ;gBACX,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,UAAmB,EAAE,KAAe,CAAC,EAAE,WAAW,EAAE,IAAI,KAAK,CAAC;gBACnF,MAAM;YACR,KAAK,kBAAkB;gBACrB,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,oBAA6B,EAAE,KAAe,CAAC,EAAE,WAAW,EAAE,IAAI,KAAK,CAAC;gBAC7F,MAAM;YACR,KAAK,iBAAiB;gBACpB,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,mBAA4B,EAAE,KAAe,CAAC,EAAE,WAAW,EAAE,IAAI,KAAK,CAAC;gBAC5F,MAAM;YACR,KAAK,KAAK;gBACR,uEAAuE;gBACvE,GAAG,CAAC,GAAG,CAAC,GAAI,KAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACzC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CACzE,CAAC;gBACF,MAAM;YACR,OAAO,CAAC,CAAC,CAAC;gBACR,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,sBAAsB,EAAE,CAAC;oBAChE,MAAM,IAAI,KAAK,CAAC,6DAA6D,GAAG,GAAG,CAAC,CAAC;gBACvF,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB;;;mBAGmB;AACnB,MAAM,OAAO,OAAO;IACD,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,GAAG,CAAM;IAClB,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,OAYX;QACC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,MAAM,MAAM,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;YACjB,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;YAClC,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,EAAE,EAAE;gBACF,+DAA+D;gBAC/D,+CAA+C;gBAC/C,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;oBACrB,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACrD,IAAI,OAAO,KAAK,SAAS;wBAAE,OAAO,OAAO,CAAC;oBAC1C,IAAI,MAAM,KAAK,IAAI;wBAAE,OAAO,SAAS,CAAC;oBACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBAAE,OAAO,IAAI,CAAC;oBAC3C,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACnC,CAAC;gBACD,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;oBACvB,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAAE,OAAO,IAAI,CAAC;oBACtD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAC/D,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,eAAe,EAAE,GAAG,EAAE,CAAC,SAAS;gBAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzE,oBAAoB,EAAE,GAAG,EAAE,CAAC,SAAS;aACtC;SACF,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,cAAc,CAAC,IAAY,EAAE,OAAe;QAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;;oBAGgB;IAChB,eAAe,CAAC,UAAkB;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,aAAa,CACX,SAA4B,EAC5B,OAA2B;IAC3B,8EAA8E;IAC9E,eAAe,GAAG,KAAK;QAEvB,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,iBAAiB,YAAY,EAAE,gBAAgB,CAAC,CAAC;QACzF,IAAI,CAAC,cAAc,CACjB,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAC1F,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,iDAAiD,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC;IACnE,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAClC,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;CACF;AAED;;yEAEyE;AACzE,MAAM,OAAO,UAAU;IAMV;IACQ;IACA;IACA;IARX,gBAAgB,GAAiC,IAAI,CAAC;IACtD,aAAa,GAAyB,IAAI,CAAC;IAEnD;IACE,gEAAgE;IACvD,OAAgB,EACR,QAAkB,EAClB,IAAa,EACb,UAAmB;QAH3B,YAAO,GAAP,OAAO,CAAS;QACR,aAAQ,GAAR,QAAQ,CAAU;QAClB,SAAI,GAAJ,IAAI,CAAS;QACb,eAAU,GAAV,UAAU,CAAS;IACnC,CAAC;IAEJ,kBAAkB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IACnD,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IACnD,CAAC;IAED;;oEAEgE;IAChE,cAAc;QACZ,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,OAAO;iBAC5B,kBAAkB,EAAE;iBACpB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;iBAC1C,MAAM,CAAC,CAAC,EAAE,EAAoB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,uBAAuB,CAAC,UAAuB;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,sBAAsB,CAAC,UAAuB;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IACrD,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IACtD,CAAC;IAED,+BAA+B;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,+BAA+B,EAAE,CAAC;IAChE,CAAC;IAED,0BAA0B,CAAC,IAAgB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,+BAA+B,CAAC,IAAgB;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;CACF;AAED;;;oDAGoD;AACpD,MAAM,UAAU,aAAa,CAC3B,SAA4B,EAC5B,OAA2B,EAC3B,IAAc;IAEd,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAClG,OAAO,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED;;2CAE2C;AAC3C,MAAM,UAAU,qBAAqB,CAAC,OAAmB;IACvD,OAAO;QACL,GAAG,OAAO,CAAC,+BAA+B,EAAE;QAC5C,GAAG,OAAO,CAAC,qBAAqB,EAAE;QAClC,GAAG,OAAO,CAAC,oBAAoB,EAAE;QACjC,GAAG,OAAO,CAAC,uBAAuB,EAAE;QACpC,GAAG,OAAO,CAAC,sBAAsB,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,aAA4C,GAAG,CAAC,UAAU,EAC1D,UAAU,GAAG,eAAe;IAE5B,IAAI,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9B,SAAS,CAAC;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACxC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QACrC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;qCAEqC;AACrC,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,UAAU,CAAC,IAAY;QACrB,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACrD,CAAC;IACD,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,SAAS,CAAC,IAAY,EAAE,IAAY;QAClC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,eAAe,CAAC,IAAY;QAC1B,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1D,CAAC;IACD,mBAAmB;QACjB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IACD,yBAAyB,EAAE,IAAI;IAC/B,OAAO,EAAE,IAAI;CACd,CAAC"}
@@ -4,13 +4,13 @@ import { typeKey } from "../ir/nodes.js";
4
4
  export { typeKey };
5
5
  /** The ambient TYPE names of the fetch slice. Under --dynamic their
6
6
  * values live in the embedded engine and map to island handles (jsval).
7
- * Static fetch gives Response, RequestInit, AbortSignal, response
7
+ * Static fetch gives Response, RequestInit, AbortController/AbortSignal, response
8
8
  * Headers, and the readable Web Streams slice native checked-dynamic
9
9
  * handle representations. The Headers constructor itself remains
10
10
  * dynamic-only even though response.headers is native.
11
11
  * Declaration provenance is checked in mapType so user types with the
12
12
  * same names keep their ordinary structural representation. */
13
- export declare const ISLAND_AMBIENT_TYPES: readonly ["Response", "RequestInit", "Event", "EventTarget", "AbortSignal", "Headers", "ReadableStream", "ReadableStreamDefaultReader", "ReadableStreamDefaultController", "ReadableStreamReadResult", "ReadableStreamReadValueResult", "ReadableStreamReadDoneResult"];
13
+ export declare const ISLAND_AMBIENT_TYPES: readonly ["Response", "ResponseInit", "RequestInit", "Event", "EventTarget", "AbortController", "AbortSignal", "Headers", "ReadableStream", "ReadableStreamDefaultReader", "ReadableStreamDefaultController", "ReadableStreamReadResult", "ReadableStreamReadValueResult", "ReadableStreamReadDoneResult"];
14
14
  /** The frontend's record-shape interner. Records are monomorphic structural
15
15
  * shapes: fields sorted by name form the canonical identity, and two types
16
16
  * with the same canonical field list share one shapeId (and later one C
@@ -279,7 +279,7 @@ export declare function unitOnlyUnion(unions: UnionRegistry): IrType;
279
279
  * `.return()`, `.throw()`, the for-of desugar, and mapType's
280
280
  * IteratorResult alias mapping all intern through here, so reads agree.
281
281
  * Null when the combined union would be illegal (a func/set arm beside
282
- * data arms, a map/regex arm — kinds with no narrowing test): such
282
+ * data arms, a map/regex/Date arm — kinds with no narrowing test): such
283
283
  * generators stay unmapped. */
284
284
  export declare function genResultRecord(yieldT: IrType, retT: IrType, shapes: ShapeRegistry, unions: UnionRegistry): (IrType & {
285
285
  kind: "record";
@@ -293,7 +293,7 @@ export declare function genResultRecord(yieldT: IrType, retT: IrType, shapes: Sh
293
293
  export declare function isUnitOnlyTsType(t: ts.Type): boolean;
294
294
  /** IR-level `t | undefined`, canonicalized and fenced exactly like the
295
295
  * ts-union branch of mapType (typeKey-sorted arms, deduplicated; map/
296
- * regex/dyn/void arms unrepresentable; a func arm IS representable — the
296
+ * regex/Date/dyn/void arms unrepresentable; a func arm IS representable — the
297
297
  * result is exactly the nullable-callback shape mapType's union branch
298
298
  * admits, `(() => void) | undefined`) so the interned union is IDENTICAL
299
299
  * to what mapping the checker's own `T | undefined` produces. */
@@ -1,5 +1,5 @@
1
1
  import * as ts from "./ts7/adapter.js";
2
- import { arrayOf, BOOL, bytesOf, canConvertToDyn, CHILD_T, DYN, F64, funcOf, isSupportedIndexValue, isSupportedMapKey, isSupportedMapValue, isSupportedSetElem, isUnitType, JSVAL, mapOf, NULL_T, PROCSTREAM_T, RUNTIME_EMITTER_CLASS, RUNTIME_ERROR_CLASSES, RUNTIME_STREAM_CLASSES, setOf, STRING, SYMBOL_T, typeEquals, typeKey, UNDEFINED_T, VOID } from "../ir/nodes.js";
2
+ import { arrayOf, BOOL, bytesOf, canConvertToDyn, CHILD_T, DATE_T, DYN, F64, funcOf, isSupportedIndexValue, isSupportedMapKey, isSupportedMapValue, isSupportedSetElem, isUnitType, JSVAL, mapOf, NULL_T, PROCSTREAM_T, RUNTIME_EMITTER_CLASS, RUNTIME_ERROR_CLASSES, RUNTIME_STREAM_CLASSES, setOf, STRING, SYMBOL_T, typeEquals, typeKey, UNDEFINED_T, VOID } from "../ir/nodes.js";
3
3
  import { isJsSourceFile, isNodeTypesPath } from "./program.js";
4
4
  import { accessorSlotProp } from "../ir/nodes.js";
5
5
  // typeKey moved to ir/nodes.ts (the backend needs it too, for per-type
@@ -8,7 +8,7 @@ import { accessorSlotProp } from "../ir/nodes.js";
8
8
  export { typeKey };
9
9
  /** The ambient TYPE names of the fetch slice. Under --dynamic their
10
10
  * values live in the embedded engine and map to island handles (jsval).
11
- * Static fetch gives Response, RequestInit, AbortSignal, response
11
+ * Static fetch gives Response, RequestInit, AbortController/AbortSignal, response
12
12
  * Headers, and the readable Web Streams slice native checked-dynamic
13
13
  * handle representations. The Headers constructor itself remains
14
14
  * dynamic-only even though response.headers is native.
@@ -16,9 +16,11 @@ export { typeKey };
16
16
  * same names keep their ordinary structural representation. */
17
17
  export const ISLAND_AMBIENT_TYPES = [
18
18
  "Response",
19
+ "ResponseInit",
19
20
  "RequestInit",
20
21
  "Event",
21
22
  "EventTarget",
23
+ "AbortController",
22
24
  "AbortSignal",
23
25
  "Headers",
24
26
  "ReadableStream",
@@ -330,6 +332,8 @@ export function formatIrType(t, shapes, unions, seen = new Set()) {
330
332
  return "any";
331
333
  case "regex":
332
334
  return "RegExp";
335
+ case "date":
336
+ return "Date";
333
337
  case "url":
334
338
  return "URL";
335
339
  case "searchParams":
@@ -784,7 +788,9 @@ function mapTypeInner(type, ctx) {
784
788
  // declarations intern one immortal closure, and inner closures are
785
789
  // allocated once at their definition's evaluation and flow by
786
790
  // reference, exactly JS's function identity. map/set/regex/url/dyn and
787
- // the other opaque handles stay unsupported.
791
+ // Date (scalar-backed but identity-bearing in JS) and the other opaque
792
+ // handles stay unsupported as array elements; ordinary Date locals,
793
+ // params, fixed record/tuple fields, and promise payloads are supported.
788
794
  if (checker.isArrayType(widened)) {
789
795
  const elemTs = checker.getTypeArguments(widened)[0];
790
796
  if (!elemTs)
@@ -814,6 +820,7 @@ function mapTypeInner(type, ctx) {
814
820
  // JS object identity for RegExp values.
815
821
  if (!elem ||
816
822
  elem.kind === "void" ||
823
+ elem.kind === "date" ||
817
824
  elem.kind === "map" ||
818
825
  elem.kind === "set" ||
819
826
  elem.kind === "url" ||
@@ -1285,6 +1292,12 @@ function mapTypeInner(type, ctx) {
1285
1292
  return null;
1286
1293
  return setOf(elem);
1287
1294
  }
1295
+ // Date: a TimeClip'd epoch-millisecond scalar in the static runtime.
1296
+ // This supports stored/passed values and the read-only getter slice;
1297
+ // identity and mutation stay fenced because the scalar deliberately
1298
+ // carries no object identity.
1299
+ if (isStdlibInterface("Date"))
1300
+ return DATE_T;
1288
1301
  // RegExp: a reference to the lib RegExp interface — provenance, not the
1289
1302
  // name (a user's own `interface RegExp` maps as a record). Regex values
1290
1303
  // are literals interned as immortal statics; the kind is fenced out of
@@ -2152,7 +2165,7 @@ function mapTypeInner(type, ctx) {
2152
2165
  // arms map: `x instanceof RegExp` is their narrowing test
2153
2166
  // (the skip-utility `string | RegExp` shape), and the arm
2154
2167
  // rides the ref machinery like array regex elements.
2155
- a.kind === "map" || a.kind === "set" || a.kind === "dyn" ||
2168
+ a.kind === "map" || a.kind === "set" || a.kind === "date" || a.kind === "dyn" ||
2156
2169
  // Generator arms follow the map/set rule: no narrowing test.
2157
2170
  a.kind === "generator" ||
2158
2171
  // Func arms map beside ANY sibling: `typeof x === "function"`
@@ -2476,7 +2489,7 @@ export function unitOnlyUnion(unions) {
2476
2489
  * `.return()`, `.throw()`, the for-of desugar, and mapType's
2477
2490
  * IteratorResult alias mapping all intern through here, so reads agree.
2478
2491
  * Null when the combined union would be illegal (a func/set arm beside
2479
- * data arms, a map/regex arm — kinds with no narrowing test): such
2492
+ * data arms, a map/regex/Date arm — kinds with no narrowing test): such
2480
2493
  * generators stay unmapped. */
2481
2494
  export function genResultRecord(yieldT, retT, shapes, unions) {
2482
2495
  let valueT;
@@ -2493,7 +2506,8 @@ export function genResultRecord(yieldT, retT, shapes, unions) {
2493
2506
  byKey.set(typeKey(a), a);
2494
2507
  return true;
2495
2508
  }
2496
- if (t.kind === "map" || t.kind === "regex" || t.kind === "jsval" || t.kind === "generator") {
2509
+ if (t.kind === "map" || t.kind === "regex" || t.kind === "date" ||
2510
+ t.kind === "jsval" || t.kind === "generator") {
2497
2511
  return false; // no legal union arm exists for these kinds
2498
2512
  }
2499
2513
  byKey.set(typeKey(t), t);
@@ -2539,7 +2553,7 @@ export function isUnitOnlyTsType(t) {
2539
2553
  }
2540
2554
  /** IR-level `t | undefined`, canonicalized and fenced exactly like the
2541
2555
  * ts-union branch of mapType (typeKey-sorted arms, deduplicated; map/
2542
- * regex/dyn/void arms unrepresentable; a func arm IS representable — the
2556
+ * regex/Date/dyn/void arms unrepresentable; a func arm IS representable — the
2543
2557
  * result is exactly the nullable-callback shape mapType's union branch
2544
2558
  * admits, `(() => void) | undefined`) so the interned union is IDENTICAL
2545
2559
  * to what mapping the checker's own `T | undefined` produces. */
@@ -2548,13 +2562,15 @@ export function withUndefinedArm(t, unions) {
2548
2562
  const def = unions.get(t.unionId);
2549
2563
  if (!def)
2550
2564
  return null;
2565
+ if (def.arms.some((a) => a.kind === "date"))
2566
+ return null;
2551
2567
  if (def.arms.some((a) => a.kind === "undefinedT"))
2552
2568
  return t;
2553
2569
  const arms = [...def.arms, UNDEFINED_T];
2554
2570
  arms.sort((a, b) => (typeKey(a) < typeKey(b) ? -1 : 1));
2555
2571
  return { kind: "union", unionId: unions.intern(arms) };
2556
2572
  }
2557
- if (t.kind === "void" || t.kind === "map" || t.kind === "dyn" ||
2573
+ if (t.kind === "void" || t.kind === "map" || t.kind === "date" || t.kind === "dyn" ||
2558
2574
  // A bare unit field type cannot occur (units live only inside unions),
2559
2575
  // but guard against constructing a single-arm union from one.
2560
2576
  isUnitType(t)) {
@@ -3075,6 +3091,7 @@ function armHasUnionHome(arm, siblingCount) {
3075
3091
  case "map":
3076
3092
  case "set":
3077
3093
  case "regex":
3094
+ case "date":
3078
3095
  case "generator":
3079
3096
  case "dyn":
3080
3097
  return false;