@scriptc/compiler 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ambient/scriptc-node-fallback.d.ts +75 -11
- package/dist/backend/c/c-emitter.d.ts +5 -1
- package/dist/backend/c/c-emitter.js +22 -9
- package/dist/backend/c/c-emitter.js.map +1 -1
- package/dist/backend/c/exprs.d.ts +2 -2
- package/dist/backend/c/exprs.js +298 -27
- package/dist/backend/c/exprs.js.map +1 -1
- package/dist/backend/c/stmts.js +5 -3
- package/dist/backend/c/stmts.js.map +1 -1
- package/dist/backend/c/types.d.ts +2 -3
- package/dist/backend/c/types.js +8 -1
- package/dist/backend/c/types.js.map +1 -1
- package/dist/backend/c/walkers.js +1 -1
- package/dist/backend/c/walkers.js.map +1 -1
- package/dist/backend/link-plan.d.ts +1 -0
- package/dist/backend/link-plan.js +2 -1
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/llvm/dyn.js +1 -1
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.js +25 -9
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +1 -2
- package/dist/backend/llvm/expr-bytes.js +22 -17
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +1 -0
- package/dist/backend/llvm/expr-containers.js +58 -4
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +6 -2
- package/dist/backend/llvm/expr-primitives.js +22 -7
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +20 -0
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +53 -10
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +4 -3
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +65 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +2 -0
- package/dist/backend/native-toolchain.js +2 -1
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/targets.d.ts +3 -0
- package/dist/backend/targets.js +13 -0
- package/dist/backend/targets.js.map +1 -1
- package/dist/coverage/surface-manifest.js +12 -5
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +2 -0
- package/dist/executable/executable-cache.js +3 -1
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +3 -3
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.d.ts +8 -0
- package/dist/frontend/lowering/array-indexed-mutation.js +176 -0
- package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -0
- package/dist/frontend/lowering/containers/bytes.d.ts +1 -1
- package/dist/frontend/lowering/containers/bytes.js +6 -5
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.d.ts +14 -6
- package/dist/frontend/lowering/containers/string-and-regexp.js +420 -34
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +8 -0
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/indexed-comparison.d.ts +6 -0
- package/dist/frontend/lowering/indexed-comparison.js +30 -0
- package/dist/frontend/lowering/indexed-comparison.js.map +1 -0
- package/dist/frontend/lowering/lower-builtins.d.ts +5 -6
- package/dist/frontend/lowering/lower-builtins.js +24 -16
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +3 -2
- package/dist/frontend/lowering/lower-calls.js +522 -89
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.js +5 -29
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +15 -11
- package/dist/frontend/lowering/lower-containers.js +588 -146
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +12 -0
- package/dist/frontend/lowering/lower-exprs.js +145 -11
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-island.js +17 -6
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +2 -4
- package/dist/frontend/lowering/lower-server.js +288 -32
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +4 -4
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lowerer.js +37 -2
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/optional-arguments.d.ts +9 -1
- package/dist/frontend/lowering/optional-arguments.js +67 -1
- package/dist/frontend/lowering/optional-arguments.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.d.ts +3 -1
- package/dist/frontend/lowering/pairs-snapshot.js +12 -4
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +10 -14
- package/dist/frontend/lowering/surfaces.js +50 -28
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/npm-static-prune.d.ts +6 -0
- package/dist/frontend/npm-static-prune.js +203 -0
- package/dist/frontend/npm-static-prune.js.map +1 -0
- package/dist/frontend/npm-static-prune.test.d.ts +1 -0
- package/dist/frontend/npm-static-prune.test.js +48 -0
- package/dist/frontend/npm-static-prune.test.js.map +1 -0
- package/dist/frontend/npm.js +7 -6
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/program.js +15 -4
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/provenance.js +8 -3
- package/dist/frontend/provenance.js.map +1 -1
- package/dist/frontend/type-mapper.js +16 -5
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +13 -41
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +5 -3
- package/dist/ir/analysis.js +25 -11
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/analysis.test.js +50 -2
- package/dist/ir/analysis.test.js.map +1 -1
- package/dist/ir/constant-tables.d.ts +17 -0
- package/dist/ir/constant-tables.js +99 -0
- package/dist/ir/constant-tables.js.map +1 -0
- package/dist/ir/constant-tables.test.d.ts +1 -0
- package/dist/ir/constant-tables.test.js +78 -0
- package/dist/ir/constant-tables.test.js.map +1 -0
- package/dist/ir/integer-ranges.d.ts +13 -0
- package/dist/ir/integer-ranges.js +122 -0
- package/dist/ir/integer-ranges.js.map +1 -0
- package/dist/ir/integer-ranges.test.d.ts +1 -0
- package/dist/ir/integer-ranges.test.js +63 -0
- package/dist/ir/integer-ranges.test.js.map +1 -0
- package/dist/ir/ir.d.ts +56 -35
- package/dist/ir/ir.js +9 -1
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +6 -0
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/scalar-records.d.ts +8 -0
- package/dist/ir/scalar-records.js +216 -0
- package/dist/ir/scalar-records.js.map +1 -0
- package/dist/ir/scalar-records.test.d.ts +1 -0
- package/dist/ir/scalar-records.test.js +142 -0
- package/dist/ir/scalar-records.test.js.map +1 -0
- package/dist/ir/validate.js +135 -34
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.d.ts +1 -0
- package/dist/ir/validate.test.js +48 -0
- package/dist/ir/validate.test.js.map +1 -0
- package/dist/library/cache-primitives.d.ts +1 -1
- package/dist/library/cache-primitives.js +3 -3
- package/dist/library/cache-primitives.js.map +1 -1
- package/dist/library/fence-eval.js +11 -4
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/library-cache.js +0 -1
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +3 -3
- package/dist/library/library-cache.test.js.map +1 -1
- package/package.json +17 -17
- package/surface-manifest.json +90 -45
package/dist/ir/validate.js
CHANGED
|
@@ -11,8 +11,8 @@ export const STR_INTRINSIC_SIGS = {
|
|
|
11
11
|
charAt: { argTypes: [F64], minArgs: 1, result: STRING },
|
|
12
12
|
indexOf: { argTypes: [STRING, F64], minArgs: 1, result: F64 },
|
|
13
13
|
includes: { argTypes: [STRING, F64], minArgs: 1, result: BOOL },
|
|
14
|
-
startsWith: { argTypes: [STRING], minArgs: 1, result: BOOL },
|
|
15
|
-
endsWith: { argTypes: [STRING], minArgs: 1, result: BOOL },
|
|
14
|
+
startsWith: { argTypes: [STRING, F64], minArgs: 1, result: BOOL },
|
|
15
|
+
endsWith: { argTypes: [STRING, F64], minArgs: 1, result: BOOL },
|
|
16
16
|
slice: { argTypes: [F64, F64], minArgs: 0, result: STRING },
|
|
17
17
|
substring: { argTypes: [F64, F64], minArgs: 1, result: STRING },
|
|
18
18
|
repeat: { argTypes: [F64], minArgs: 1, result: STRING },
|
|
@@ -86,6 +86,7 @@ export const LIB_FN_SIGS = {
|
|
|
86
86
|
"dyn.toString": { argTypes: [DYN, STRING, STRING], result: STRING },
|
|
87
87
|
"dyn.defineProps": { argTypes: [DYN, DYN], result: DYN },
|
|
88
88
|
"dyn.typeof": { argTypes: [DYN], result: STRING },
|
|
89
|
+
"dyn.objectTag": { argTypes: [DYN], result: STRING },
|
|
89
90
|
"module.registryInit": { argTypes: [F64], result: VOID },
|
|
90
91
|
"module.define": { argTypes: [F64, STRING, STRING, STRING, arrayOf(STRING), BOOL], result: VOID },
|
|
91
92
|
"module.enter": { argTypes: [F64], result: VOID },
|
|
@@ -196,11 +197,27 @@ export const LIB_FN_SIGS = {
|
|
|
196
197
|
"os.networkInterfaces": { argTypes: [], result: VOID },
|
|
197
198
|
"math.maxArr": { argTypes: [arrayOf(F64)], result: F64 },
|
|
198
199
|
"math.minArr": { argTypes: [arrayOf(F64)], result: F64 },
|
|
200
|
+
"math.hypotArr": { argTypes: [arrayOf(F64)], result: F64 },
|
|
199
201
|
"math.floor": { argTypes: [F64], result: F64 },
|
|
200
202
|
"math.abs": { argTypes: [F64], result: F64 },
|
|
201
203
|
"math.round": { argTypes: [F64], result: F64 },
|
|
202
204
|
"math.trunc": { argTypes: [F64], result: F64 },
|
|
203
205
|
"math.ceil": { argTypes: [F64], result: F64 },
|
|
206
|
+
"math.sin": { argTypes: [F64], result: F64 },
|
|
207
|
+
"math.cos": { argTypes: [F64], result: F64 },
|
|
208
|
+
"math.tan": { argTypes: [F64], result: F64 },
|
|
209
|
+
"math.asin": { argTypes: [F64], result: F64 },
|
|
210
|
+
"math.acos": { argTypes: [F64], result: F64 },
|
|
211
|
+
"math.atan": { argTypes: [F64], result: F64 },
|
|
212
|
+
"math.cbrt": { argTypes: [F64], result: F64 },
|
|
213
|
+
"math.sign": { argTypes: [F64], result: F64 },
|
|
214
|
+
"math.exp": { argTypes: [F64], result: F64 },
|
|
215
|
+
"math.sqrt": { argTypes: [F64], result: F64 },
|
|
216
|
+
"math.log": { argTypes: [F64], result: F64 },
|
|
217
|
+
"math.log2": { argTypes: [F64], result: F64 },
|
|
218
|
+
"math.log10": { argTypes: [F64], result: F64 },
|
|
219
|
+
"math.atan2": { argTypes: [F64, F64], result: F64 },
|
|
220
|
+
"math.pow": { argTypes: [F64, F64], result: F64 },
|
|
204
221
|
"math.min": { argTypes: [F64, F64], result: F64 },
|
|
205
222
|
"math.max": { argTypes: [F64, F64], result: F64 },
|
|
206
223
|
"math.random": { argTypes: [], result: F64 },
|
|
@@ -383,6 +400,7 @@ export const LIB_FN_SIGS = {
|
|
|
383
400
|
// the callback follows the reusePort BOOL in this additive ABI.
|
|
384
401
|
"net.listenOptsReusePortCb": { argTypes: [NETSERVER_T, F64, STRING, BOOL, BOOL, null], result: VOID },
|
|
385
402
|
"net.serverPort": { argTypes: [NETSERVER_T], result: F64 },
|
|
403
|
+
"net.serverListening": { argTypes: [NETSERVER_T], result: BOOL },
|
|
386
404
|
// net.serverAddress's record result is shape-checked in the libCall case
|
|
387
405
|
// (the dgram.address sentinel pattern).
|
|
388
406
|
"net.serverAddress": { argTypes: [NETSERVER_T], result: VOID },
|
|
@@ -458,19 +476,38 @@ export const LIB_FN_SIGS = {
|
|
|
458
476
|
// union, checked like process.envGet.
|
|
459
477
|
"http.createServer": { argTypes: [null], result: NETSERVER_T },
|
|
460
478
|
"http.createServerEmpty": { argTypes: [], result: NETSERVER_T },
|
|
479
|
+
"http.validateHeaderName": { argTypes: [STRING, STRING], result: VOID },
|
|
480
|
+
"http.validateHeaderValue": { argTypes: [STRING, DYN], result: VOID },
|
|
461
481
|
"http.serverJoinDupHeaders": { argTypes: [NETSERVER_T], result: VOID },
|
|
462
482
|
"http.serverAllowMissingHostHeader": { argTypes: [NETSERVER_T], result: VOID },
|
|
463
483
|
"http.serverTimeoutGet": { argTypes: [NETSERVER_T, F64], result: F64 },
|
|
484
|
+
"http.serverSetTimeout": { argTypes: [NETSERVER_T, F64], result: VOID },
|
|
485
|
+
"http.serverSetTimeoutCb": { argTypes: [NETSERVER_T, F64, null], result: VOID },
|
|
486
|
+
"http.serverOnTimeout": { argTypes: [NETSERVER_T, null, BOOL], result: VOID },
|
|
487
|
+
"http.serverCloseAllConnections": { argTypes: [NETSERVER_T], result: VOID },
|
|
488
|
+
"http.serverCloseIdleConnections": { argTypes: [NETSERVER_T], result: VOID },
|
|
464
489
|
"http.serverTimeoutSet": { argTypes: [NETSERVER_T, F64, F64], result: VOID },
|
|
465
490
|
"http.serverTimeoutOptionSet": { argTypes: [NETSERVER_T, F64, DYN], result: VOID },
|
|
466
491
|
"net.serverOnListening": { argTypes: [NETSERVER_T, { kind: "func", params: [], ret: VOID }, BOOL], result: VOID },
|
|
467
492
|
"http.resStatusGet": { argTypes: [HTTPRES_T], result: F64 },
|
|
468
493
|
"http.resStatusSet": { argTypes: [HTTPRES_T, F64], result: VOID },
|
|
469
|
-
"http.resStatusMsgGet": { argTypes: [HTTPRES_T], result:
|
|
494
|
+
"http.resStatusMsgGet": { argTypes: [HTTPRES_T], result: VOID },
|
|
470
495
|
"http.resStatusMsgSet": { argTypes: [HTTPRES_T, STRING], result: VOID },
|
|
496
|
+
"http.resRequest": { argTypes: [HTTPRES_T], result: HTTPREQ_T },
|
|
497
|
+
"http.resSocket": { argTypes: [HTTPRES_T], result: VOID },
|
|
498
|
+
"http.resWritableFinished": { argTypes: [HTTPRES_T], result: BOOL },
|
|
499
|
+
"http.resSendDateGet": { argTypes: [HTTPRES_T], result: BOOL },
|
|
500
|
+
"http.resSendDateSet": { argTypes: [HTTPRES_T, BOOL], result: VOID },
|
|
501
|
+
"http.resStrictContentLengthGet": { argTypes: [HTTPRES_T], result: BOOL },
|
|
502
|
+
"http.resStrictContentLengthSet": { argTypes: [HTTPRES_T, BOOL], result: VOID },
|
|
503
|
+
"http.resSetTimeout": { argTypes: [HTTPRES_T, F64], result: VOID },
|
|
504
|
+
"http.resSetTimeoutCb": { argTypes: [HTTPRES_T, F64, { kind: "func", params: [], ret: VOID }], result: VOID },
|
|
471
505
|
// resGetHeader answers the interned `string | undefined` union — the
|
|
472
506
|
// reqHeader/envGet sentinel pattern (VOID here, checked specially).
|
|
473
507
|
"http.resGetHeader": { argTypes: [HTTPRES_T, STRING], result: VOID },
|
|
508
|
+
"http.resGetHeaderNames": { argTypes: [HTTPRES_T], result: arrayOf(STRING) },
|
|
509
|
+
"http.resGetRawHeaderNames": { argTypes: [HTTPRES_T], result: arrayOf(STRING) },
|
|
510
|
+
"http.resGetHeaders": { argTypes: [HTTPRES_T], result: DYN },
|
|
474
511
|
"http.resHasHeader": { argTypes: [HTTPRES_T, STRING], result: BOOL },
|
|
475
512
|
"http.resRemoveHeader": { argTypes: [HTTPRES_T, STRING], result: VOID },
|
|
476
513
|
"http.resOnFinish": { argTypes: [HTTPRES_T, { kind: "func", params: [], ret: VOID }], result: VOID },
|
|
@@ -485,6 +522,9 @@ export const LIB_FN_SIGS = {
|
|
|
485
522
|
"http.resSetHeader": { argTypes: [HTTPRES_T, STRING, STRING], result: VOID },
|
|
486
523
|
"http.resWriteHead": { argTypes: [HTTPRES_T, F64], result: VOID },
|
|
487
524
|
"http.resWriteHeadN": { argTypes: [HTTPRES_T, F64, arrayOf(STRING), arrayOf(STRING)], result: VOID },
|
|
525
|
+
"http.resWriteContinue": { argTypes: [HTTPRES_T], result: VOID },
|
|
526
|
+
"http.resWriteProcessing": { argTypes: [HTTPRES_T], result: VOID },
|
|
527
|
+
"http.resWriteEarlyHints": { argTypes: [HTTPRES_T, arrayOf(STRING)], result: VOID },
|
|
488
528
|
"http.resWrite": { argTypes: [HTTPRES_T, STRING], result: VOID },
|
|
489
529
|
"http.resWriteBytes": { argTypes: [HTTPRES_T, BYTES_U8], result: VOID },
|
|
490
530
|
"http.resEnd": { argTypes: [HTTPRES_T], result: VOID },
|
|
@@ -493,6 +533,7 @@ export const LIB_FN_SIGS = {
|
|
|
493
533
|
"http.resWriteDyn": { argTypes: [HTTPRES_T, DYN], result: VOID },
|
|
494
534
|
"http.resEndDyn": { argTypes: [HTTPRES_T, DYN], result: VOID },
|
|
495
535
|
"http.resHeadersSent": { argTypes: [HTTPRES_T], result: BOOL },
|
|
536
|
+
"http.resWritableEnded": { argTypes: [HTTPRES_T], result: BOOL },
|
|
496
537
|
"http.resFlushHeaders": { argTypes: [HTTPRES_T], result: VOID },
|
|
497
538
|
"http.resAddTrailers": { argTypes: [HTTPRES_T, arrayOf(STRING)], result: VOID },
|
|
498
539
|
"http.resCork": { argTypes: [HTTPRES_T], result: VOID },
|
|
@@ -697,6 +738,13 @@ export const LIB_FN_SIGS = {
|
|
|
697
738
|
"https.requestFn": { argTypes: [BOOL, STRING, F64, STRING, STRING, F64, arrayOf(STRING), BOOL, BOOL, null], result: HTTPCLIENTREQ_T },
|
|
698
739
|
"https.requestFnCb": { argTypes: [BOOL, STRING, F64, STRING, STRING, F64, arrayOf(STRING), BOOL, BOOL, null, null], result: HTTPCLIENTREQ_T },
|
|
699
740
|
"http.clientWrite": { argTypes: [HTTPCLIENTREQ_T, STRING], result: VOID },
|
|
741
|
+
"http.clientSetHeader": { argTypes: [HTTPCLIENTREQ_T, STRING, STRING], result: VOID },
|
|
742
|
+
"http.clientGetHeader": { argTypes: [HTTPCLIENTREQ_T, STRING], result: VOID },
|
|
743
|
+
"http.clientHasHeader": { argTypes: [HTTPCLIENTREQ_T, STRING], result: BOOL },
|
|
744
|
+
"http.clientRemoveHeader": { argTypes: [HTTPCLIENTREQ_T, STRING], result: VOID },
|
|
745
|
+
"http.clientGetHeaderNames": { argTypes: [HTTPCLIENTREQ_T], result: arrayOf(STRING) },
|
|
746
|
+
"http.clientGetRawHeaderNames": { argTypes: [HTTPCLIENTREQ_T], result: arrayOf(STRING) },
|
|
747
|
+
"http.clientGetHeaders": { argTypes: [HTTPCLIENTREQ_T], result: DYN },
|
|
700
748
|
"http.clientWriteBytes": { argTypes: [HTTPCLIENTREQ_T, BYTES_U8], result: VOID },
|
|
701
749
|
"http.clientEnd": { argTypes: [HTTPCLIENTREQ_T], result: VOID },
|
|
702
750
|
"http.clientEndStr": { argTypes: [HTTPCLIENTREQ_T, STRING], result: VOID },
|
|
@@ -708,12 +756,34 @@ export const LIB_FN_SIGS = {
|
|
|
708
756
|
"http.clientCork": { argTypes: [HTTPCLIENTREQ_T], result: VOID },
|
|
709
757
|
"http.clientUncork": { argTypes: [HTTPCLIENTREQ_T], result: VOID },
|
|
710
758
|
"http.clientWritableCorked": { argTypes: [HTTPCLIENTREQ_T], result: F64 },
|
|
759
|
+
"http.clientMethod": { argTypes: [HTTPCLIENTREQ_T], result: STRING },
|
|
760
|
+
"http.clientPath": { argTypes: [HTTPCLIENTREQ_T], result: STRING },
|
|
761
|
+
"http.clientHost": { argTypes: [HTTPCLIENTREQ_T], result: STRING },
|
|
762
|
+
"http.clientProtocol": { argTypes: [HTTPCLIENTREQ_T], result: STRING },
|
|
763
|
+
"http.clientHeadersSent": { argTypes: [HTTPCLIENTREQ_T], result: BOOL },
|
|
764
|
+
"http.clientWritableEnded": { argTypes: [HTTPCLIENTREQ_T], result: BOOL },
|
|
765
|
+
"http.clientWritableFinished": { argTypes: [HTTPCLIENTREQ_T], result: BOOL },
|
|
766
|
+
"http.clientSocket": { argTypes: [HTTPCLIENTREQ_T], result: NETSOCKET_T },
|
|
767
|
+
"http.clientReusedSocket": { argTypes: [HTTPCLIENTREQ_T], result: BOOL },
|
|
768
|
+
"http.clientSetNoDelay": { argTypes: [HTTPCLIENTREQ_T, BOOL], result: VOID },
|
|
769
|
+
"http.clientSetSocketKeepAlive": { argTypes: [HTTPCLIENTREQ_T, BOOL, F64], result: VOID },
|
|
770
|
+
"http.clientSetTimeout": { argTypes: [HTTPCLIENTREQ_T, F64], result: VOID },
|
|
771
|
+
"http.clientSetTimeoutCb": { argTypes: [HTTPCLIENTREQ_T, F64, { kind: "func", params: [], ret: VOID }], result: VOID },
|
|
772
|
+
"http.statusCodes": { argTypes: [], result: DYN },
|
|
773
|
+
"http.methods": { argTypes: [], result: arrayOf(STRING) },
|
|
774
|
+
"http.reqSetTimeout": { argTypes: [HTTPREQ_T, F64], result: VOID },
|
|
775
|
+
"http.reqSetTimeoutCb": { argTypes: [HTTPREQ_T, F64, { kind: "func", params: [], ret: VOID }], result: VOID },
|
|
711
776
|
"http.clientDestroy": { argTypes: [HTTPCLIENTREQ_T], result: VOID },
|
|
777
|
+
"http.clientAbort": { argTypes: [HTTPCLIENTREQ_T], result: VOID },
|
|
778
|
+
"http.clientAborted": { argTypes: [HTTPCLIENTREQ_T], result: BOOL },
|
|
712
779
|
"http.clientDestroyed": { argTypes: [HTTPCLIENTREQ_T], result: BOOL },
|
|
713
780
|
"http.clientOnResponse": { argTypes: [HTTPCLIENTREQ_T, null, BOOL], result: VOID },
|
|
781
|
+
"http.clientOnSocket": { argTypes: [HTTPCLIENTREQ_T, null, BOOL], result: VOID },
|
|
782
|
+
"http.clientOnFinish": { argTypes: [HTTPCLIENTREQ_T, { kind: "func", params: [], ret: VOID }, BOOL], result: VOID },
|
|
714
783
|
"http.clientOnError": { argTypes: [HTTPCLIENTREQ_T, null, BOOL], result: VOID },
|
|
715
784
|
"http.clientOnTimeout": { argTypes: [HTTPCLIENTREQ_T, { kind: "func", params: [], ret: VOID }, BOOL], result: VOID },
|
|
716
785
|
"http.clientOnClose": { argTypes: [HTTPCLIENTREQ_T, { kind: "func", params: [], ret: VOID }, BOOL], result: VOID },
|
|
786
|
+
"http.clientOnAbort": { argTypes: [HTTPCLIENTREQ_T, { kind: "func", params: [], ret: VOID }, BOOL], result: VOID },
|
|
717
787
|
"cp.execSync": {
|
|
718
788
|
argTypes: [STRING, arrayOf(STRING), BOOL, STRING, BOOL, STRING, BOOL, arrayOf(STRING), F64, F64, F64],
|
|
719
789
|
result: STRING,
|
|
@@ -1251,12 +1321,14 @@ export const LIB_FN_SIGS = {
|
|
|
1251
1321
|
// Like process.envGet: the result is the module's interned
|
|
1252
1322
|
// `number | undefined` union — checked by arms in the libCall case.
|
|
1253
1323
|
"process.columns": { argTypes: [F64], result: VOID },
|
|
1324
|
+
"process.rows": { argTypes: [F64], result: VOID },
|
|
1254
1325
|
"process.stdinDestroy": { argTypes: [], result: VOID },
|
|
1255
1326
|
"process.stdinSetRawMode": { argTypes: [BOOL], result: VOID },
|
|
1256
1327
|
// Arg 0 is a packed f64[] OR a bytes value (the spread-typed-array
|
|
1257
1328
|
// form) — checked in the libCall case.
|
|
1258
1329
|
"string.fromCharCode": { argTypes: [null], result: STRING },
|
|
1259
1330
|
"string.lastIndexOf": { argTypes: [STRING, STRING], result: F64 },
|
|
1331
|
+
"string.lastIndexOfFrom": { argTypes: [STRING, STRING, F64], result: F64 },
|
|
1260
1332
|
"string.raw": { argTypes: [arrayOf(STRING), arrayOf(STRING)], result: STRING },
|
|
1261
1333
|
};
|
|
1262
1334
|
/** True for an object type naming a runtime-provided error class. */
|
|
@@ -2663,33 +2735,51 @@ function validateFunction(fn, functions, ffiByName, classes, records, unions, gl
|
|
|
2663
2735
|
? { argTypes: e.args.map(() => elem), result: F64 }
|
|
2664
2736
|
: e.method === "pushSpread" || e.method === "concatSpread" || e.method === "unshiftSpread"
|
|
2665
2737
|
? { argTypes: [e.receiver.type], result: F64 }
|
|
2666
|
-
: e.method === "nextPresent"
|
|
2738
|
+
: e.method === "nextPresent" || e.method === "getNumber"
|
|
2667
2739
|
? { argTypes: [F64], result: F64 }
|
|
2668
|
-
: e.method === "
|
|
2669
|
-
? { argTypes: [
|
|
2670
|
-
: e.method === "
|
|
2671
|
-
? { argTypes: [
|
|
2672
|
-
: e.method === "
|
|
2673
|
-
? { argTypes: [elem], result:
|
|
2674
|
-
: e.method === "
|
|
2675
|
-
? { argTypes: [
|
|
2676
|
-
: e.method === "
|
|
2677
|
-
? { argTypes: [
|
|
2678
|
-
: e.method === "
|
|
2679
|
-
? { argTypes: [], result: e.receiver.type }
|
|
2680
|
-
: e.method === "
|
|
2740
|
+
: e.method === "indexEq"
|
|
2741
|
+
? { argTypes: [F64, e.receiver.type, F64], result: BOOL }
|
|
2742
|
+
: e.method === "pop"
|
|
2743
|
+
? { argTypes: [], result: e.type } // union-checked below
|
|
2744
|
+
: e.method === "indexOf"
|
|
2745
|
+
? { argTypes: [elem], result: F64 }
|
|
2746
|
+
: e.method === "includes"
|
|
2747
|
+
? { argTypes: [elem], result: BOOL }
|
|
2748
|
+
: e.method === "join"
|
|
2749
|
+
? { argTypes: [STRING], result: STRING }
|
|
2750
|
+
: e.method === "slice"
|
|
2751
|
+
? { argTypes: [F64, F64], result: e.receiver.type }
|
|
2752
|
+
: e.method === "toReversed"
|
|
2681
2753
|
? { argTypes: [], result: e.receiver.type }
|
|
2682
|
-
: e.method === "
|
|
2683
|
-
? { argTypes: [
|
|
2684
|
-
: e.method === "
|
|
2685
|
-
? { argTypes: [F64,
|
|
2686
|
-
: e.method === "
|
|
2687
|
-
? { argTypes: [F64], result: e.receiver.type }
|
|
2688
|
-
: e.method === "
|
|
2689
|
-
? { argTypes: [F64
|
|
2690
|
-
: e.method === "
|
|
2691
|
-
? { argTypes: [], result: e.type }
|
|
2692
|
-
:
|
|
2754
|
+
: e.method === "reverse"
|
|
2755
|
+
? { argTypes: [], result: e.receiver.type }
|
|
2756
|
+
: e.method === "toSpliced"
|
|
2757
|
+
? { argTypes: [F64, F64, e.receiver.type], result: e.receiver.type }
|
|
2758
|
+
: e.method === "with"
|
|
2759
|
+
? { argTypes: [F64, elem], result: e.receiver.type }
|
|
2760
|
+
: e.method === "withUndefined"
|
|
2761
|
+
? { argTypes: [F64], result: e.receiver.type }
|
|
2762
|
+
: e.method === "splice"
|
|
2763
|
+
? { argTypes: [F64, F64], result: e.receiver.type }
|
|
2764
|
+
: e.method === "spliceInsert"
|
|
2765
|
+
? { argTypes: [F64, F64, e.receiver.type], result: e.receiver.type }
|
|
2766
|
+
: e.method === "flatCopy" || e.method === "flatOne"
|
|
2767
|
+
? { argTypes: [e.type], result: e.type }
|
|
2768
|
+
: e.method === "shift"
|
|
2769
|
+
? { argTypes: [], result: e.type } // union-checked below
|
|
2770
|
+
: { argTypes: [], result: F64 }; // length
|
|
2771
|
+
if (e.method === "getNumber" && elem.kind !== "f64") {
|
|
2772
|
+
err(`arrIntrinsic getNumber requires f64 elements, got ${elem.kind}`, e.loc);
|
|
2773
|
+
}
|
|
2774
|
+
if (e.method === "indexEq" && elem.kind !== "f64" && elem.kind !== "bool" && elem.kind !== "string") {
|
|
2775
|
+
err(`arrIntrinsic indexEq requires primitive elements, got ${elem.kind}`, e.loc);
|
|
2776
|
+
}
|
|
2777
|
+
if (e.method === "flatCopy" && !typeEquals(e.type, e.receiver.type)) {
|
|
2778
|
+
err("arrIntrinsic flatCopy result must match its receiver", e.loc);
|
|
2779
|
+
}
|
|
2780
|
+
if (e.method === "flatOne" && (elem.kind !== "array" || !typeEquals(e.type, elem))) {
|
|
2781
|
+
err("arrIntrinsic flatOne result must match the nested array type", e.loc);
|
|
2782
|
+
}
|
|
2693
2783
|
if (e.method === "join" &&
|
|
2694
2784
|
elem.kind !== "f64" && elem.kind !== "string" && elem.kind !== "bool" &&
|
|
2695
2785
|
!(elem.kind === "union" &&
|
|
@@ -3942,7 +4032,7 @@ function validateFunction(fn, functions, ffiByName, classes, records, unions, gl
|
|
|
3942
4032
|
}
|
|
3943
4033
|
break;
|
|
3944
4034
|
}
|
|
3945
|
-
if (e.fn === "process.columns") {
|
|
4035
|
+
if (e.fn === "process.columns" || e.fn === "process.rows") {
|
|
3946
4036
|
// Result is the module's interned `number | undefined` union.
|
|
3947
4037
|
const def = e.type.kind === "union" ? unions.get(e.type.unionId) : undefined;
|
|
3948
4038
|
const ok = def &&
|
|
@@ -3950,7 +4040,7 @@ function validateFunction(fn, functions, ffiByName, classes, records, unions, gl
|
|
|
3950
4040
|
def.arms[0].kind === "f64" &&
|
|
3951
4041
|
def.arms[1].kind === "undefinedT";
|
|
3952
4042
|
if (!ok) {
|
|
3953
|
-
err(`libCall
|
|
4043
|
+
err(`libCall ${e.fn} must return the 'number | undefined' union`, e.loc);
|
|
3954
4044
|
}
|
|
3955
4045
|
break;
|
|
3956
4046
|
}
|
|
@@ -4186,7 +4276,7 @@ function validateFunction(fn, functions, ffiByName, classes, records, unions, gl
|
|
|
4186
4276
|
}
|
|
4187
4277
|
break;
|
|
4188
4278
|
}
|
|
4189
|
-
if (e.fn === "http.reqStatusMessage") {
|
|
4279
|
+
if (e.fn === "http.reqStatusMessage" || e.fn === "http.resStatusMsgGet") {
|
|
4190
4280
|
// Result is the interned `string | undefined` union (reqHeader's).
|
|
4191
4281
|
const def = e.type.kind === "union" ? unions.get(e.type.unionId) : undefined;
|
|
4192
4282
|
const ok = def &&
|
|
@@ -4194,10 +4284,19 @@ function validateFunction(fn, functions, ffiByName, classes, records, unions, gl
|
|
|
4194
4284
|
def.arms.some((a) => a.kind === "string") &&
|
|
4195
4285
|
def.arms.some((a) => a.kind === "undefinedT");
|
|
4196
4286
|
if (!ok) {
|
|
4197
|
-
err(`libCall
|
|
4287
|
+
err(`libCall ${e.fn} must return the 'string | undefined' union`, e.loc);
|
|
4198
4288
|
}
|
|
4199
4289
|
break;
|
|
4200
4290
|
}
|
|
4291
|
+
if (e.fn === "http.resSocket") {
|
|
4292
|
+
const def = e.type.kind === "union" ? unions.get(e.type.unionId) : undefined;
|
|
4293
|
+
const ok = def && def.arms.length === 2 &&
|
|
4294
|
+
def.arms.some((a) => a.kind === "netSocket") &&
|
|
4295
|
+
def.arms.some((a) => a.kind === "nullT");
|
|
4296
|
+
if (!ok)
|
|
4297
|
+
err(`libCall http.resSocket must return the 'Socket | null' union`, e.loc);
|
|
4298
|
+
break;
|
|
4299
|
+
}
|
|
4201
4300
|
if (e.fn === "http.reqH2Stream") {
|
|
4202
4301
|
const def = e.type.kind === "union" ? unions.get(e.type.unionId) : undefined;
|
|
4203
4302
|
const ok = def && def.arms.length === 2 &&
|
|
@@ -4207,7 +4306,7 @@ function validateFunction(fn, functions, ffiByName, classes, records, unions, gl
|
|
|
4207
4306
|
err(`libCall http.reqH2Stream must return the 'Http2Stream | undefined' union`, e.loc);
|
|
4208
4307
|
break;
|
|
4209
4308
|
}
|
|
4210
|
-
if (e.fn === "http.reqHeader" || e.fn === "http.reqTrailer" || e.fn === "http.resGetHeader") {
|
|
4309
|
+
if (e.fn === "http.reqHeader" || e.fn === "http.reqTrailer" || e.fn === "http.resGetHeader" || e.fn === "http.clientGetHeader") {
|
|
4211
4310
|
// Result is the interned `string | undefined` union (envGet's).
|
|
4212
4311
|
const def = e.type.kind === "union" ? unions.get(e.type.unionId) : undefined;
|
|
4213
4312
|
const ok = def &&
|
|
@@ -4230,13 +4329,15 @@ function validateFunction(fn, functions, ffiByName, classes, records, unions, gl
|
|
|
4230
4329
|
}
|
|
4231
4330
|
if (e.fn === "net.createServerCb" || e.fn === "net.serverOnConnection" ||
|
|
4232
4331
|
e.fn === "net.serverOnSecureConnection" ||
|
|
4332
|
+
e.fn === "http.serverSetTimeoutCb" || e.fn === "http.serverOnTimeout" ||
|
|
4333
|
+
e.fn === "http.clientOnSocket" ||
|
|
4233
4334
|
e.fn === "net.sockOnData" || e.fn === "net.serverOnError" ||
|
|
4234
4335
|
e.fn === "net.sockOnError") {
|
|
4235
4336
|
// The program-dependent listener shapes: a void closure with no
|
|
4236
4337
|
// params, or exactly the one supported parameter per event
|
|
4237
4338
|
// (socket handle / data chunk bytes / error %Error). The
|
|
4238
4339
|
// callback slot is arg 0 for createServerCb, arg 1 otherwise.
|
|
4239
|
-
const cbT = e.args[e.fn === "net.createServerCb" ? 0 : 1]?.type;
|
|
4340
|
+
const cbT = e.args[e.fn === "net.createServerCb" ? 0 : e.fn === "http.serverSetTimeoutCb" ? 2 : 1]?.type;
|
|
4240
4341
|
let ok = cbT?.kind === "func" && cbT.ret.kind === "void" && cbT.params.length <= 1;
|
|
4241
4342
|
if (ok && cbT?.kind === "func" && cbT.params.length === 1) {
|
|
4242
4343
|
const p = cbT.params[0];
|