@scriptc/compiler 0.1.4 → 0.1.5
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 +264 -21
- 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 +32 -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 +12 -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-shared.js +64 -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 +6 -4
- 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/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 +7 -6
- package/dist/frontend/lowering/containers/string-and-regexp.js +237 -28
- 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/lower-builtins.d.ts +4 -5
- package/dist/frontend/lowering/lower-builtins.js +18 -10
- 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 +265 -88
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.js +2 -2
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +7 -9
- package/dist/frontend/lowering/lower-containers.js +143 -51
- 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 +128 -10
- 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 +8 -14
- package/dist/frontend/lowering/surfaces.js +37 -27
- 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 +42 -34
- package/dist/ir/ir.js +7 -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 +92 -8
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.d.ts +1 -0
- package/dist/ir/validate.test.js +31 -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 +55 -42
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 },
|
|
@@ -196,11 +196,27 @@ export const LIB_FN_SIGS = {
|
|
|
196
196
|
"os.networkInterfaces": { argTypes: [], result: VOID },
|
|
197
197
|
"math.maxArr": { argTypes: [arrayOf(F64)], result: F64 },
|
|
198
198
|
"math.minArr": { argTypes: [arrayOf(F64)], result: F64 },
|
|
199
|
+
"math.hypotArr": { argTypes: [arrayOf(F64)], result: F64 },
|
|
199
200
|
"math.floor": { argTypes: [F64], result: F64 },
|
|
200
201
|
"math.abs": { argTypes: [F64], result: F64 },
|
|
201
202
|
"math.round": { argTypes: [F64], result: F64 },
|
|
202
203
|
"math.trunc": { argTypes: [F64], result: F64 },
|
|
203
204
|
"math.ceil": { argTypes: [F64], result: F64 },
|
|
205
|
+
"math.sin": { argTypes: [F64], result: F64 },
|
|
206
|
+
"math.cos": { argTypes: [F64], result: F64 },
|
|
207
|
+
"math.tan": { argTypes: [F64], result: F64 },
|
|
208
|
+
"math.asin": { argTypes: [F64], result: F64 },
|
|
209
|
+
"math.acos": { argTypes: [F64], result: F64 },
|
|
210
|
+
"math.atan": { argTypes: [F64], result: F64 },
|
|
211
|
+
"math.cbrt": { argTypes: [F64], result: F64 },
|
|
212
|
+
"math.sign": { argTypes: [F64], result: F64 },
|
|
213
|
+
"math.exp": { argTypes: [F64], result: F64 },
|
|
214
|
+
"math.sqrt": { argTypes: [F64], result: F64 },
|
|
215
|
+
"math.log": { argTypes: [F64], result: F64 },
|
|
216
|
+
"math.log2": { argTypes: [F64], result: F64 },
|
|
217
|
+
"math.log10": { argTypes: [F64], result: F64 },
|
|
218
|
+
"math.atan2": { argTypes: [F64, F64], result: F64 },
|
|
219
|
+
"math.pow": { argTypes: [F64, F64], result: F64 },
|
|
204
220
|
"math.min": { argTypes: [F64, F64], result: F64 },
|
|
205
221
|
"math.max": { argTypes: [F64, F64], result: F64 },
|
|
206
222
|
"math.random": { argTypes: [], result: F64 },
|
|
@@ -383,6 +399,7 @@ export const LIB_FN_SIGS = {
|
|
|
383
399
|
// the callback follows the reusePort BOOL in this additive ABI.
|
|
384
400
|
"net.listenOptsReusePortCb": { argTypes: [NETSERVER_T, F64, STRING, BOOL, BOOL, null], result: VOID },
|
|
385
401
|
"net.serverPort": { argTypes: [NETSERVER_T], result: F64 },
|
|
402
|
+
"net.serverListening": { argTypes: [NETSERVER_T], result: BOOL },
|
|
386
403
|
// net.serverAddress's record result is shape-checked in the libCall case
|
|
387
404
|
// (the dgram.address sentinel pattern).
|
|
388
405
|
"net.serverAddress": { argTypes: [NETSERVER_T], result: VOID },
|
|
@@ -458,19 +475,38 @@ export const LIB_FN_SIGS = {
|
|
|
458
475
|
// union, checked like process.envGet.
|
|
459
476
|
"http.createServer": { argTypes: [null], result: NETSERVER_T },
|
|
460
477
|
"http.createServerEmpty": { argTypes: [], result: NETSERVER_T },
|
|
478
|
+
"http.validateHeaderName": { argTypes: [STRING, STRING], result: VOID },
|
|
479
|
+
"http.validateHeaderValue": { argTypes: [STRING, DYN], result: VOID },
|
|
461
480
|
"http.serverJoinDupHeaders": { argTypes: [NETSERVER_T], result: VOID },
|
|
462
481
|
"http.serverAllowMissingHostHeader": { argTypes: [NETSERVER_T], result: VOID },
|
|
463
482
|
"http.serverTimeoutGet": { argTypes: [NETSERVER_T, F64], result: F64 },
|
|
483
|
+
"http.serverSetTimeout": { argTypes: [NETSERVER_T, F64], result: VOID },
|
|
484
|
+
"http.serverSetTimeoutCb": { argTypes: [NETSERVER_T, F64, null], result: VOID },
|
|
485
|
+
"http.serverOnTimeout": { argTypes: [NETSERVER_T, null, BOOL], result: VOID },
|
|
486
|
+
"http.serverCloseAllConnections": { argTypes: [NETSERVER_T], result: VOID },
|
|
487
|
+
"http.serverCloseIdleConnections": { argTypes: [NETSERVER_T], result: VOID },
|
|
464
488
|
"http.serverTimeoutSet": { argTypes: [NETSERVER_T, F64, F64], result: VOID },
|
|
465
489
|
"http.serverTimeoutOptionSet": { argTypes: [NETSERVER_T, F64, DYN], result: VOID },
|
|
466
490
|
"net.serverOnListening": { argTypes: [NETSERVER_T, { kind: "func", params: [], ret: VOID }, BOOL], result: VOID },
|
|
467
491
|
"http.resStatusGet": { argTypes: [HTTPRES_T], result: F64 },
|
|
468
492
|
"http.resStatusSet": { argTypes: [HTTPRES_T, F64], result: VOID },
|
|
469
|
-
"http.resStatusMsgGet": { argTypes: [HTTPRES_T], result:
|
|
493
|
+
"http.resStatusMsgGet": { argTypes: [HTTPRES_T], result: VOID },
|
|
470
494
|
"http.resStatusMsgSet": { argTypes: [HTTPRES_T, STRING], result: VOID },
|
|
495
|
+
"http.resRequest": { argTypes: [HTTPRES_T], result: HTTPREQ_T },
|
|
496
|
+
"http.resSocket": { argTypes: [HTTPRES_T], result: VOID },
|
|
497
|
+
"http.resWritableFinished": { argTypes: [HTTPRES_T], result: BOOL },
|
|
498
|
+
"http.resSendDateGet": { argTypes: [HTTPRES_T], result: BOOL },
|
|
499
|
+
"http.resSendDateSet": { argTypes: [HTTPRES_T, BOOL], result: VOID },
|
|
500
|
+
"http.resStrictContentLengthGet": { argTypes: [HTTPRES_T], result: BOOL },
|
|
501
|
+
"http.resStrictContentLengthSet": { argTypes: [HTTPRES_T, BOOL], result: VOID },
|
|
502
|
+
"http.resSetTimeout": { argTypes: [HTTPRES_T, F64], result: VOID },
|
|
503
|
+
"http.resSetTimeoutCb": { argTypes: [HTTPRES_T, F64, { kind: "func", params: [], ret: VOID }], result: VOID },
|
|
471
504
|
// resGetHeader answers the interned `string | undefined` union — the
|
|
472
505
|
// reqHeader/envGet sentinel pattern (VOID here, checked specially).
|
|
473
506
|
"http.resGetHeader": { argTypes: [HTTPRES_T, STRING], result: VOID },
|
|
507
|
+
"http.resGetHeaderNames": { argTypes: [HTTPRES_T], result: arrayOf(STRING) },
|
|
508
|
+
"http.resGetRawHeaderNames": { argTypes: [HTTPRES_T], result: arrayOf(STRING) },
|
|
509
|
+
"http.resGetHeaders": { argTypes: [HTTPRES_T], result: DYN },
|
|
474
510
|
"http.resHasHeader": { argTypes: [HTTPRES_T, STRING], result: BOOL },
|
|
475
511
|
"http.resRemoveHeader": { argTypes: [HTTPRES_T, STRING], result: VOID },
|
|
476
512
|
"http.resOnFinish": { argTypes: [HTTPRES_T, { kind: "func", params: [], ret: VOID }], result: VOID },
|
|
@@ -485,6 +521,9 @@ export const LIB_FN_SIGS = {
|
|
|
485
521
|
"http.resSetHeader": { argTypes: [HTTPRES_T, STRING, STRING], result: VOID },
|
|
486
522
|
"http.resWriteHead": { argTypes: [HTTPRES_T, F64], result: VOID },
|
|
487
523
|
"http.resWriteHeadN": { argTypes: [HTTPRES_T, F64, arrayOf(STRING), arrayOf(STRING)], result: VOID },
|
|
524
|
+
"http.resWriteContinue": { argTypes: [HTTPRES_T], result: VOID },
|
|
525
|
+
"http.resWriteProcessing": { argTypes: [HTTPRES_T], result: VOID },
|
|
526
|
+
"http.resWriteEarlyHints": { argTypes: [HTTPRES_T, arrayOf(STRING)], result: VOID },
|
|
488
527
|
"http.resWrite": { argTypes: [HTTPRES_T, STRING], result: VOID },
|
|
489
528
|
"http.resWriteBytes": { argTypes: [HTTPRES_T, BYTES_U8], result: VOID },
|
|
490
529
|
"http.resEnd": { argTypes: [HTTPRES_T], result: VOID },
|
|
@@ -493,6 +532,7 @@ export const LIB_FN_SIGS = {
|
|
|
493
532
|
"http.resWriteDyn": { argTypes: [HTTPRES_T, DYN], result: VOID },
|
|
494
533
|
"http.resEndDyn": { argTypes: [HTTPRES_T, DYN], result: VOID },
|
|
495
534
|
"http.resHeadersSent": { argTypes: [HTTPRES_T], result: BOOL },
|
|
535
|
+
"http.resWritableEnded": { argTypes: [HTTPRES_T], result: BOOL },
|
|
496
536
|
"http.resFlushHeaders": { argTypes: [HTTPRES_T], result: VOID },
|
|
497
537
|
"http.resAddTrailers": { argTypes: [HTTPRES_T, arrayOf(STRING)], result: VOID },
|
|
498
538
|
"http.resCork": { argTypes: [HTTPRES_T], result: VOID },
|
|
@@ -697,6 +737,13 @@ export const LIB_FN_SIGS = {
|
|
|
697
737
|
"https.requestFn": { argTypes: [BOOL, STRING, F64, STRING, STRING, F64, arrayOf(STRING), BOOL, BOOL, null], result: HTTPCLIENTREQ_T },
|
|
698
738
|
"https.requestFnCb": { argTypes: [BOOL, STRING, F64, STRING, STRING, F64, arrayOf(STRING), BOOL, BOOL, null, null], result: HTTPCLIENTREQ_T },
|
|
699
739
|
"http.clientWrite": { argTypes: [HTTPCLIENTREQ_T, STRING], result: VOID },
|
|
740
|
+
"http.clientSetHeader": { argTypes: [HTTPCLIENTREQ_T, STRING, STRING], result: VOID },
|
|
741
|
+
"http.clientGetHeader": { argTypes: [HTTPCLIENTREQ_T, STRING], result: VOID },
|
|
742
|
+
"http.clientHasHeader": { argTypes: [HTTPCLIENTREQ_T, STRING], result: BOOL },
|
|
743
|
+
"http.clientRemoveHeader": { argTypes: [HTTPCLIENTREQ_T, STRING], result: VOID },
|
|
744
|
+
"http.clientGetHeaderNames": { argTypes: [HTTPCLIENTREQ_T], result: arrayOf(STRING) },
|
|
745
|
+
"http.clientGetRawHeaderNames": { argTypes: [HTTPCLIENTREQ_T], result: arrayOf(STRING) },
|
|
746
|
+
"http.clientGetHeaders": { argTypes: [HTTPCLIENTREQ_T], result: DYN },
|
|
700
747
|
"http.clientWriteBytes": { argTypes: [HTTPCLIENTREQ_T, BYTES_U8], result: VOID },
|
|
701
748
|
"http.clientEnd": { argTypes: [HTTPCLIENTREQ_T], result: VOID },
|
|
702
749
|
"http.clientEndStr": { argTypes: [HTTPCLIENTREQ_T, STRING], result: VOID },
|
|
@@ -708,12 +755,34 @@ export const LIB_FN_SIGS = {
|
|
|
708
755
|
"http.clientCork": { argTypes: [HTTPCLIENTREQ_T], result: VOID },
|
|
709
756
|
"http.clientUncork": { argTypes: [HTTPCLIENTREQ_T], result: VOID },
|
|
710
757
|
"http.clientWritableCorked": { argTypes: [HTTPCLIENTREQ_T], result: F64 },
|
|
758
|
+
"http.clientMethod": { argTypes: [HTTPCLIENTREQ_T], result: STRING },
|
|
759
|
+
"http.clientPath": { argTypes: [HTTPCLIENTREQ_T], result: STRING },
|
|
760
|
+
"http.clientHost": { argTypes: [HTTPCLIENTREQ_T], result: STRING },
|
|
761
|
+
"http.clientProtocol": { argTypes: [HTTPCLIENTREQ_T], result: STRING },
|
|
762
|
+
"http.clientHeadersSent": { argTypes: [HTTPCLIENTREQ_T], result: BOOL },
|
|
763
|
+
"http.clientWritableEnded": { argTypes: [HTTPCLIENTREQ_T], result: BOOL },
|
|
764
|
+
"http.clientWritableFinished": { argTypes: [HTTPCLIENTREQ_T], result: BOOL },
|
|
765
|
+
"http.clientSocket": { argTypes: [HTTPCLIENTREQ_T], result: NETSOCKET_T },
|
|
766
|
+
"http.clientReusedSocket": { argTypes: [HTTPCLIENTREQ_T], result: BOOL },
|
|
767
|
+
"http.clientSetNoDelay": { argTypes: [HTTPCLIENTREQ_T, BOOL], result: VOID },
|
|
768
|
+
"http.clientSetSocketKeepAlive": { argTypes: [HTTPCLIENTREQ_T, BOOL, F64], result: VOID },
|
|
769
|
+
"http.clientSetTimeout": { argTypes: [HTTPCLIENTREQ_T, F64], result: VOID },
|
|
770
|
+
"http.clientSetTimeoutCb": { argTypes: [HTTPCLIENTREQ_T, F64, { kind: "func", params: [], ret: VOID }], result: VOID },
|
|
771
|
+
"http.statusCodes": { argTypes: [], result: DYN },
|
|
772
|
+
"http.methods": { argTypes: [], result: arrayOf(STRING) },
|
|
773
|
+
"http.reqSetTimeout": { argTypes: [HTTPREQ_T, F64], result: VOID },
|
|
774
|
+
"http.reqSetTimeoutCb": { argTypes: [HTTPREQ_T, F64, { kind: "func", params: [], ret: VOID }], result: VOID },
|
|
711
775
|
"http.clientDestroy": { argTypes: [HTTPCLIENTREQ_T], result: VOID },
|
|
776
|
+
"http.clientAbort": { argTypes: [HTTPCLIENTREQ_T], result: VOID },
|
|
777
|
+
"http.clientAborted": { argTypes: [HTTPCLIENTREQ_T], result: BOOL },
|
|
712
778
|
"http.clientDestroyed": { argTypes: [HTTPCLIENTREQ_T], result: BOOL },
|
|
713
779
|
"http.clientOnResponse": { argTypes: [HTTPCLIENTREQ_T, null, BOOL], result: VOID },
|
|
780
|
+
"http.clientOnSocket": { argTypes: [HTTPCLIENTREQ_T, null, BOOL], result: VOID },
|
|
781
|
+
"http.clientOnFinish": { argTypes: [HTTPCLIENTREQ_T, { kind: "func", params: [], ret: VOID }, BOOL], result: VOID },
|
|
714
782
|
"http.clientOnError": { argTypes: [HTTPCLIENTREQ_T, null, BOOL], result: VOID },
|
|
715
783
|
"http.clientOnTimeout": { argTypes: [HTTPCLIENTREQ_T, { kind: "func", params: [], ret: VOID }, BOOL], result: VOID },
|
|
716
784
|
"http.clientOnClose": { argTypes: [HTTPCLIENTREQ_T, { kind: "func", params: [], ret: VOID }, BOOL], result: VOID },
|
|
785
|
+
"http.clientOnAbort": { argTypes: [HTTPCLIENTREQ_T, { kind: "func", params: [], ret: VOID }, BOOL], result: VOID },
|
|
717
786
|
"cp.execSync": {
|
|
718
787
|
argTypes: [STRING, arrayOf(STRING), BOOL, STRING, BOOL, STRING, BOOL, arrayOf(STRING), F64, F64, F64],
|
|
719
788
|
result: STRING,
|
|
@@ -1257,6 +1326,7 @@ export const LIB_FN_SIGS = {
|
|
|
1257
1326
|
// form) — checked in the libCall case.
|
|
1258
1327
|
"string.fromCharCode": { argTypes: [null], result: STRING },
|
|
1259
1328
|
"string.lastIndexOf": { argTypes: [STRING, STRING], result: F64 },
|
|
1329
|
+
"string.lastIndexOfFrom": { argTypes: [STRING, STRING, F64], result: F64 },
|
|
1260
1330
|
"string.raw": { argTypes: [arrayOf(STRING), arrayOf(STRING)], result: STRING },
|
|
1261
1331
|
};
|
|
1262
1332
|
/** True for an object type naming a runtime-provided error class. */
|
|
@@ -2663,7 +2733,7 @@ function validateFunction(fn, functions, ffiByName, classes, records, unions, gl
|
|
|
2663
2733
|
? { argTypes: e.args.map(() => elem), result: F64 }
|
|
2664
2734
|
: e.method === "pushSpread" || e.method === "concatSpread" || e.method === "unshiftSpread"
|
|
2665
2735
|
? { argTypes: [e.receiver.type], result: F64 }
|
|
2666
|
-
: e.method === "nextPresent"
|
|
2736
|
+
: e.method === "nextPresent" || e.method === "getNumber"
|
|
2667
2737
|
? { argTypes: [F64], result: F64 }
|
|
2668
2738
|
: e.method === "pop"
|
|
2669
2739
|
? { argTypes: [], result: e.type } // union-checked below
|
|
@@ -2690,6 +2760,9 @@ function validateFunction(fn, functions, ffiByName, classes, records, unions, gl
|
|
|
2690
2760
|
: e.method === "shift"
|
|
2691
2761
|
? { argTypes: [], result: e.type } // union-checked below
|
|
2692
2762
|
: { argTypes: [], result: F64 }; // length
|
|
2763
|
+
if (e.method === "getNumber" && elem.kind !== "f64") {
|
|
2764
|
+
err(`arrIntrinsic getNumber requires f64 elements, got ${elem.kind}`, e.loc);
|
|
2765
|
+
}
|
|
2693
2766
|
if (e.method === "join" &&
|
|
2694
2767
|
elem.kind !== "f64" && elem.kind !== "string" && elem.kind !== "bool" &&
|
|
2695
2768
|
!(elem.kind === "union" &&
|
|
@@ -4186,7 +4259,7 @@ function validateFunction(fn, functions, ffiByName, classes, records, unions, gl
|
|
|
4186
4259
|
}
|
|
4187
4260
|
break;
|
|
4188
4261
|
}
|
|
4189
|
-
if (e.fn === "http.reqStatusMessage") {
|
|
4262
|
+
if (e.fn === "http.reqStatusMessage" || e.fn === "http.resStatusMsgGet") {
|
|
4190
4263
|
// Result is the interned `string | undefined` union (reqHeader's).
|
|
4191
4264
|
const def = e.type.kind === "union" ? unions.get(e.type.unionId) : undefined;
|
|
4192
4265
|
const ok = def &&
|
|
@@ -4194,10 +4267,19 @@ function validateFunction(fn, functions, ffiByName, classes, records, unions, gl
|
|
|
4194
4267
|
def.arms.some((a) => a.kind === "string") &&
|
|
4195
4268
|
def.arms.some((a) => a.kind === "undefinedT");
|
|
4196
4269
|
if (!ok) {
|
|
4197
|
-
err(`libCall
|
|
4270
|
+
err(`libCall ${e.fn} must return the 'string | undefined' union`, e.loc);
|
|
4198
4271
|
}
|
|
4199
4272
|
break;
|
|
4200
4273
|
}
|
|
4274
|
+
if (e.fn === "http.resSocket") {
|
|
4275
|
+
const def = e.type.kind === "union" ? unions.get(e.type.unionId) : undefined;
|
|
4276
|
+
const ok = def && def.arms.length === 2 &&
|
|
4277
|
+
def.arms.some((a) => a.kind === "netSocket") &&
|
|
4278
|
+
def.arms.some((a) => a.kind === "nullT");
|
|
4279
|
+
if (!ok)
|
|
4280
|
+
err(`libCall http.resSocket must return the 'Socket | null' union`, e.loc);
|
|
4281
|
+
break;
|
|
4282
|
+
}
|
|
4201
4283
|
if (e.fn === "http.reqH2Stream") {
|
|
4202
4284
|
const def = e.type.kind === "union" ? unions.get(e.type.unionId) : undefined;
|
|
4203
4285
|
const ok = def && def.arms.length === 2 &&
|
|
@@ -4207,7 +4289,7 @@ function validateFunction(fn, functions, ffiByName, classes, records, unions, gl
|
|
|
4207
4289
|
err(`libCall http.reqH2Stream must return the 'Http2Stream | undefined' union`, e.loc);
|
|
4208
4290
|
break;
|
|
4209
4291
|
}
|
|
4210
|
-
if (e.fn === "http.reqHeader" || e.fn === "http.reqTrailer" || e.fn === "http.resGetHeader") {
|
|
4292
|
+
if (e.fn === "http.reqHeader" || e.fn === "http.reqTrailer" || e.fn === "http.resGetHeader" || e.fn === "http.clientGetHeader") {
|
|
4211
4293
|
// Result is the interned `string | undefined` union (envGet's).
|
|
4212
4294
|
const def = e.type.kind === "union" ? unions.get(e.type.unionId) : undefined;
|
|
4213
4295
|
const ok = def &&
|
|
@@ -4230,13 +4312,15 @@ function validateFunction(fn, functions, ffiByName, classes, records, unions, gl
|
|
|
4230
4312
|
}
|
|
4231
4313
|
if (e.fn === "net.createServerCb" || e.fn === "net.serverOnConnection" ||
|
|
4232
4314
|
e.fn === "net.serverOnSecureConnection" ||
|
|
4315
|
+
e.fn === "http.serverSetTimeoutCb" || e.fn === "http.serverOnTimeout" ||
|
|
4316
|
+
e.fn === "http.clientOnSocket" ||
|
|
4233
4317
|
e.fn === "net.sockOnData" || e.fn === "net.serverOnError" ||
|
|
4234
4318
|
e.fn === "net.sockOnError") {
|
|
4235
4319
|
// The program-dependent listener shapes: a void closure with no
|
|
4236
4320
|
// params, or exactly the one supported parameter per event
|
|
4237
4321
|
// (socket handle / data chunk bytes / error %Error). The
|
|
4238
4322
|
// callback slot is arg 0 for createServerCb, arg 1 otherwise.
|
|
4239
|
-
const cbT = e.args[e.fn === "net.createServerCb" ? 0 : 1]?.type;
|
|
4323
|
+
const cbT = e.args[e.fn === "net.createServerCb" ? 0 : e.fn === "http.serverSetTimeoutCb" ? 2 : 1]?.type;
|
|
4240
4324
|
let ok = cbT?.kind === "func" && cbT.ret.kind === "void" && cbT.params.length <= 1;
|
|
4241
4325
|
if (ok && cbT?.kind === "func" && cbT.params.length === 1) {
|
|
4242
4326
|
const p = cbT.params[0];
|