@scriptc/compiler 0.1.3 → 0.1.4

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 (147) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +200 -51
  2. package/dist/backend/c/async.d.ts +25 -0
  3. package/dist/backend/c/async.js +167 -0
  4. package/dist/backend/c/async.js.map +1 -1
  5. package/dist/backend/c/c-emitter.d.ts +10 -0
  6. package/dist/backend/c/c-emitter.js +14 -2
  7. package/dist/backend/c/c-emitter.js.map +1 -1
  8. package/dist/backend/c/exprs.js +293 -51
  9. package/dist/backend/c/exprs.js.map +1 -1
  10. package/dist/backend/c/types.js +2 -0
  11. package/dist/backend/c/types.js.map +1 -1
  12. package/dist/backend/link-plan.d.ts +2 -1
  13. package/dist/backend/link-plan.js +2 -1
  14. package/dist/backend/link-plan.js.map +1 -1
  15. package/dist/backend/llvm/emitter.js +20 -6
  16. package/dist/backend/llvm/emitter.js.map +1 -1
  17. package/dist/backend/llvm/expr-bytes.d.ts +1 -1
  18. package/dist/backend/llvm/expr-bytes.js +8 -8
  19. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  20. package/dist/backend/llvm/expr-callbacks.d.ts +9 -0
  21. package/dist/backend/llvm/expr-callbacks.js +125 -0
  22. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  23. package/dist/backend/llvm/expr-context.d.ts +14 -2
  24. package/dist/backend/llvm/expr-dispatch.js +1 -0
  25. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  26. package/dist/backend/llvm/expr-primitives.d.ts +1 -1
  27. package/dist/backend/llvm/expr-primitives.js +30 -9
  28. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  29. package/dist/backend/llvm/expr-primitives.test.d.ts +1 -0
  30. package/dist/backend/llvm/expr-primitives.test.js +38 -0
  31. package/dist/backend/llvm/expr-primitives.test.js.map +1 -0
  32. package/dist/backend/llvm/expr-stream-callbacks.d.ts +3 -0
  33. package/dist/backend/llvm/expr-stream-callbacks.js +69 -0
  34. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  35. package/dist/backend/llvm/lib-filesystem.js +68 -10
  36. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  37. package/dist/backend/llvm/lib-network.js +18 -2
  38. package/dist/backend/llvm/lib-network.js.map +1 -1
  39. package/dist/backend/llvm/lib-process.js +156 -6
  40. package/dist/backend/llvm/lib-process.js.map +1 -1
  41. package/dist/backend/llvm/lib-shared.js +36 -0
  42. package/dist/backend/llvm/lib-shared.js.map +1 -1
  43. package/dist/backend/llvm/lib-stream.js +23 -0
  44. package/dist/backend/llvm/lib-stream.js.map +1 -1
  45. package/dist/backend/native-toolchain.d.ts +3 -0
  46. package/dist/backend/native-toolchain.js +3 -1
  47. package/dist/backend/native-toolchain.js.map +1 -1
  48. package/dist/backend/runtime-pack.test.js +28 -10
  49. package/dist/backend/runtime-pack.test.js.map +1 -1
  50. package/dist/backend/targets.d.ts +4 -0
  51. package/dist/backend/targets.js +13 -0
  52. package/dist/backend/targets.js.map +1 -1
  53. package/dist/backend/targets.test.js +8 -1
  54. package/dist/backend/targets.test.js.map +1 -1
  55. package/dist/coverage/surface-manifest.js +8 -0
  56. package/dist/coverage/surface-manifest.js.map +1 -1
  57. package/dist/diagnostics/diagnostic.js +1 -1
  58. package/dist/diagnostics/diagnostic.js.map +1 -1
  59. package/dist/executable/executable-cache.d.ts +2 -0
  60. package/dist/executable/executable-cache.js +3 -0
  61. package/dist/executable/executable-cache.js.map +1 -1
  62. package/dist/frontend/fork-target.d.ts +17 -0
  63. package/dist/frontend/fork-target.js +256 -0
  64. package/dist/frontend/fork-target.js.map +1 -0
  65. package/dist/frontend/lowering/abstract-equality.d.ts +6 -0
  66. package/dist/frontend/lowering/abstract-equality.js +250 -0
  67. package/dist/frontend/lowering/abstract-equality.js.map +1 -0
  68. package/dist/frontend/lowering/lower-assert.js +71 -2
  69. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  70. package/dist/frontend/lowering/lower-builtins.d.ts +50 -23
  71. package/dist/frontend/lowering/lower-builtins.js +939 -106
  72. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  73. package/dist/frontend/lowering/lower-calls.d.ts +29 -21
  74. package/dist/frontend/lowering/lower-calls.js +573 -121
  75. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  76. package/dist/frontend/lowering/lower-classes.js +39 -8
  77. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  78. package/dist/frontend/lowering/lower-containers.js +150 -0
  79. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  80. package/dist/frontend/lowering/lower-event-emitter.js +212 -21
  81. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  82. package/dist/frontend/lowering/lower-exprs.js +135 -83
  83. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  84. package/dist/frontend/lowering/lower-inspect.d.ts +4 -0
  85. package/dist/frontend/lowering/lower-inspect.js +1 -1
  86. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  87. package/dist/frontend/lowering/lower-island.d.ts +6 -3
  88. package/dist/frontend/lowering/lower-island.js +165 -6
  89. package/dist/frontend/lowering/lower-island.js.map +1 -1
  90. package/dist/frontend/lowering/lower-modules.d.ts +6 -0
  91. package/dist/frontend/lowering/lower-modules.js +184 -38
  92. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  93. package/dist/frontend/lowering/lower-namespaces.js +7 -0
  94. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  95. package/dist/frontend/lowering/lower-server.d.ts +1 -1
  96. package/dist/frontend/lowering/lower-server.js +130 -27
  97. package/dist/frontend/lowering/lower-server.js.map +1 -1
  98. package/dist/frontend/lowering/lower-stmts.js +118 -15
  99. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  100. package/dist/frontend/lowering/lower-stream.d.ts +3 -0
  101. package/dist/frontend/lowering/lower-stream.js +7 -0
  102. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  103. package/dist/frontend/lowering/lowerer.d.ts +86 -9
  104. package/dist/frontend/lowering/lowerer.js +412 -72
  105. package/dist/frontend/lowering/lowerer.js.map +1 -1
  106. package/dist/frontend/lowering/surfaces.d.ts +26 -0
  107. package/dist/frontend/lowering/surfaces.js +140 -77
  108. package/dist/frontend/lowering/surfaces.js.map +1 -1
  109. package/dist/frontend/npm-static-declarations.d.ts +4 -0
  110. package/dist/frontend/npm-static-declarations.js +56 -0
  111. package/dist/frontend/npm-static-declarations.js.map +1 -1
  112. package/dist/frontend/npm-static-declarations.test.js +23 -2
  113. package/dist/frontend/npm-static-declarations.test.js.map +1 -1
  114. package/dist/frontend/npm-static.js +6 -5
  115. package/dist/frontend/npm-static.js.map +1 -1
  116. package/dist/frontend/npm.d.ts +15 -3
  117. package/dist/frontend/npm.js +80 -8
  118. package/dist/frontend/npm.js.map +1 -1
  119. package/dist/frontend/npm.test.js +76 -9
  120. package/dist/frontend/npm.test.js.map +1 -1
  121. package/dist/frontend/program.js +92 -10
  122. package/dist/frontend/program.js.map +1 -1
  123. package/dist/frontend/resolve.d.ts +6 -0
  124. package/dist/frontend/resolve.js +7 -4
  125. package/dist/frontend/resolve.js.map +1 -1
  126. package/dist/frontend/type-mapper.d.ts +5 -0
  127. package/dist/frontend/type-mapper.js +64 -24
  128. package/dist/frontend/type-mapper.js.map +1 -1
  129. package/dist/index.d.ts +5 -0
  130. package/dist/index.js +24 -3
  131. package/dist/index.js.map +1 -1
  132. package/dist/ir/ir.d.ts +93 -47
  133. package/dist/ir/ir.js +63 -4
  134. package/dist/ir/ir.js.map +1 -1
  135. package/dist/ir/ir.test.js +14 -1
  136. package/dist/ir/ir.test.js.map +1 -1
  137. package/dist/ir/serialize.d.ts +1 -1
  138. package/dist/ir/serialize.js +1 -1
  139. package/dist/ir/serialize.js.map +1 -1
  140. package/dist/ir/validate.js +165 -13
  141. package/dist/ir/validate.js.map +1 -1
  142. package/dist/library/int-infer.test.js +4 -4
  143. package/dist/library/int-infer.test.js.map +1 -1
  144. package/dist/library/library-cache.test.js +5 -5
  145. package/dist/library/library-cache.test.js.map +1 -1
  146. package/package.json +17 -17
  147. package/surface-manifest.json +132 -38
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "compilerVersion": "0.1.3",
3
+ "compilerVersion": "0.1.4",
4
4
  "coverage": [
5
5
  "Entries are projected mechanically from the compiler's own decision tables: the diagnostics registry, the unsupported-syntax dispatch tables, the stdlib and node-builtin lowering tables, and the supported-builtin-module list. Nothing is hand-maintained; the manifest regenerates byte-identically from the source tree at this version.",
6
6
  "Absence from this manifest means 'not projected', never 'unsupported'. Surfaces lowered through dedicated code paths rather than tables are not yet projected: console, JSON, Promise/async and the timer surface, the net/http/tls/https/dgram/dns/assert/test/stream/readline module member surfaces, template literals, the regex slice, global functions (parseInt, parseFloat, isNaN, isFinite), and the process surface outside its ambient slice.",
@@ -88,7 +88,7 @@
88
88
  "name": "loose equality (== and !=)",
89
89
  "status": "unsupported",
90
90
  "code": "SC1040",
91
- "note": "use === / !== ('x == null' / 'x != null' — the null-or-undefined test — is supported; other loose comparisons need dynamic coercion semantics)"
91
+ "note": "primitive and primitive-union coercions plus the x == null / x != null idiom compile statically; object-to-primitive comparisons can execute valueOf/toString — convert the object explicitly first"
92
92
  },
