@scriptc/compiler 0.1.1 → 0.1.3
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 +104 -31
- package/ambient/scriptc.d.ts +2 -1
- package/dist/backend/build-cache.js.map +1 -1
- package/dist/backend/c/async.d.ts +5 -0
- package/dist/backend/c/async.js +81 -2
- package/dist/backend/c/async.js.map +1 -1
- package/dist/backend/c/c-emitter.d.ts +25 -10
- package/dist/backend/c/c-emitter.js +74 -22
- package/dist/backend/c/c-emitter.js.map +1 -1
- package/dist/backend/c/exprs.d.ts +8 -1
- package/dist/backend/c/exprs.js +371 -18
- package/dist/backend/c/exprs.js.map +1 -1
- package/dist/backend/c/island.js.map +1 -1
- package/dist/backend/c/may-throw.js.map +1 -1
- package/dist/backend/c/shapes.js +15 -13
- package/dist/backend/c/shapes.js.map +1 -1
- package/dist/backend/c/stmts.d.ts +3 -5
- package/dist/backend/c/stmts.js +58 -17
- package/dist/backend/c/stmts.js.map +1 -1
- package/dist/backend/c/types.d.ts +4 -0
- package/dist/backend/c/types.js +18 -1
- package/dist/backend/c/types.js.map +1 -1
- package/dist/backend/c/types.test.js +8 -1
- package/dist/backend/c/types.test.js.map +1 -1
- package/dist/backend/c/walkers.js +63 -16
- package/dist/backend/c/walkers.js.map +1 -1
- package/dist/backend/external-c.js.map +1 -1
- package/dist/backend/json-literal.d.ts +7 -0
- package/dist/backend/json-literal.js +17 -0
- package/dist/backend/json-literal.js.map +1 -0
- package/dist/backend/json-literal.test.d.ts +1 -0
- package/dist/backend/json-literal.test.js +17 -0
- package/dist/backend/json-literal.test.js.map +1 -0
- package/dist/backend/link-plan.d.ts +1 -1
- package/dist/backend/link-plan.js +5 -1
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/llvm/blocks.js.map +1 -1
- package/dist/backend/llvm/classes.js +8 -7
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +4 -0
- package/dist/backend/llvm/common.js +6 -0
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/common.test.d.ts +1 -0
- package/dist/backend/llvm/common.test.js +9 -0
- package/dist/backend/llvm/common.test.js.map +1 -0
- package/dist/backend/llvm/dyn.d.ts +4 -0
- package/dist/backend/llvm/dyn.js +80 -16
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.js +132 -25
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +85 -3
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +5 -0
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +15 -3
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-island.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +8 -0
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +3 -3
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +222 -10
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +3 -0
- package/dist/backend/llvm/expr-stream-callbacks.js +53 -0
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +24 -0
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +50 -5
- package/dist/backend/llvm/lib-process.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/llvm/lib-stream.js +6 -3
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/shapes.js +10 -8
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/split.js.map +1 -1
- package/dist/backend/llvm/unsupported.js.map +1 -1
- package/dist/backend/llvm/walkers.js +7 -5
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +2 -0
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info.d.ts +2 -1
- package/dist/backend/native-link-info.js +4 -0
- package/dist/backend/native-link-info.js.map +1 -1
- package/dist/backend/native-link-info.test.js +24 -1
- package/dist/backend/native-link-info.test.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +8 -6
- package/dist/backend/native-toolchain.js +28 -13
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +36 -1
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +1 -0
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/targets.d.ts +5 -0
- package/dist/backend/targets.js +9 -0
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +6 -1
- package/dist/backend/targets.test.js.map +1 -1
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/compat/fetch-profile.js +4 -2
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +13 -0
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +6 -5
- package/dist/diagnostics/diagnostic.js +10 -9
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/render.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +1 -0
- package/dist/executable/executable-cache.js +1 -0
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +1 -0
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/ffi/ffi-manifest.js.map +1 -1
- package/dist/frontend/cjs-lexer.js.map +1 -1
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/input-tracker.d.ts +10 -0
- package/dist/frontend/input-tracker.js +26 -3
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +8 -1
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/lowering/array-values.d.ts +4 -0
- package/dist/frontend/lowering/array-values.js +18 -2
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/callback-arg.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.d.ts +31 -0
- package/dist/frontend/lowering/containers/bytes.js +1105 -0
- package/dist/frontend/lowering/containers/bytes.js.map +1 -0
- package/dist/frontend/lowering/containers/string-and-regexp.d.ts +17 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js +345 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -0
- package/dist/frontend/lowering/expressions/evaluation-safety.d.ts +13 -0
- package/dist/frontend/lowering/expressions/evaluation-safety.js +76 -0
- package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -0
- package/dist/frontend/lowering/expressions/object-literals.d.ts +44 -0
- package/dist/frontend/lowering/expressions/object-literals.js +1815 -0
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -0
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +31 -0
- package/dist/frontend/lowering/expressions/optional-chains.js +382 -0
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -0
- package/dist/frontend/lowering/expressions/try-lower-expression.d.ts +7 -0
- package/dist/frontend/lowering/expressions/try-lower-expression.js +26 -0
- package/dist/frontend/lowering/expressions/try-lower-expression.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.js +7 -2
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +16 -10
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.d.ts +7 -0
- package/dist/frontend/lowering/lower-async-iteration.js +657 -0
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -0
- package/dist/frontend/lowering/lower-builtins.d.ts +40 -21
- package/dist/frontend/lowering/lower-builtins.js +611 -115
- package/dist/frontend/lowering/lower-builtins.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +21 -10
- package/dist/frontend/lowering/lower-calls.js +516 -75
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +7 -13
- package/dist/frontend/lowering/lower-classes.js +128 -35
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-containers.d.ts +1 -47
- package/dist/frontend/lowering/lower-containers.js +147 -1475
- package/dist/frontend/lowering/lower-containers.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.js +51 -5
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +0 -78
- package/dist/frontend/lowering/lower-exprs.js +503 -2353
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +18 -3
- package/dist/frontend/lowering/lower-generators.js +145 -9
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +10 -3
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +6 -0
- package/dist/frontend/lowering/lower-island.js +37 -5
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +60 -15
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-node-module.d.ts +18 -0
- package/dist/frontend/lowering/lower-node-module.js +302 -0
- package/dist/frontend/lowering/lower-node-module.js.map +1 -0
- package/dist/frontend/lowering/lower-server.js +1 -1
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +10 -28
- package/dist/frontend/lowering/lower-stmts.js +542 -259
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +4 -4
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +41 -38
- package/dist/frontend/lowering/lowerer.js +148 -62
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/optional-arguments.d.ts +9 -0
- package/dist/frontend/lowering/optional-arguments.js +57 -0
- package/dist/frontend/lowering/optional-arguments.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +5 -3
- package/dist/frontend/lowering/surfaces.js +33 -13
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/npm-static-declarations.d.ts +35 -0
- package/dist/frontend/npm-static-declarations.js +519 -0
- package/dist/frontend/npm-static-declarations.js.map +1 -0
- package/dist/frontend/npm-static-declarations.test.d.ts +1 -0
- package/dist/frontend/npm-static-declarations.test.js +132 -0
- package/dist/frontend/npm-static-declarations.test.js.map +1 -0
- package/dist/frontend/npm-static.d.ts +2 -0
- package/dist/frontend/npm-static.js +26 -10
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.d.ts +60 -0
- package/dist/frontend/npm.js +38 -4
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/npm.test.d.ts +1 -0
- package/dist/frontend/npm.test.js +50 -0
- package/dist/frontend/npm.test.js.map +1 -0
- package/dist/frontend/program.d.ts +3 -2
- package/dist/frontend/program.js +513 -70
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/resolve.d.ts +26 -3
- package/dist/frontend/resolve.js +166 -29
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/resolve.test.js +24 -1
- package/dist/frontend/resolve.test.js.map +1 -1
- package/dist/frontend/runtime-resolve.d.ts +22 -0
- package/dist/frontend/runtime-resolve.js +101 -0
- package/dist/frontend/runtime-resolve.js.map +1 -0
- package/dist/frontend/runtime-resolve.test.d.ts +1 -0
- package/dist/frontend/runtime-resolve.test.js +18 -0
- package/dist/frontend/runtime-resolve.test.js.map +1 -0
- package/dist/frontend/ts7/adapter.js +12 -13
- package/dist/frontend/ts7/adapter.js.map +1 -1
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/census-check.js +3 -3
- package/dist/frontend/ts7/census-check.js.map +1 -1
- package/dist/frontend/ts7/checker.d.ts +3 -0
- package/dist/frontend/ts7/checker.js +12 -3
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/enums.js.map +1 -1
- package/dist/frontend/ts7/program-adapter.js +42 -3
- package/dist/frontend/ts7/program-adapter.js.map +1 -1
- package/dist/frontend/type-mapper.js +171 -16
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.js +11 -5
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +1 -0
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/ir.d.ts +125 -52
- package/dist/ir/ir.js +136 -7
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/serialize.d.ts +1 -1
- package/dist/ir/serialize.js +1 -1
- package/dist/ir/validate.js +120 -63
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/cache-primitives.js.map +1 -1
- package/dist/library/cache-reset.test.js.map +1 -1
- package/dist/library/compiler-self-identity.js.map +1 -1
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js +4 -4
- package/dist/library/int-infer.test.js.map +1 -1
- package/dist/library/library-cache.d.ts +1 -0
- package/dist/library/library-cache.js +1 -0
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +18 -5
- package/dist/library/library-cache.test.js.map +1 -1
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/sidecar-validate.js.map +1 -1
- package/dist/library/sidecar.js.map +1 -1
- package/dist/startup-cache.js.map +1 -1
- package/dist/wasi-paths.js.map +1 -1
- package/package.json +18 -18
- package/surface-manifest.json +91 -20
|
@@ -282,6 +282,17 @@ declare var process: {
|
|
|
282
282
|
emitWarning(warning: string | Error, ...args: any[]): void;
|
|
283
283
|
};
|
|
284
284
|
|
|
285
|
+
/* Node's process module default export is the global process object. These
|
|
286
|
+
* declaration aliases let the ESM spelling typecheck against the same
|
|
287
|
+
* deliberately narrow fallback surface when @types/node is absent. */
|
|
288
|
+
declare module "process" {
|
|
289
|
+
export = process;
|
|
290
|
+
}
|
|
291
|
+
declare module "node:process" {
|
|
292
|
+
import process = require("process");
|
|
293
|
+
export = process;
|
|
294
|
+
}
|
|
295
|
+
|
|
285
296
|
/* ── globals a real CLI's sources reference (all @types/node or dyn-lib
|
|
286
297
|
* territory; the fallback declares the slice so projects PREFLIGHT and
|
|
287
298
|
* every reached use lands on the SC2020 fence — or a real lowering where
|
|
@@ -296,6 +307,20 @@ declare var process: {
|
|
|
296
307
|
declare var __dirname: string;
|
|
297
308
|
declare var __filename: string;
|
|
298
309
|
|
|
310
|
+
interface ScriptcModule {
|
|
311
|
+
children: ScriptcModule[];
|
|
312
|
+
exports: any;
|
|
313
|
+
filename: string;
|
|
314
|
+
id: string;
|
|
315
|
+
isPreloading: boolean;
|
|
316
|
+
loaded: boolean;
|
|
317
|
+
parent: ScriptcModule | null | undefined;
|
|
318
|
+
path: string;
|
|
319
|
+
paths: string[];
|
|
320
|
+
require(id: string): any;
|
|
321
|
+
}
|
|
322
|
+
declare var module: ScriptcModule;
|
|
323
|
+
|
|
299
324
|
/* `global` IS globalThis (Node's alias), and `declare var process` above
|
|
300
325
|
* puts process on `typeof globalThis` — so `globalThis.process` and
|
|
301
326
|
* `global.process` read the same object as the bare name. */
|
|
@@ -303,29 +328,36 @@ declare var global: typeof globalThis;
|
|
|
303
328
|
|
|
304
329
|
/* The `require` VALUE's non-call surface. require() CALLS are module
|
|
305
330
|
* edges (the checker models them as imports); the object's own members
|
|
306
|
-
* are declared here so harness idioms typecheck.
|
|
307
|
-
*
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
331
|
+
* are declared here so harness idioms typecheck. The main/cache values and
|
|
332
|
+
* the CommonJS module graph lower to native process-lifetime handles. */
|
|
333
|
+
interface ScriptcRequireResolveOptions {
|
|
334
|
+
paths?: string[];
|
|
335
|
+
}
|
|
336
|
+
interface ScriptcRequireResolve {
|
|
337
|
+
(id: string, options?: ScriptcRequireResolveOptions): string;
|
|
338
|
+
paths(id: string): string[] | null;
|
|
339
|
+
}
|
|
340
|
+
interface ScriptcRequire {
|
|
311
341
|
/* The call signature types NON-IMPORT-SHAPED require expressions (the
|
|
312
342
|
* checker models import-shaped requires as module aliases regardless,
|
|
313
343
|
* exactly like under @types/node's NodeRequire). `any`, like
|
|
314
344
|
* @types/node: the value's home is the module system, not the static
|
|
315
345
|
* value model — reached uses fence per site. */
|
|
316
346
|
(id: string): any;
|
|
317
|
-
main:
|
|
318
|
-
resolve
|
|
319
|
-
cache: { [id: string]:
|
|
320
|
-
}
|
|
347
|
+
main: ScriptcModule | undefined;
|
|
348
|
+
resolve: ScriptcRequireResolve;
|
|
349
|
+
cache: { [id: string]: ScriptcModule | undefined };
|
|
350
|
+
}
|
|
351
|
+
declare var require: ScriptcRequire;
|
|
321
352
|
|
|
322
353
|
/* setImmediate/clearImmediate — Node's macrotask pair (fires after I/O
|
|
323
354
|
* events of the current loop turn, before timers due later). The handle
|
|
324
355
|
* follows the Timeout pattern: loop-liveness bookkeeping. */
|
|
325
|
-
interface Immediate {
|
|
356
|
+
interface Immediate extends Disposable {
|
|
326
357
|
ref(): Immediate;
|
|
327
358
|
unref(): Immediate;
|
|
328
359
|
hasRef(): boolean;
|
|
360
|
+
[Symbol.dispose](): void;
|
|
329
361
|
}
|
|
330
362
|
declare function setImmediate(callback: () => void): Immediate;
|
|
331
363
|
/* The trailing-argument form — Node passes the extras to the callback. */
|
|
@@ -442,6 +474,12 @@ interface Buffer<TArrayBuffer extends ArrayBufferLike = ArrayBufferLike> extends
|
|
|
442
474
|
writeUIntLE(value: number, offset: number, byteLength: number): number;
|
|
443
475
|
writeIntBE(value: number, offset: number, byteLength: number): number;
|
|
444
476
|
writeIntLE(value: number, offset: number, byteLength: number): number;
|
|
477
|
+
writeBigInt64BE(value: bigint, offset?: number): number;
|
|
478
|
+
writeBigInt64LE(value: bigint, offset?: number): number;
|
|
479
|
+
writeBigUInt64BE(value: bigint, offset?: number): number;
|
|
480
|
+
writeBigUInt64LE(value: bigint, offset?: number): number;
|
|
481
|
+
writeBigUint64BE(value: bigint, offset?: number): number;
|
|
482
|
+
writeBigUint64LE(value: bigint, offset?: number): number;
|
|
445
483
|
readUInt8(offset?: number): number;
|
|
446
484
|
readUInt16BE(offset?: number): number;
|
|
447
485
|
readUInt16LE(offset?: number): number;
|
|
@@ -460,6 +498,12 @@ interface Buffer<TArrayBuffer extends ArrayBufferLike = ArrayBufferLike> extends
|
|
|
460
498
|
readUIntLE(offset: number, byteLength: number): number;
|
|
461
499
|
readIntBE(offset: number, byteLength: number): number;
|
|
462
500
|
readIntLE(offset: number, byteLength: number): number;
|
|
501
|
+
readBigInt64BE(offset?: number): bigint;
|
|
502
|
+
readBigInt64LE(offset?: number): bigint;
|
|
503
|
+
readBigUInt64BE(offset?: number): bigint;
|
|
504
|
+
readBigUInt64LE(offset?: number): bigint;
|
|
505
|
+
readBigUint64BE(offset?: number): bigint;
|
|
506
|
+
readBigUint64LE(offset?: number): bigint;
|
|
463
507
|
}
|
|
464
508
|
interface BufferConstructor {
|
|
465
509
|
from(data: string, encoding?: BufferEncoding): Buffer;
|
|
@@ -642,6 +686,8 @@ interface ReadableStream<T = unknown> {
|
|
|
642
686
|
readonly locked: boolean;
|
|
643
687
|
cancel(reason?: unknown): Promise<void>;
|
|
644
688
|
getReader(): ReadableStreamDefaultReader<T>;
|
|
689
|
+
[Symbol.asyncIterator](options?: { preventCancel?: boolean }): AsyncIterableIterator<T>;
|
|
690
|
+
values(options?: { preventCancel?: boolean }): AsyncIterableIterator<T>;
|
|
645
691
|
}
|
|
646
692
|
declare var ReadableStream: {
|
|
647
693
|
new <T = unknown>(source?: UnderlyingSource<T>): ReadableStream<T>;
|
|
@@ -776,12 +822,13 @@ declare module "timers" {
|
|
|
776
822
|
/* node:timers/promises — the promisified pair the Node test harness leans
|
|
777
823
|
* on (`await setTimeout(ms)` as a sleep). setTimeout's delay-only form and
|
|
778
824
|
* setImmediate's bare form lower (a void promise the shared timer heap
|
|
779
|
-
* settles);
|
|
780
|
-
*
|
|
825
|
+
* settles); setInterval(delay, value) lowers to a typed async iterator.
|
|
826
|
+
* Resolve values on the one-shot pair and AbortSignal options remain
|
|
827
|
+
* declared surface that fences per site. */
|
|
781
828
|
declare module "node:timers/promises" {
|
|
782
829
|
export function setTimeout(delay?: number): Promise<void>;
|
|
783
830
|
export function setImmediate(): Promise<void>;
|
|
784
|
-
export function setInterval(delay?: number, value?:
|
|
831
|
+
export function setInterval<T = unknown>(delay?: number, value?: T, options?: unknown): AsyncGenerator<T, void, undefined>;
|
|
785
832
|
export const scheduler: {
|
|
786
833
|
wait(delay?: number): Promise<void>;
|
|
787
834
|
yield(): Promise<void>;
|
|
@@ -912,7 +959,7 @@ declare var performance: import("node:perf_hooks").Performance;
|
|
|
912
959
|
* name the builtin, like in Node (the builtin wins over the npm package
|
|
913
960
|
* named "module" for the bare specifier there too). */
|
|
914
961
|
declare module "node:module" {
|
|
915
|
-
export function createRequire(filename: string | URL):
|
|
962
|
+
export function createRequire(filename: string | URL): ScriptcRequire;
|
|
916
963
|
export const builtinModules: string[];
|
|
917
964
|
export function isBuiltin(moduleName: string): boolean;
|
|
918
965
|
export function syncBuiltinESMExports(): void;
|
|
@@ -1117,7 +1164,7 @@ declare module "fs/promises" {
|
|
|
1117
1164
|
bytesWritten: number;
|
|
1118
1165
|
buffer: T;
|
|
1119
1166
|
}
|
|
1120
|
-
export interface FileHandle {
|
|
1167
|
+
export interface FileHandle extends AsyncDisposable {
|
|
1121
1168
|
readonly fd: number;
|
|
1122
1169
|
close(): Promise<void>;
|
|
1123
1170
|
read<T extends Uint8Array>(
|
|
@@ -1138,6 +1185,7 @@ declare module "fs/promises" {
|
|
|
1138
1185
|
writeFile(data: string | Uint8Array, encoding?: "utf8" | "utf-8" | null): Promise<void>;
|
|
1139
1186
|
appendFile(data: string | Uint8Array, encoding?: "utf8" | "utf-8" | null): Promise<void>;
|
|
1140
1187
|
stat(): Promise<import("node:fs").Stats>;
|
|
1188
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
1141
1189
|
}
|
|
1142
1190
|
export function open(path: string, flags?: string, mode?: number): Promise<FileHandle>;
|
|
1143
1191
|
export function readFile(path: string, encoding: "utf8" | "utf-8"): Promise<string>;
|
|
@@ -1341,23 +1389,31 @@ declare module "node:url" {
|
|
|
1341
1389
|
export * from "url";
|
|
1342
1390
|
}
|
|
1343
1391
|
|
|
1344
|
-
/* node:crypto:
|
|
1345
|
-
* the composed randomBytes(n).toString("hex" | "base64") still lowers as
|
|
1346
|
-
* one fused string-producing operation (the Buffer never materializes
|
|
1347
|
-
* there); every other use gets an ordinary Buffer value. */
|
|
1392
|
+
/* node:crypto: the static hashing/MAC/random/PBKDF2 utility slice. */
|
|
1348
1393
|
declare module "crypto" {
|
|
1349
1394
|
export function randomUUID(): string;
|
|
1350
1395
|
export function randomBytes(size: number): Buffer;
|
|
1351
|
-
/* The lowered Hash surface is exactly the COMPOSED chain
|
|
1352
|
-
* createHash("sha256" | "sha1").update(data).digest("hex" | "base64")
|
|
1353
|
-
* — fused into one call, the Hash handle never materializes (holding
|
|
1354
|
-
* one fences). sha1 exists for the RFC 6455 Sec-WebSocket-Accept
|
|
1355
|
-
* hash. */
|
|
1356
1396
|
export interface Hash {
|
|
1357
|
-
update(data: string | Uint8Array): Hash;
|
|
1397
|
+
update(data: string | Uint8Array, inputEncoding?: "utf8" | "utf-8" | "hex" | "base64"): Hash;
|
|
1398
|
+
digest(): Buffer;
|
|
1399
|
+
digest(encoding: "hex" | "base64"): string;
|
|
1400
|
+
copy(): Hash;
|
|
1401
|
+
}
|
|
1402
|
+
export interface Hmac {
|
|
1403
|
+
update(data: string | Uint8Array, inputEncoding?: "utf8" | "utf-8" | "hex" | "base64"): Hmac;
|
|
1404
|
+
digest(): Buffer;
|
|
1358
1405
|
digest(encoding: "hex" | "base64"): string;
|
|
1359
1406
|
}
|
|
1360
1407
|
export function createHash(algorithm: string): Hash;
|
|
1408
|
+
export function createHmac(algorithm: string, key: string | Uint8Array): Hmac;
|
|
1409
|
+
export function hash(algorithm: string, data: string | Uint8Array, outputEncoding?: "hex" | "base64"): string;
|
|
1410
|
+
export function timingSafeEqual(a: Uint8Array, b: Uint8Array): boolean;
|
|
1411
|
+
export function randomFillSync<T extends Uint8Array>(buffer: T, offset?: number, size?: number): T;
|
|
1412
|
+
export function randomInt(max: number): number;
|
|
1413
|
+
export function randomInt(min: number, max: number): number;
|
|
1414
|
+
export function pbkdf2Sync(password: string | Uint8Array, salt: string | Uint8Array, iterations: number, keylen: number, digest: string): Buffer;
|
|
1415
|
+
export function pbkdf2(password: string | Uint8Array, salt: string | Uint8Array, iterations: number, keylen: number, digest: string, callback: (error: Error | null, derivedKey: Buffer) => void): void;
|
|
1416
|
+
export function randomBytes(size: number, callback: (error: Error | null, buffer: Buffer) => void): void;
|
|
1361
1417
|
/* The lowered X509Certificate surface is the data-record slice:
|
|
1362
1418
|
* fingerprint (the SHA-1 of the DER, uppercase colon-separated) and
|
|
1363
1419
|
* the validFrom/validTo validity window (Node's ASN1_TIME_print
|
|
@@ -1489,7 +1545,8 @@ declare module "child_process" {
|
|
|
1489
1545
|
): SpawnSyncReturns;
|
|
1490
1546
|
|
|
1491
1547
|
/* The asynchronous slice: spawn with stdio "ignore"/"inherit"/fd/"pipe"
|
|
1492
|
-
* tuples (piped
|
|
1548
|
+
* tuples (piped stdin is writable through child.stdin; piped stdout/stderr
|
|
1549
|
+
* deliver through child.stdout/stderr) and
|
|
1493
1550
|
* the two terminal events. "exit" fires once with the exit code, or
|
|
1494
1551
|
* null when the child died to a signal; "error" fires ONLY when the
|
|
1495
1552
|
* child could not be spawned at all (Node's split: a spawn failure
|
|
@@ -1501,7 +1558,18 @@ declare module "child_process" {
|
|
|
1501
1558
|
* quiescence (SEMANTICS.md documents the divergence). An "error"
|
|
1502
1559
|
* event with no registered listener prints the error and exits 1,
|
|
1503
1560
|
* exactly the unhandled-'error' EventEmitter behavior. */
|
|
1504
|
-
export interface
|
|
1561
|
+
export interface ChildStdin {
|
|
1562
|
+
readonly writable: boolean;
|
|
1563
|
+
write(chunk: string | Uint8Array): boolean;
|
|
1564
|
+
end(): void;
|
|
1565
|
+
destroy(): void;
|
|
1566
|
+
on(event: "drain" | "finish", listener: () => void): void;
|
|
1567
|
+
on(event: "error", listener: (err: Error) => void): void;
|
|
1568
|
+
once(event: "drain" | "finish", listener: () => void): void;
|
|
1569
|
+
once(event: "error", listener: (err: Error) => void): void;
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
export interface ChildProcess extends Disposable {
|
|
1505
1573
|
/* The exit listener may also take Node's second parameter — the
|
|
1506
1574
|
* terminating signal's name, null for a normal exit. */
|
|
1507
1575
|
on(event: "exit", listener: (code: number | null, signal: string | null) => void): void;
|
|
@@ -1521,8 +1589,10 @@ declare module "child_process" {
|
|
|
1521
1589
|
readonly killed: boolean;
|
|
1522
1590
|
kill(signal?: string | number): boolean;
|
|
1523
1591
|
unref(): void;
|
|
1524
|
-
|
|
1525
|
-
|
|
1592
|
+
[Symbol.dispose](): void;
|
|
1593
|
+
/* The piped streams — non-null exactly when the matching stdio slot
|
|
1594
|
+
* was "pipe" (Node's shape). */
|
|
1595
|
+
readonly stdin: ChildStdin | null;
|
|
1526
1596
|
readonly stdout: NodeJS.ReadableStream | null;
|
|
1527
1597
|
readonly stderr: NodeJS.ReadableStream | null;
|
|
1528
1598
|
}
|
|
@@ -1533,7 +1603,8 @@ declare module "child_process" {
|
|
|
1533
1603
|
/* The 3-tuple form admits number fds in the stdout/stderr slots —
|
|
1534
1604
|
* openSync results dup2'd into the child (the daemon-log idiom
|
|
1535
1605
|
* ["ignore", logFd, logFd]) — and "pipe" there too (child.stdout/
|
|
1536
|
-
* child.stderr streams);
|
|
1606
|
+
* child.stderr streams); "pipe" in the stdin slot exposes
|
|
1607
|
+
* child.stdin. */
|
|
1537
1608
|
stdio: "ignore" | "inherit" | "pipe" | ("ignore" | "inherit" | "pipe" | number)[];
|
|
1538
1609
|
/* detached gives the child its own session and process group
|
|
1539
1610
|
* (POSIX_SPAWN_SETSID); env REPLACES the child environment; cwd
|
|
@@ -1928,10 +1999,11 @@ declare module "node:querystring" {
|
|
|
1928
1999
|
* on("close", cb). An open interface keeps the process alive until
|
|
1929
2000
|
* close()/EOF, Node's semantics; lines split on \n and \r\n. */
|
|
1930
2001
|
declare module "readline" {
|
|
1931
|
-
export interface Interface {
|
|
2002
|
+
export interface Interface extends Disposable {
|
|
1932
2003
|
question(query: string, callback: (answer: string) => void): void;
|
|
1933
2004
|
close(): void;
|
|
1934
2005
|
on(event: "close", listener: () => void): void;
|
|
2006
|
+
[Symbol.dispose](): void;
|
|
1935
2007
|
}
|
|
1936
2008
|
export function createInterface(options: {
|
|
1937
2009
|
input: unknown;
|
|
@@ -3279,6 +3351,7 @@ declare module "stream" {
|
|
|
3279
3351
|
_read(size: number): void;
|
|
3280
3352
|
_destroy(error: Error | null, callback: (error?: Error | null) => void): void;
|
|
3281
3353
|
[Symbol.asyncIterator](): AsyncIterableIterator<any>;
|
|
3354
|
+
iterator(options?: { destroyOnReturn?: boolean }): AsyncIterableIterator<any>;
|
|
3282
3355
|
push(chunk: Buffer | string | null, encoding?: string): boolean;
|
|
3283
3356
|
unshift(chunk: Buffer | string, encoding?: string): void;
|
|
3284
3357
|
read(size?: number): Buffer | null;
|
package/ambient/scriptc.d.ts
CHANGED
|
@@ -31,13 +31,14 @@
|
|
|
31
31
|
* ref() restores it; hasRef() reports the state. The methods return the
|
|
32
32
|
* handle for chaining. Under @types/node this MERGES with NodeJS.Timeout
|
|
33
33
|
* (both map to the same numeric handle). */
|
|
34
|
-
interface Timeout {
|
|
34
|
+
interface Timeout extends Disposable {
|
|
35
35
|
ref(): Timeout;
|
|
36
36
|
unref(): Timeout;
|
|
37
37
|
hasRef(): boolean;
|
|
38
38
|
/* Re-arms the timer to fire at now + the original delay (Node's
|
|
39
39
|
* Timeout.refresh). Chaining like ref/unref. */
|
|
40
40
|
refresh(): Timeout;
|
|
41
|
+
[Symbol.dispose](): void;
|
|
41
42
|
}
|
|
42
43
|
/* The callback is invoked with NO arguments; the second overload admits a
|
|
43
44
|
* callback declared with one parameter for the sleep idiom —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-cache.js","sourceRoot":"","sources":["../../src/backend/build-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1H,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,EACjB,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAA8B,EAAE,IAAY;IAChF,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,KAAa;IACnE,uEAAuE;IACvE,2EAA2E;IAC3E,4EAA4E;IAC5E,OAAO,IAAI,CACT,OAAO,CAAC,WAAW,CAAC,EACpB,YAAY,KAAK,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAC1E,CAAC;AACJ,CAAC;AAED;;sCAEsC;AACtC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,WAAmB,EACnB,IAAa;IAEb,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5B,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACjC,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;mFACmF;AACnF,MAAM,UAAU,qBAAqB,CACnC,
|
|
1
|
+
{"version":3,"file":"build-cache.js","sourceRoot":"","sources":["../../src/backend/build-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,6 +59,11 @@ export declare function dnsLookupThunkFor(emitter: CEmitter, cbT: IrType): strin
|
|
|
59
59
|
* ScrError (or NULL); the adapter builds the callback's program-specific
|
|
60
60
|
* Error | null union, or a dyn error/null for checkJs callbacks. */
|
|
61
61
|
export declare function fsRenameThunkFor(emitter: CEmitter, cbT: IrType): string;
|
|
62
|
+
/** Callback adapter for randomBytes/pbkdf2. The runtime transfers one
|
|
63
|
+
* owned Buffer; the adapter materializes the callback's Error | null (or
|
|
64
|
+
* checked-dynamic null) first argument and either transfers or boxes the
|
|
65
|
+
* Buffer according to the program-specific callback signature. */
|
|
66
|
+
export declare function cryptoBytesThunkFor(emitter: CEmitter, cbT: IrType): string;
|
|
62
67
|
/** Interned CONNECT-listener adapter for a UNION socket slot — the h2
|
|
63
68
|
* compat listener (`(req, resOrSocket: Http2ServerResponse | net.Socket)
|
|
64
69
|
* => void`): the runtime fires (cb, req, sock, head) like an upgrade;
|
package/dist/backend/c/async.js
CHANGED
|
@@ -53,7 +53,7 @@ function emitArgPackAndTrampolinePrologue(fn) {
|
|
|
53
53
|
* their closure env through the pack (+1, released after the body). */
|
|
54
54
|
export function emitAsyncScaffolding(emitter, out) {
|
|
55
55
|
for (const fn of emitter.mod.functions) {
|
|
56
|
-
if (!fn.async)
|
|
56
|
+
if (!fn.async || fn.generator !== undefined)
|
|
57
57
|
continue;
|
|
58
58
|
const { definitions, ret, lines, spawnParams, argPackLines } = emitArgPackAndTrampolinePrologue(fn);
|
|
59
59
|
out.push(...definitions);
|
|
@@ -157,9 +157,31 @@ function emitGenScaffolding(emitter, out) {
|
|
|
157
157
|
? [` ${releaseCallC(ret, "sc_r")}; /* unwound: the never-read dummy */`]
|
|
158
158
|
: []), ` }`, `}`);
|
|
159
159
|
out.push(...lines);
|
|
160
|
+
let settleAsync = null;
|
|
161
|
+
if (fn.async) {
|
|
162
|
+
const genT = {
|
|
163
|
+
kind: "generator",
|
|
164
|
+
async: true,
|
|
165
|
+
yieldT: fn.generator.yieldT,
|
|
166
|
+
retT: ret,
|
|
167
|
+
nextT: fn.generator.nextT,
|
|
168
|
+
};
|
|
169
|
+
const resultT = fn.generator.resultType;
|
|
170
|
+
const build = genResultThunkFor(emitter, genT, resultT);
|
|
171
|
+
settleAsync = `${build}_async`;
|
|
172
|
+
const settleKey = `async:${typeKey(genT)}`;
|
|
173
|
+
if (!emitter.genResThunks.has(settleKey)) {
|
|
174
|
+
emitter.genResThunks.set(settleKey, settleAsync);
|
|
175
|
+
const adapters = vAdapters(resultT);
|
|
176
|
+
out.push(`static void ${settleAsync}(ScrGen *sc_g, ScrPromise *sc_p);`);
|
|
177
|
+
emitter.walkerDefs.push(`static void ${settleAsync}(ScrGen *sc_g, ScrPromise *sc_p) {`, ` ${mangleRecordStruct(resultT.shapeId)} *sc_r = ${build}(sc_g);`, ` scr_promise_fulfill_ref(sc_p, sc_r, ${adapters.retain}, ${adapters.release}, ${emitter.traceArgC(resultT)});`, `}`, ``);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
160
180
|
out.push(`static void ${mangleGenDrop(fn.name)}(void *sc_ap0) {`, ` ${pack} sc_a = *(${pack} *)sc_ap0;`, ` free(sc_ap0);`, ...(lifted ? [` scr_closure_release(sc_a.sc_env);`] : []), ...fn.params
|
|
161
181
|
.filter((p) => isRefCounted(p.type))
|
|
162
|
-
.map((p) => ` ${releaseCallC(p.type, `sc_a.${pname(p)}`)};`), ...(!lifted && !fn.params.some((p) => isRefCounted(p.type)) ? [` (void)sc_a;`] : []), `}`, `static ScrGen *${mangleGenSpawn(fn.name)}(${spawnParams.join(", ") || "void"}) {`, ...argPackLines,
|
|
182
|
+
.map((p) => ` ${releaseCallC(p.type, `sc_a.${pname(p)}`)};`), ...(!lifted && !fn.params.some((p) => isRefCounted(p.type)) ? [` (void)sc_a;`] : []), `}`, `static ScrGen *${mangleGenSpawn(fn.name)}(${spawnParams.join(", ") || "void"}) {`, ...argPackLines, settleAsync === null
|
|
183
|
+
? ` return scr_gen_new(&${mangleTrampoline(fn.name)}, sc_ap, &${mangleGenDrop(fn.name)});`
|
|
184
|
+
: ` return scr_async_gen_new(&${mangleTrampoline(fn.name)}, sc_ap, &${mangleGenDrop(fn.name)}, &${settleAsync});`, `}`);
|
|
163
185
|
}
|
|
164
186
|
}
|
|
165
187
|
/** Interned per-union child exit adapter: the runtime invokes
|
|
@@ -402,6 +424,63 @@ export function fsRenameThunkFor(emitter, cbT) {
|
|
|
402
424
|
emitter.walkerDefs.push(`static void ${sym}(ScrClosure *sc_cb, ScrError *sc_err) {`, ` ScrUnion *sc_u = sc_err`, ` ? scr_union_new_ref(${errTag}, scr_error_retain(sc_err), &scr_error_retain_v, &scr_error_release_v, NULL)`, ` : ${emitter.unitInstanceRef(param.unionId, nullTag)};`, ` ((void (*)(ScrClosure *, ScrUnion *))sc_cb->fn)(sc_cb, sc_u);`, `}`);
|
|
403
425
|
return sym;
|
|
404
426
|
}
|
|
427
|
+
/** Callback adapter for randomBytes/pbkdf2. The runtime transfers one
|
|
428
|
+
* owned Buffer; the adapter materializes the callback's Error | null (or
|
|
429
|
+
* checked-dynamic null) first argument and either transfers or boxes the
|
|
430
|
+
* Buffer according to the program-specific callback signature. */
|
|
431
|
+
export function cryptoBytesThunkFor(emitter, cbT) {
|
|
432
|
+
if (cbT.kind !== "func" || cbT.params.length > 2) {
|
|
433
|
+
throw new InternalCompilerError("emitter bug: crypto bytes callback shape");
|
|
434
|
+
}
|
|
435
|
+
const key = `crypto:${typeKey(cbT)}`;
|
|
436
|
+
let sym = emitter.fsRenameThunks.get(key);
|
|
437
|
+
if (sym)
|
|
438
|
+
return sym;
|
|
439
|
+
sym = `sc_cryptobytes_${emitter.fsRenameThunks.size}`;
|
|
440
|
+
emitter.fsRenameThunks.set(key, sym);
|
|
441
|
+
emitter.walkerProtos.push(`static void ${sym}(ScrClosure *sc_cb, ScrBytes *sc_value);`);
|
|
442
|
+
const lines = [`static void ${sym}(ScrClosure *sc_cb, ScrBytes *sc_value) {`];
|
|
443
|
+
const callTypes = ["ScrClosure *"];
|
|
444
|
+
const callArgs = ["sc_cb"];
|
|
445
|
+
const error = cbT.params[0];
|
|
446
|
+
if (error !== undefined) {
|
|
447
|
+
if (error.kind === "dyn") {
|
|
448
|
+
lines.push(` ScrDyn *sc_error = scr_dyn_new_null();`);
|
|
449
|
+
callTypes.push("ScrDyn *");
|
|
450
|
+
}
|
|
451
|
+
else if (error.kind === "union") {
|
|
452
|
+
const def = emitter.unionsById.get(error.unionId);
|
|
453
|
+
const nullTag = def ? def.arms.findIndex((arm) => arm.kind === "nullT") : -1;
|
|
454
|
+
if (nullTag < 0)
|
|
455
|
+
throw new InternalCompilerError("emitter bug: crypto callback error union lacks null");
|
|
456
|
+
lines.push(` ScrUnion *sc_error = ${emitter.unitInstanceRef(error.unionId, nullTag)};`);
|
|
457
|
+
callTypes.push("ScrUnion *");
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
throw new InternalCompilerError("emitter bug: crypto callback error param");
|
|
461
|
+
}
|
|
462
|
+
callArgs.push("sc_error");
|
|
463
|
+
}
|
|
464
|
+
const value = cbT.params[1];
|
|
465
|
+
if (value === undefined) {
|
|
466
|
+
lines.push(` scr_bytes_release(sc_value);`);
|
|
467
|
+
}
|
|
468
|
+
else if (value.kind === "dyn") {
|
|
469
|
+
lines.push(` ScrDyn *sc_result = scr_dyn_new_bytes_copy(sc_value);`, ` scr_bytes_release(sc_value);`);
|
|
470
|
+
callTypes.push("ScrDyn *");
|
|
471
|
+
callArgs.push("sc_result");
|
|
472
|
+
}
|
|
473
|
+
else if (value.kind === "bytes" && value.elem === "u8") {
|
|
474
|
+
callTypes.push("ScrBytes *");
|
|
475
|
+
callArgs.push("sc_value");
|
|
476
|
+
}
|
|
477
|
+
else {
|
|
478
|
+
throw new InternalCompilerError("emitter bug: crypto callback value param");
|
|
479
|
+
}
|
|
480
|
+
lines.push(` ((void (*)(${callTypes.join(", ")}))sc_cb->fn)(${callArgs.join(", ")});`, `}`);
|
|
481
|
+
emitter.walkerDefs.push(...lines);
|
|
482
|
+
return sym;
|
|
483
|
+
}
|
|
405
484
|
/** Interned CONNECT-listener adapter for a UNION socket slot — the h2
|
|
406
485
|
* compat listener (`(req, resOrSocket: Http2ServerResponse | net.Socket)
|
|
407
486
|
* => void`): the runtime fires (cb, req, sock, head) like an upgrade;
|