@scriptc/compiler 0.3.4 → 0.3.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 +131 -10
- package/dist/backend/llvm/array-search.js +1 -1
- package/dist/backend/llvm/array-search.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.d.ts +6 -0
- package/dist/backend/llvm/call-lifetimes.js +19 -0
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.d.ts +2 -21
- package/dist/backend/llvm/constant-callbacks.js +36 -219
- package/dist/backend/llvm/constant-callbacks.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.test.js +22 -0
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.d.ts +9 -0
- package/dist/backend/llvm/dense-array-access.js +27 -1
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +6 -0
- package/dist/backend/llvm/dyn.js +40 -6
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +75 -1
- package/dist/backend/llvm/emitter.js +408 -38
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +17 -7
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.js +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +11 -0
- package/dist/backend/llvm/expr-callbacks.js +53 -0
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +88 -2
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js +50 -27
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +9 -1
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +4 -0
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/integer-clones.d.ts +103 -0
- package/dist/backend/llvm/integer-clones.js +1336 -0
- package/dist/backend/llvm/integer-clones.js.map +1 -0
- package/dist/backend/llvm/integer-clones.test.d.ts +1 -0
- package/dist/backend/llvm/integer-clones.test.js +219 -0
- package/dist/backend/llvm/integer-clones.test.js.map +1 -0
- package/dist/backend/llvm/lib-datagram.js +14 -0
- package/dist/backend/llvm/lib-datagram.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +4 -0
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +24 -0
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +34 -2
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-tls.js +6 -0
- package/dist/backend/llvm/lib-tls.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +1 -1
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/map-entry-fusion.d.ts +28 -0
- package/dist/backend/llvm/map-entry-fusion.js +233 -0
- package/dist/backend/llvm/map-entry-fusion.js.map +1 -0
- package/dist/backend/llvm/map-entry-fusion.test.d.ts +1 -0
- package/dist/backend/llvm/map-entry-fusion.test.js +183 -0
- package/dist/backend/llvm/map-entry-fusion.test.js.map +1 -0
- package/dist/backend/llvm/map-number-lookup.d.ts +2 -0
- package/dist/backend/llvm/map-number-lookup.js +1 -1
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.test.js +10 -11
- package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.d.ts +2 -0
- package/dist/backend/llvm/map-read-lifetimes.js +3 -0
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
- package/dist/backend/llvm/publish.d.ts +16 -0
- package/dist/backend/llvm/publish.js +81 -10
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/publish.test.d.ts +1 -0
- package/dist/backend/llvm/publish.test.js +94 -0
- package/dist/backend/llvm/publish.test.js.map +1 -0
- package/dist/backend/llvm/record-results.js +76 -2
- package/dist/backend/llvm/record-results.js.map +1 -1
- package/dist/backend/llvm/record-sources.d.ts +7 -0
- package/dist/backend/llvm/record-sources.js +14 -0
- package/dist/backend/llvm/record-sources.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +9 -3
- package/dist/backend/llvm/shapes.js +18 -14
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +5 -3
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +75 -1
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +17 -0
- package/dist/backend/llvm/walkers.js +123 -0
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +2 -1
- package/dist/backend/native/executable.js +3 -1
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.test.js +1 -1
- package/dist/frontend/lowering/builtin-calls.js +3 -0
- package/dist/frontend/lowering/builtin-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/callable-aliases.js +54 -8
- package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-async.d.ts +8 -6
- package/dist/frontend/lowering/builtins/child-process-async.js +45 -29
- package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +2 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +5 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.js +60 -0
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-streams.d.ts +26 -0
- package/dist/frontend/lowering/builtins/fs-streams.js +131 -0
- package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-calls.js +5 -1
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.js +150 -8
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.js +33 -12
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/devirtualize.js +20 -7
- package/dist/frontend/lowering/devirtualize.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +58 -3
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.js +7 -0
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.js +55 -15
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +9 -1
- package/dist/frontend/lowering/lower-event-emitter.js +78 -0
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +4 -0
- package/dist/frontend/lowering/lower-exprs.js +132 -58
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +26 -0
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-server.d.ts +2 -1
- package/dist/frontend/lowering/lower-server.js +73 -5
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +12 -6
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +8 -0
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +3 -1
- package/dist/frontend/lowering/lowerer.js +2 -2
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/record-sources.d.ts +15 -0
- package/dist/frontend/lowering/record-sources.js +46 -0
- package/dist/frontend/lowering/record-sources.js.map +1 -0
- package/dist/frontend/lowering/surfaces.js +33 -1
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +3 -0
- package/dist/frontend/type-mapper.js +53 -0
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/ir/analysis.d.ts +10 -0
- package/dist/ir/analysis.js +35 -0
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/analysis.test.js +69 -1
- package/dist/ir/analysis.test.js.map +1 -1
- package/dist/ir/builtin-effects.js +36 -0
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +1 -1
- package/dist/ir/builtin-signatures.js +91 -7
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/capture-values.d.ts +107 -0
- package/dist/ir/capture-values.js +850 -0
- package/dist/ir/capture-values.js.map +1 -0
- package/dist/ir/capture-values.test.d.ts +1 -0
- package/dist/ir/capture-values.test.js +268 -0
- package/dist/ir/capture-values.test.js.map +1 -0
- package/dist/ir/field-values.d.ts +16 -0
- package/dist/ir/field-values.js +128 -0
- package/dist/ir/field-values.js.map +1 -0
- package/dist/ir/field-values.test.d.ts +1 -0
- package/dist/ir/field-values.test.js +160 -0
- package/dist/ir/field-values.test.js.map +1 -0
- package/dist/ir/final-fields.d.ts +4 -1
- package/dist/ir/final-fields.js +11 -3
- package/dist/ir/final-fields.js.map +1 -1
- package/dist/ir/function-references.test.js +1 -1
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/init-only-globals.d.ts +16 -0
- package/dist/ir/init-only-globals.js +121 -0
- package/dist/ir/init-only-globals.js.map +1 -0
- package/dist/ir/init-only-globals.test.d.ts +1 -0
- package/dist/ir/init-only-globals.test.js +115 -0
- package/dist/ir/init-only-globals.test.js.map +1 -0
- package/dist/ir/initializer-bindings.d.ts +18 -1
- package/dist/ir/initializer-bindings.js +91 -1
- package/dist/ir/initializer-bindings.js.map +1 -1
- package/dist/ir/initializer-bindings.test.js +57 -2
- package/dist/ir/initializer-bindings.test.js.map +1 -1
- package/dist/ir/int32-slots.d.ts +22 -0
- package/dist/ir/int32-slots.js +376 -13
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +91 -8
- package/dist/ir/int32-slots.test.js.map +1 -1
- package/dist/ir/integer-loop-facts.d.ts +19 -1
- package/dist/ir/integer-loop-facts.js +155 -7
- package/dist/ir/integer-loop-facts.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +8 -5
- package/dist/ir/integer-ranges.js +147 -55
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +225 -7
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/ir.d.ts +9 -1
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/property-bags.d.ts +14 -0
- package/dist/ir/property-bags.js +121 -0
- package/dist/ir/property-bags.js.map +1 -0
- package/dist/ir/receiver-readers.d.ts +21 -0
- package/dist/ir/receiver-readers.js +217 -0
- package/dist/ir/receiver-readers.js.map +1 -0
- package/dist/ir/runtime-features.js +6 -1
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/validate.js +26 -0
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +21 -0
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/int-infer.js +3 -0
- package/dist/library/int-infer.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +28 -2
|
@@ -635,9 +635,12 @@ interface BufferConstructor {
|
|
|
635
635
|
from(data: Uint8Array | readonly number[]): Buffer;
|
|
636
636
|
alloc(size: number, fill?: string | number | Uint8Array, encoding?: BufferEncoding): Buffer;
|
|
637
637
|
compare(buf1: Uint8Array, buf2: Uint8Array): number;
|
|
638
|
-
/* alloc without the zero-fill guarantee
|
|
639
|
-
*
|
|
638
|
+
/* alloc without the zero-fill guarantee. Below Buffer.poolSize >>> 1
|
|
639
|
+
* bytes it returns a view into the shared pool slab. */
|
|
640
640
|
allocUnsafe(size: number): Buffer;
|
|
641
|
+
allocUnsafeSlow(size: number): Buffer;
|
|
642
|
+
/* The pool slab size for allocUnsafe, from, and concat. */
|
|
643
|
+
poolSize: number;
|
|
641
644
|
concat(list: readonly Uint8Array[], totalLength?: number): Buffer;
|
|
642
645
|
isBuffer(obj: unknown): obj is Buffer;
|
|
643
646
|
byteLength(input: string | Uint8Array, encoding?: BufferEncoding): number;
|
|
@@ -1198,6 +1201,7 @@ interface ImportMeta {
|
|
|
1198
1201
|
* directory, open 'x'"). `rmSync` removes FILES only (like Node without
|
|
1199
1202
|
* `recursive`); empty directories go through `rmdirSync`. */
|
|
1200
1203
|
declare module "node:fs" {
|
|
1204
|
+
import { Readable, Writable } from "stream";
|
|
1201
1205
|
export function readFileSync(path: string | number, encoding: BufferEncoding): string;
|
|
1202
1206
|
export function readFileSync(
|
|
1203
1207
|
path: string | number,
|
|
@@ -1380,6 +1384,47 @@ declare module "node:fs" {
|
|
|
1380
1384
|
bufferSize?: number;
|
|
1381
1385
|
}
|
|
1382
1386
|
export function opendirSync(path: string, options?: OpenDirOptions): Dir;
|
|
1387
|
+
/* fs.ReadStream / fs.WriteStream: runtime Readable and Writable streams
|
|
1388
|
+
* over a file (scr_fs_stream.c). The options are checked at runtime
|
|
1389
|
+
* with Node's rules; flags and mode are checked when the file opens, so
|
|
1390
|
+
* their errors arrive as 'error' events. Instances also emit 'open'
|
|
1391
|
+
* (with the fd) and 'ready'. */
|
|
1392
|
+
export interface StreamOptions {
|
|
1393
|
+
flags?: string;
|
|
1394
|
+
encoding?: BufferEncoding;
|
|
1395
|
+
fd?: number;
|
|
1396
|
+
mode?: number | string;
|
|
1397
|
+
autoClose?: boolean;
|
|
1398
|
+
emitClose?: boolean;
|
|
1399
|
+
start?: number;
|
|
1400
|
+
highWaterMark?: number;
|
|
1401
|
+
}
|
|
1402
|
+
export interface ReadStreamOptions extends StreamOptions {
|
|
1403
|
+
end?: number;
|
|
1404
|
+
}
|
|
1405
|
+
export interface WriteStreamOptions extends StreamOptions {
|
|
1406
|
+
flush?: boolean;
|
|
1407
|
+
}
|
|
1408
|
+
export class ReadStream extends Readable {
|
|
1409
|
+
readonly bytesRead: number;
|
|
1410
|
+
readonly path: string | Buffer;
|
|
1411
|
+
readonly pending: boolean;
|
|
1412
|
+
close(callback?: () => void): void;
|
|
1413
|
+
}
|
|
1414
|
+
export class WriteStream extends Writable {
|
|
1415
|
+
readonly bytesWritten: number;
|
|
1416
|
+
readonly path: string | Buffer;
|
|
1417
|
+
readonly pending: boolean;
|
|
1418
|
+
close(callback?: () => void): void;
|
|
1419
|
+
}
|
|
1420
|
+
export function createReadStream(
|
|
1421
|
+
path: string | Buffer | URL,
|
|
1422
|
+
options?: BufferEncoding | ReadStreamOptions,
|
|
1423
|
+
): ReadStream;
|
|
1424
|
+
export function createWriteStream(
|
|
1425
|
+
path: string | Buffer | URL,
|
|
1426
|
+
options?: BufferEncoding | WriteStreamOptions,
|
|
1427
|
+
): WriteStream;
|
|
1383
1428
|
export function accessSync(path: string, mode?: number): void;
|
|
1384
1429
|
export function mkdtempSync(prefix: string): string;
|
|
1385
1430
|
export const constants: {
|
|
@@ -1632,9 +1677,31 @@ declare module "fs/promises" {
|
|
|
1632
1677
|
length?: number | null;
|
|
1633
1678
|
position?: number | null;
|
|
1634
1679
|
}
|
|
1680
|
+
/* The streams over a FileHandle (createReadStream, createWriteStream,
|
|
1681
|
+
* readLines): fs streams that hold the handle until they close; closing
|
|
1682
|
+
* the stream closes the handle unless autoClose is false. */
|
|
1683
|
+
export interface CreateReadStreamOptions {
|
|
1684
|
+
encoding?: BufferEncoding | null;
|
|
1685
|
+
autoClose?: boolean;
|
|
1686
|
+
emitClose?: boolean;
|
|
1687
|
+
start?: number;
|
|
1688
|
+
end?: number;
|
|
1689
|
+
highWaterMark?: number;
|
|
1690
|
+
}
|
|
1691
|
+
export interface CreateWriteStreamOptions {
|
|
1692
|
+
encoding?: BufferEncoding | null;
|
|
1693
|
+
autoClose?: boolean;
|
|
1694
|
+
emitClose?: boolean;
|
|
1695
|
+
start?: number;
|
|
1696
|
+
highWaterMark?: number;
|
|
1697
|
+
flush?: boolean;
|
|
1698
|
+
}
|
|
1635
1699
|
export interface FileHandle extends AsyncDisposable {
|
|
1636
1700
|
readonly fd: number;
|
|
1637
1701
|
close(): Promise<void>;
|
|
1702
|
+
createReadStream(options?: CreateReadStreamOptions): import("node:fs").ReadStream;
|
|
1703
|
+
createWriteStream(options?: CreateWriteStreamOptions): import("node:fs").WriteStream;
|
|
1704
|
+
readLines(options?: CreateReadStreamOptions): import("node:readline").Interface;
|
|
1638
1705
|
sync(): Promise<void>;
|
|
1639
1706
|
datasync(): Promise<void>;
|
|
1640
1707
|
truncate(len?: number): Promise<void>;
|
|
@@ -2877,7 +2944,8 @@ declare module "child_process" {
|
|
|
2877
2944
|
): unknown;
|
|
2878
2945
|
/* The async shell form — declared surface without full lowering (the
|
|
2879
2946
|
* type-level tolerance story): harness code on paths tests don't reach
|
|
2880
|
-
* must typecheck; a reached call fences at its site.
|
|
2947
|
+
* must typecheck; a reached call fences at its site. util.promisify
|
|
2948
|
+
* recognizes it statically, as it does execFile. */
|
|
2881
2949
|
export function exec(
|
|
2882
2950
|
command: string,
|
|
2883
2951
|
options?: ExecSyncOptions | ((error: Error | null, stdout: string, stderr: string) => void),
|
|
@@ -2888,9 +2956,10 @@ declare module "node:child_process" {
|
|
|
2888
2956
|
export * from "child_process";
|
|
2889
2957
|
}
|
|
2890
2958
|
|
|
2891
|
-
/* node:util — compile-time projections for child_process.execFile
|
|
2892
|
-
* fs.readFile. The
|
|
2893
|
-
* the
|
|
2959
|
+
/* node:util — compile-time projections for child_process.execFile,
|
|
2960
|
+
* child_process.exec and fs.readFile. The first two retain Node's custom
|
|
2961
|
+
* { stdout, stderr } result; the last resolves the callback's data
|
|
2962
|
+
* argument. Other targets and bare
|
|
2894
2963
|
* promisify values fence per site. */
|
|
2895
2964
|
declare module "util" {
|
|
2896
2965
|
export * as types from "util/types";
|
|
@@ -2982,6 +3051,18 @@ declare module "util" {
|
|
|
2982
3051
|
windowsHide?: boolean;
|
|
2983
3052
|
},
|
|
2984
3053
|
) => Promise<{ stdout: string; stderr: string }>;
|
|
3054
|
+
export function promisify(fn: typeof import("node:child_process").exec): (
|
|
3055
|
+
command: string,
|
|
3056
|
+
options?: {
|
|
3057
|
+
encoding?: "utf8" | "utf-8";
|
|
3058
|
+
cwd?: string;
|
|
3059
|
+
env?: { [k: string]: string | undefined };
|
|
3060
|
+
timeout?: number;
|
|
3061
|
+
maxBuffer?: number;
|
|
3062
|
+
killSignal?: string;
|
|
3063
|
+
windowsHide?: boolean;
|
|
3064
|
+
},
|
|
3065
|
+
) => Promise<{ stdout: string; stderr: string }>;
|
|
2985
3066
|
/* Declared surface without full lowering (the type-level tolerance
|
|
2986
3067
|
* story: guarded/diagnostic-path code must TYPECHECK; a reached use
|
|
2987
3068
|
* without a lowering fences at its site). inspect's options carry the
|
|
@@ -3979,6 +4060,11 @@ declare module "net" {
|
|
|
3979
4060
|
setKeepAlive(enable?: boolean, initialDelay?: number): Socket;
|
|
3980
4061
|
/* end() now, destroy once the FIN actually flushed. */
|
|
3981
4062
|
destroySoon(): void;
|
|
4063
|
+
/* An RST instead of a FIN; a connecting socket resets once it
|
|
4064
|
+
* connects. Throws ERR_INVALID_HANDLE_TYPE on a TLS socket. */
|
|
4065
|
+
resetAndDestroy(): Socket;
|
|
4066
|
+
/* The local address, or {} while connecting and once destroyed. */
|
|
4067
|
+
address(): AddressInfo | {};
|
|
3982
4068
|
/* setEncoding('utf8'): 'data' delivers strings — the IncomingMessage
|
|
3983
4069
|
* twin's contract. */
|
|
3984
4070
|
setEncoding(encoding: string): void;
|
|
@@ -4038,6 +4124,8 @@ declare module "net" {
|
|
|
4038
4124
|
/* Connections past this many are closed with a 'drop' event;
|
|
4039
4125
|
* undefined (the default) or null lifts the cap. */
|
|
4040
4126
|
maxConnections: number | undefined;
|
|
4127
|
+
/* Node reads it only in cluster mode: a stored value here. */
|
|
4128
|
+
dropMaxConnection: boolean | undefined;
|
|
4041
4129
|
/* cb(null, count) on the next tick. */
|
|
4042
4130
|
getConnections(callback: (error: Error | null, count: number) => void): Server;
|
|
4043
4131
|
/* Node answers the server itself (`return this` chaining). */
|
|
@@ -4508,7 +4596,7 @@ declare module "tls" {
|
|
|
4508
4596
|
}
|
|
4509
4597
|
export function createServer(
|
|
4510
4598
|
options: TlsOptions,
|
|
4511
|
-
secureConnectionListener?: (socket:
|
|
4599
|
+
secureConnectionListener?: (socket: TLSSocket) => void,
|
|
4512
4600
|
): Server;
|
|
4513
4601
|
/** TLSSocket — post-handshake it IS a net socket to every lowered
|
|
4514
4602
|
* member (the mapping collapses it onto the socket kind; the
|
|
@@ -4519,7 +4607,20 @@ declare module "tls" {
|
|
|
4519
4607
|
export interface TLSSocket extends Socket {
|
|
4520
4608
|
authorized: boolean;
|
|
4521
4609
|
authorizationError: string | null;
|
|
4610
|
+
/* null before the handshake, then the negotiated protocol or false */
|
|
4611
|
+
readonly alpnProtocol: string | false | null;
|
|
4612
|
+
/* "TLSv1.2" or "TLSv1.3"; null before the handshake and after close */
|
|
4613
|
+
getProtocol(): string | null;
|
|
4614
|
+
/* OpenSSL's suite name, the IANA name and the suite's version */
|
|
4615
|
+
getCipher(): CipherNameAndProtocol;
|
|
4616
|
+
}
|
|
4617
|
+
export interface CipherNameAndProtocol {
|
|
4618
|
+
name: string;
|
|
4619
|
+
standardName: string;
|
|
4620
|
+
version: string;
|
|
4522
4621
|
}
|
|
4622
|
+
export const DEFAULT_MIN_VERSION: string;
|
|
4623
|
+
export const DEFAULT_MAX_VERSION: string;
|
|
4523
4624
|
/** tls.connect options — the RUNTIME options record (members read at
|
|
4524
4625
|
* runtime; port/host/rejectUnauthorized/ca/servername are the
|
|
4525
4626
|
* honestly-implemented set, every other documented member throws the
|
|
@@ -5306,8 +5407,9 @@ declare module "node:http2" {
|
|
|
5306
5407
|
* Buffer datagram with an explicit port + address (the connected-send
|
|
5307
5408
|
* and callback forms have no lowering); address() returns the real
|
|
5308
5409
|
* {address, family, port} record and THROWS "Not running" before bind,
|
|
5309
|
-
* like Node.
|
|
5310
|
-
*
|
|
5410
|
+
* like Node. The socket options throw Node's errors (EBADF before bind);
|
|
5411
|
+
* add/dropMembership before bind is refused at run time (SC2020). 'error'
|
|
5412
|
+
* with no listener exits 1 (the unhandled EventEmitter 'error' behavior). */
|
|
5311
5413
|
declare module "dgram" {
|
|
5312
5414
|
export interface AddressInfo {
|
|
5313
5415
|
address: string;
|
|
@@ -5326,8 +5428,22 @@ declare module "dgram" {
|
|
|
5326
5428
|
send(msg: string | Uint8Array, port: number, address: string): void;
|
|
5327
5429
|
address(): AddressInfo;
|
|
5328
5430
|
close(callback?: () => void): void;
|
|
5431
|
+
disconnect(): void;
|
|
5329
5432
|
unref(): void;
|
|
5330
5433
|
ref(): void;
|
|
5434
|
+
setBroadcast(flag: boolean): void;
|
|
5435
|
+
setTTL(ttl: number): number;
|
|
5436
|
+
setMulticastTTL(ttl: number): number;
|
|
5437
|
+
setMulticastLoopback(flag: boolean): boolean;
|
|
5438
|
+
setMulticastInterface(multicastInterface: string): void;
|
|
5439
|
+
addMembership(multicastAddress: string, multicastInterface?: string): void;
|
|
5440
|
+
dropMembership(multicastAddress: string, multicastInterface?: string): void;
|
|
5441
|
+
getRecvBufferSize(): number;
|
|
5442
|
+
getSendBufferSize(): number;
|
|
5443
|
+
setRecvBufferSize(size: number): void;
|
|
5444
|
+
setSendBufferSize(size: number): void;
|
|
5445
|
+
getSendQueueSize(): number;
|
|
5446
|
+
getSendQueueCount(): number;
|
|
5331
5447
|
on(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): void;
|
|
5332
5448
|
on(event: "listening" | "close" | "connect", listener: () => void): void;
|
|
5333
5449
|
on(event: "error", listener: (err: Error) => void): void;
|
|
@@ -5595,7 +5711,12 @@ declare module "events" {
|
|
|
5595
5711
|
// The class under its own name, so `import { EventEmitter }` resolves
|
|
5596
5712
|
// (the @types/node namespace-alias pattern).
|
|
5597
5713
|
export { internal as EventEmitter };
|
|
5598
|
-
|
|
5714
|
+
// The event's arguments, as checked-dynamic values.
|
|
5715
|
+
export function once(
|
|
5716
|
+
emitter: EventEmitter,
|
|
5717
|
+
eventName: string,
|
|
5718
|
+
options?: { signal?: AbortSignal },
|
|
5719
|
+
): Promise<unknown[]>;
|
|
5599
5720
|
}
|
|
5600
5721
|
export = EventEmitter;
|
|
5601
5722
|
}
|
|
@@ -25,7 +25,7 @@ export function emitArraySearchHelpers(kinds, sz, declare) {
|
|
|
25
25
|
for (const kind of [...kinds].sort()) {
|
|
26
26
|
declare("declare double @scr_arr_index_of_ref(ptr, ptr)");
|
|
27
27
|
const widen = sz === "i64" ? " %f = zext i32 %f32 to i64" : " %f = add i32 %f32, 0";
|
|
28
|
-
defs.push(`define internal double @${arraySearchHelperName(kind)}(ptr %a, ptr %v) ${FN_ATTRS} {`, `entry:`, ` %lenp = getelementptr inbounds %ScrArr, ptr %a, i32 0, i32 1`, ` %len = load ${sz}, ptr %lenp`, ` %fp = getelementptr inbounds %ScrArr, ptr %a, i32 0, i32 6`, ` %f32 = load i32, ptr %fp`, widen, ` %dense = icmp eq ${sz} %f, %len`, ` br i1 %dense, label %scan, label %slow`, `scan:`, ` %dp = getelementptr inbounds %ScrArr, ptr %a, i32 0, i32 8`, ` %data = load ptr, ptr %dp`);
|
|
28
|
+
defs.push(`define internal double @${arraySearchHelperName(kind)}(ptr %a, ptr %v) ${FN_ATTRS} {`, `entry:`, ` %lenp = getelementptr inbounds %ScrArr, ptr %a, i32 0, i32 1`, ` %len = load ${sz}, ptr %lenp${sz === "i64" ? ", !range !{i64 0, i64 4294967296}" : ""}`, ` %fp = getelementptr inbounds %ScrArr, ptr %a, i32 0, i32 6`, ` %f32 = load i32, ptr %fp`, widen, ` %dense = icmp eq ${sz} %f, %len`, ` br i1 %dense, label %scan, label %slow`, `scan:`, ` %dp = getelementptr inbounds %ScrArr, ptr %a, i32 0, i32 8`, ` %data = load ptr, ptr %dp`);
|
|
29
29
|
if (kind === "ptr") {
|
|
30
30
|
defs.push(` %needle = ptrtoint ptr %v to i64`,
|
|
31
31
|
// Four slots per step with one branch, then one at a time.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-search.js","sourceRoot":"","sources":["../../../src/backend/llvm/array-search.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC;QACf;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAqB;IACzD,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC;AACxE,CAAC;AAED;wBACwB;AACxB,MAAM,UAAU,sBAAsB,CACpC,KAAmC,EACnC,EAAU,EACV,OAA+B;IAE/B,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACrC,OAAO,CAAC,gDAAgD,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,wBAAwB,CAAC;QACtF,IAAI,CAAC,IAAI,CACP,2BAA2B,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,QAAQ,IAAI,EACtF,QAAQ,EACR,gEAAgE,EAChE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"array-search.js","sourceRoot":"","sources":["../../../src/backend/llvm/array-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,12 @@ export interface CallLifetimes {
|
|
|
17
17
|
/** Projection-only local uses, allowing statement assignments. Each
|
|
18
18
|
* initializer and assignment still needs a separate storage proof. */
|
|
19
19
|
projectedLocals: Map<string, Set<string>>;
|
|
20
|
+
/** Generator bodies own their parameters for the whole body, including
|
|
21
|
+
* every suspension: the frame releases them only on its final exit. A
|
|
22
|
+
* reference parameter nothing rebinds, declares or captures is therefore
|
|
23
|
+
* a stable owner that reads may borrow, as a borrowed parameter is in a
|
|
24
|
+
* synchronous body. These parameters keep their owned convention. */
|
|
25
|
+
generatorParameters: Map<string, Set<string>>;
|
|
20
26
|
}
|
|
21
27
|
/** Read each function once. A whole-value use is unsafe unless it is an
|
|
22
28
|
* explicitly supported projection, invocation, borrowing string operation, or direct-call
|
|
@@ -249,8 +249,27 @@ registerReturns = new Set(), inlineField = NO_INLINE_FIELDS, recordDynCopy = ()
|
|
|
249
249
|
borrowed: new Map(),
|
|
250
250
|
bindings: new Map(),
|
|
251
251
|
projectedLocals: new Map(),
|
|
252
|
+
generatorParameters: new Map(),
|
|
252
253
|
};
|
|
253
254
|
for (const fn of functions.values()) {
|
|
255
|
+
if (fn.generator !== undefined && fn.classCaptures === undefined) {
|
|
256
|
+
const uses = collectUses(fn, nullableField, false, inlineField, recordDynCopy);
|
|
257
|
+
const locals = new Map(fn.locals.map((local) => [local.id, local]));
|
|
258
|
+
const stable = new Set();
|
|
259
|
+
for (const param of fn.params) {
|
|
260
|
+
const local = locals.get(param.localId);
|
|
261
|
+
if (local &&
|
|
262
|
+
isRefCounted(param.type) &&
|
|
263
|
+
!local.boxed &&
|
|
264
|
+
!local.tdz &&
|
|
265
|
+
!uses.written.has(local.id) &&
|
|
266
|
+
!uses.declarations.has(local.id))
|
|
267
|
+
stable.add(local.id);
|
|
268
|
+
}
|
|
269
|
+
if (stable.size > 0)
|
|
270
|
+
result.generatorParameters.set(fn.name, stable);
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
254
273
|
if (fn.async || fn.generator)
|
|
255
274
|
continue;
|
|
256
275
|
const uses = collectUses(fn, nullableField, registerReturns.has(fn.name), inlineField, recordDynCopy);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-lifetimes.js","sourceRoot":"","sources":["../../../src/backend/llvm/call-lifetimes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"call-lifetimes.js","sourceRoot":"","sources":["../../../src/backend/llvm/call-lifetimes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IrModule } from "../../ir/ir.js";
|
|
2
2
|
import type { CallLifetimes } from "./call-lifetimes.js";
|
|
3
3
|
/** Closed direct-call consumers can devirtualize a callback when every
|
|
4
4
|
* incoming call supplies the same function. Keep its evaluated environment,
|
|
5
5
|
* arguments and ordinary ownership; only the loaded code pointer changes.
|
|
6
6
|
* Escaped, exported, recursive forwarding and unknown targets stay indirect. */
|
|
7
7
|
export declare function findConstantCallbacks(mod: IrModule, lifetimes: CallLifetimes): Map<string, Map<string, string>>;
|
|
8
|
-
|
|
9
|
-
* without a fresh binding: the JS `this` read (libCall dyn.this), async and
|
|
10
|
-
* generator creation (which snapshot it), checked-value operations,
|
|
11
|
-
* diagnostics-channel stores, and anything outside the admitted kinds; then
|
|
12
|
-
* every function that can reach one through a direct call, constructor or
|
|
13
|
-
* virtual dispatch (a backward reachability fixpoint, so recursion such as
|
|
14
|
-
* a tree walker's `evaluate` resolves exactly). A known callback outside
|
|
15
|
-
* this set needs no receiver bracket. */
|
|
16
|
-
export declare class AmbientReceiverReaders {
|
|
17
|
-
private readonly functions;
|
|
18
|
-
private readers;
|
|
19
|
-
constructor(functions: ReadonlyMap<string, IrFunction>);
|
|
20
|
-
ignores(fn: IrFunction): boolean;
|
|
21
|
-
private compute;
|
|
22
|
-
}
|
|
23
|
-
/** A known callback that cannot observe ambient this needs no receiver
|
|
24
|
-
* stack bracket. Standalone form of AmbientReceiverReaders over the given
|
|
25
|
-
* functions (by default only the callback itself, so any call stays on the
|
|
26
|
-
* ABI path). */
|
|
27
|
-
export declare function callbackIgnoresReceiver(fn: IrFunction, functions?: ReadonlyMap<string, IrFunction>): boolean;
|
|
8
|
+
export { AmbientReceiverReaders, callbackIgnoresReceiver } from "../../ir/receiver-readers.js";
|