93
93
  {
94
94
  "id": "diagnostic.sc1042",
@@ -329,7 +329,7 @@
329
329
  "name": "assert.deepEqual",
330
330
  "status": "unsupported",
331
331
  "code": "SC2020",
332
- "note": "loose == equality has no lowering — the strict forms compare with Object.is/structural equality like Node's assert/strict module, where equal IS strictEqual"
332
+ "note": "legacy deep equality has no lowering yet — deepStrictEqual and notDeepStrictEqual compare structures with Node's modern semantics"
333
333
  },
334
334
  {
335
335
  "id": "node-builtin.assert.doesNotReject",
@@ -347,14 +347,6 @@
347
347
  "code": "SC2020",
348
348
  "note": "call the function directly — an unexpected throw already fails the test"
349
349
  },
350
- {
351
- "id": "node-builtin.assert.equal",
352
- "kind": "node-builtin",
353
- "name": "assert.equal",
354
- "status": "unsupported",
355
- "code": "SC2020",
356
- "note": "loose == equality has no lowering — the strict forms compare with Object.is/structural equality like Node's assert/strict module, where equal IS strictEqual"
357
- },
358
350
  {
359
351
  "id": "node-builtin.assert.ifError",
360
352
  "kind": "node-builtin",
@@ -369,15 +361,7 @@
369
361
  "name": "assert.notDeepEqual",
370
362
  "status": "unsupported",
371
363
  "code": "SC2020",
372
- "note": "loose == equality has no lowering — the strict forms compare with Object.is/structural equality like Node's assert/strict module, where equal IS strictEqual"
373
- },
374
- {
375
- "id": "node-builtin.assert.notEqual",
376
- "kind": "node-builtin",
377
- "name": "assert.notEqual",
378
- "status": "unsupported",
379
- "code": "SC2020",
380
- "note": "loose == equality has no lowering — the strict forms compare with Object.is/structural equality like Node's assert/strict module, where equal IS strictEqual"
364
+ "note": "legacy deep equality has no lowering yet — deepStrictEqual and notDeepStrictEqual compare structures with Node's modern semantics"
381
365
  },
382
366
  {
383
367
  "id": "node-builtin.assert.rejects",
@@ -461,7 +445,7 @@
461
445
  "name": "child_process.execFile",
462
446
  "status": "unsupported",
463
447
  "code": "SC2020",
464
- "note": "the callback form has no lowering — promisify it: const execFileAsync = promisify(execFile) (from node:util), or use execFileSync"
448
+ "note": "the callback forms execFile(file, callback), execFile(file, args, callback), and execFile(file, args, { encoding: 'utf8', maxBuffer: N }, callback) lower; maxBuffer is not enforced by the growing native capture; other options and reached no-callback calls remain fenced, while util.promisify(execFile) retains its wider options slice"
465
449
  },
466
450
  {
467
451
  "id": "node-builtin.child_process.execFileSync",
@@ -475,6 +459,12 @@
475
459
  "name": "child_process.execSync",
476
460
  "status": "static"
477
461
  },
462
+ {
463
+ "id": "node-builtin.child_process.fork",
464
+ "kind": "node-builtin",
465
+ "name": "child_process.fork",
466
+ "status": "static"
467
+ },
478
468
  {
479
469
  "id": "node-builtin.child_process.spawn",
480
470
  "kind": "node-builtin",
@@ -921,6 +911,30 @@
921
911
  "name": "fs.existsSync",
922
912
  "status": "static"
923
913
  },
914
+ {
915
+ "id": "node-builtin.fs.fchmodSync",
916
+ "kind": "node-builtin",
917
+ "name": "fs.fchmodSync",
918
+ "status": "static"
919
+ },
920
+ {
921
+ "id": "node-builtin.fs.fstatSync",
922
+ "kind": "node-builtin",
923
+ "name": "fs.fstatSync",
924
+ "status": "static"
925
+ },
926
+ {
927
+ "id": "node-builtin.fs.fsyncSync",
928
+ "kind": "node-builtin",
929
+ "name": "fs.fsyncSync",
930
+ "status": "static"
931
+ },
932
+ {
933
+ "id": "node-builtin.fs.linkSync",
934
+ "kind": "node-builtin",
935
+ "name": "fs.linkSync",
936
+ "status": "static"
937
+ },
924
938
  {
925
939
  "id": "node-builtin.fs.lstatSync",
926
940
  "kind": "node-builtin",
@@ -958,6 +972,12 @@
958
972
  "name": "fs/promises.chmod",
959
973
  "status": "static"
960
974
  },
975
+ {
976
+ "id": "node-builtin.fs.promises.lstat",
977
+ "kind": "node-builtin",
978
+ "name": "fs/promises.lstat",
979
+ "status": "static"
980
+ },
961
981
  {
962
982
  "id": "node-builtin.fs.promises.mkdir",
963
983
  "kind": "node-builtin",
@@ -982,6 +1002,12 @@
982
1002
  "name": "fs/promises.readdir",
983
1003
  "status": "static"
984
1004
  },
1005
+ {
1006
+ "id": "node-builtin.fs.promises.realpath",
1007
+ "kind": "node-builtin",
1008
+ "name": "fs/promises.realpath",
1009
+ "status": "static"
1010
+ },
985
1011
  {
986
1012
  "id": "node-builtin.fs.promises.rename",
987
1013
  "kind": "node-builtin",
@@ -1140,7 +1166,7 @@
1140
1166
  "name": "module.createRequire",
1141
1167
  "status": "unsupported",
1142
1168
  "code": "SC2020",
1143
- "note": "the lowered shape is a const binding over createRequire(import.meta.url) (or __filename) whose require calls take STATIC string literals — builtins, relative .json documents, and installed npm packages (under --dynamic) resolve at build time; dynamic specifiers cannot exist in a compiled binary's fixed module graph"
1169
+ "note": "the lowered shape is a const binding over createRequire(import.meta.url) (or __filename) whose require calls take STATIC string literals — builtins, project modules (including #imports), relative .json documents, --npm-static packages, and installed npm packages under --dynamic resolve at build time; dynamic specifiers cannot exist in a compiled binary's fixed module graph"
1144
1170
  },
1145
1171
  {
1146
1172
  "id": "node-builtin.module.isBuiltin",
@@ -1148,7 +1174,7 @@
1148
1174
  "name": "module.isBuiltin",
1149
1175
  "status": "unsupported",
1150
1176
  "code": "SC2020",
1151
- "note": "builtinModules.includes(name) answers the same question over the baked list (strip a node: prefix first; the prefix-only builtins appear with it, as node:test)"
1177
+ "note": "the lowered call checks a string against the baked Node v24 list, including bare/node: aliases and prefix-only builtins"
1152
1178
  },
1153
1179
  {
1154
1180
  "id": "node-builtin.module.syncBuiltinESMExports",
@@ -1156,7 +1182,7 @@
1156
1182
  "name": "module.syncBuiltinESMExports",
1157
1183
  "status": "unsupported",
1158
1184
  "code": "SC2020",
1159
- "note": "a compiled program has no live builtin ESM namespace bindings to synchronize — nothing a compiled surface can mutate makes the call observable; remove it"
1185
+ "note": "the direct zero-argument call is a no-op because compiled builtin exports are immutable and cannot become stale"
1160
1186
  },
1161
1187
  {
1162
1188
  "id": "node-builtin.net",
@@ -1542,6 +1568,13 @@
1542
1568
  "status": "static",
1543
1569
  "note": "process.exit and the process._exiting flag read are one surface"
1544
1570
  },
1571
+ {
1572
+ "id": "node-builtin.process.exitCode",
1573
+ "kind": "node-builtin",
1574
+ "name": "process.exitCode",
1575
+ "status": "static",
1576
+ "note": "numeric writes in statement position set the implicit exit status; process.exit() reads it"
1577
+ },
1545
1578
  {
1546
1579
  "id": "node-builtin.process.getgid",
1547
1580
  "kind": "node-builtin",
@@ -1822,7 +1855,7 @@
1822
1855
  "name": "util.promisify",
1823
1856
  "status": "unsupported",
1824
1857
  "code": "SC2020",
1825
- "note": "the one lowered shape is a const binding over child_process.execFile: const execFileAsync = promisify(execFile), then call execFileAsync directly"
1858
+ "note": "the lowered shapes are const bindings over child_process.execFile and fs.readFile; call the bound function directly"
1826
1859
  },
1827
1860
  {
1828
1861
  "id": "node-builtin.util.types",
@@ -1865,7 +1898,7 @@
1865
1898
  "name": "zlib.brotliCompressSync",
1866
1899
  "status": "unsupported",
1867
1900
  "code": "SC2020",
1868
- "note": "deflateSync and inflateSync are the lowered zlib surface"
1901
+ "note": "the default-options deflate/inflate, raw, gzip/gunzip, and unzip sync/callback forms plus crc32 are the lowered zlib surface"
1869
1902
  },
1870
1903
  {
1871
1904
  "id": "node-builtin.zlib.brotliDecompressSync",
@@ -1873,7 +1906,31 @@
1873
1906
  "name": "zlib.brotliDecompressSync",
1874
1907
  "status": "unsupported",
1875
1908
  "code": "SC2020",
1876
- "note": "deflateSync and inflateSync are the lowered zlib surface"
1909
+ "note": "the default-options deflate/inflate, raw, gzip/gunzip, and unzip sync/callback forms plus crc32 are the lowered zlib surface"
1910
+ },
1911
+ {
1912
+ "id": "node-builtin.zlib.crc32",
1913
+ "kind": "node-builtin",
1914
+ "name": "zlib.crc32",
1915
+ "status": "static"
1916
+ },
1917
+ {
1918
+ "id": "node-builtin.zlib.deflate",
1919
+ "kind": "node-builtin",
1920
+ "name": "zlib.deflate",
1921
+ "status": "static"
1922
+ },
1923
+ {
1924
+ "id": "node-builtin.zlib.deflateRaw",
1925
+ "kind": "node-builtin",
1926
+ "name": "zlib.deflateRaw",
1927
+ "status": "static"
1928
+ },
1929
+ {
1930
+ "id": "node-builtin.zlib.deflateRawSync",
1931
+ "kind": "node-builtin",
1932
+ "name": "zlib.deflateRawSync",
1933
+ "status": "static"
1877
1934
  },
1878
1935
  {
1879
1936
  "id": "node-builtin.zlib.deflateSync",
@@ -1881,21 +1938,47 @@
1881
1938
  "name": "zlib.deflateSync",
1882
1939
  "status": "static"
1883
1940
  },
1941
+ {
1942
+ "id": "node-builtin.zlib.gunzip",
1943
+ "kind": "node-builtin",
1944
+ "name": "zlib.gunzip",
1945
+ "status": "static"
1946
+ },
1884
1947
  {
1885
1948
  "id": "node-builtin.zlib.gunzipSync",
1886
1949
  "kind": "node-builtin",
1887
1950
  "name": "zlib.gunzipSync",
1888
- "status": "unsupported",
1889
- "code": "SC2020",
1890
- "note": "deflateSync and inflateSync are the lowered zlib surface"
1951
+ "status": "static"
1952
+ },
1953
+ {
1954
+ "id": "node-builtin.zlib.gzip",
1955
+ "kind": "node-builtin",
1956
+ "name": "zlib.gzip",
1957
+ "status": "static"
1891
1958
  },
1892
1959
  {
1893
1960
  "id": "node-builtin.zlib.gzipSync",
1894
1961
  "kind": "node-builtin",
1895
1962
  "name": "zlib.gzipSync",
1896
- "status": "unsupported",
1897
- "code": "SC2020",
1898
- "note": "deflateSync and inflateSync are the lowered zlib surface"
1963
+ "status": "static"
1964
+ },
1965
+ {
1966
+ "id": "node-builtin.zlib.inflate",
1967
+ "kind": "node-builtin",
1968
+ "name": "zlib.inflate",
1969
+ "status": "static"
1970
+ },
1971
+ {
1972
+ "id": "node-builtin.zlib.inflateRaw",
1973
+ "kind": "node-builtin",
1974
+ "name": "zlib.inflateRaw",
1975
+ "status": "static"
1976
+ },
1977
+ {
1978
+ "id": "node-builtin.zlib.inflateRawSync",
1979
+ "kind": "node-builtin",
1980
+ "name": "zlib.inflateRawSync",
1981
+ "status": "static"
1899
1982
  },
1900
1983
  {
1901
1984
  "id": "node-builtin.zlib.inflateSync",
@@ -1903,13 +1986,17 @@
1903
1986
  "name": "zlib.inflateSync",
1904
1987
  "status": "static"
1905
1988
  },
1989
+ {
1990
+ "id": "node-builtin.zlib.unzip",
1991
+ "kind": "node-builtin",
1992
+ "name": "zlib.unzip",
1993
+ "status": "static"
1994
+ },
1906
1995
  {
1907
1996
  "id": "node-builtin.zlib.unzipSync",
1908
1997
  "kind": "node-builtin",
1909
1998
  "name": "zlib.unzipSync",
1910
- "status": "unsupported",
1911
- "code": "SC2020",
1912
- "note": "deflateSync and inflateSync are the lowered zlib surface"
1999
+ "status": "static"
1913
2000
  },
1914
2001
  {
1915
2002
  "id": "stdlib.abort-controller.abort",
@@ -2296,6 +2383,13 @@
2296
2383
  "status": "static",
2297
2384
  "note": "the live clock"
2298
2385
  },
2386
+ {
2387
+ "id": "stdlib.date.parse",
2388
+ "kind": "stdlib",
2389
+ "name": "Date.parse",
2390
+ "status": "static",
2391
+ "note": "one date string, using the bounded parser shared with new Date(dateString).getTime()"
2392
+ },
2299
2393
  {
2300
2394
  "id": "stdlib.date.toISOString",
2301
2395
  "kind": "stdlib",
@@ -3725,8 +3819,8 @@
3725
3819
  "id": "syntax.spread-arguments",
3726
3820
  "kind": "syntax",
3727
3821
  "name": "spread arguments",
3728
- "status": "unsupported",
3729
- "code": "SC1090"
3822
+ "status": "static",
3823
+ "note": "non-empty fixed tuples flatten into fixed signatures with evaluate-once ordering; arrays, Sets, and statically represented class iterables spread into typed rest parameters"
3730
3824
  },
3731
3825
  {
3732
3826
  "id": "syntax.typeof-expressions",