@scriptc/compiler 0.3.1 → 0.3.2
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 +342 -16
- package/dist/backend/executable-features.js +1 -0
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/literals.d.ts +7 -0
- package/dist/backend/literals.js +32 -0
- package/dist/backend/literals.js.map +1 -1
- package/dist/backend/literals.test.js +17 -1
- package/dist/backend/literals.test.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +15 -4
- package/dist/backend/llvm/alloc.js +39 -15
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/alloc.test.js +15 -1
- package/dist/backend/llvm/alloc.test.js.map +1 -1
- package/dist/backend/llvm/appended-array-literals.d.ts +2 -0
- package/dist/backend/llvm/appended-array-literals.js +109 -0
- package/dist/backend/llvm/appended-array-literals.js.map +1 -0
- package/dist/backend/llvm/appended-array-literals.test.d.ts +1 -0
- package/dist/backend/llvm/appended-array-literals.test.js +90 -0
- package/dist/backend/llvm/appended-array-literals.test.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.d.ts +4 -1
- package/dist/backend/llvm/call-lifetimes.js +51 -3
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/classes.js +10 -2
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +2 -2
- package/dist/backend/llvm/dense-array-access.js +17 -12
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dense-array-access.test.js +15 -2
- package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +2 -0
- package/dist/backend/llvm/dyn.js +11 -2
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +43 -2
- package/dist/backend/llvm/emitter.js +306 -32
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +122 -6
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.d.ts +8 -0
- package/dist/backend/llvm/expr-callbacks.js +81 -1
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.d.ts +12 -1
- package/dist/backend/llvm/expr-calls.js +126 -54
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +7 -0
- package/dist/backend/llvm/expr-containers.js +38 -7
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +2 -0
- package/dist/backend/llvm/expr-control.d.ts +8 -0
- package/dist/backend/llvm/expr-control.js +103 -69
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +2 -2
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +7 -0
- package/dist/backend/llvm/expr-primitives.js +30 -26
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +11 -1
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.d.ts +8 -0
- package/dist/backend/llvm/expr-stream-bridges.js +77 -8
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js +49 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
- package/dist/backend/llvm/int32-abi.d.ts +18 -2
- package/dist/backend/llvm/int32-abi.js +23 -2
- package/dist/backend/llvm/int32-abi.js.map +1 -1
- package/dist/backend/llvm/int32-abi.test.js +75 -1
- package/dist/backend/llvm/int32-abi.test.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +7 -0
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +58 -0
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +76 -9
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +5 -3
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.d.ts +24 -2
- package/dist/backend/llvm/local-union-storage.js +127 -12
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +106 -1
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
- package/dist/backend/llvm/record-results.d.ts +26 -0
- package/dist/backend/llvm/record-results.js +252 -0
- package/dist/backend/llvm/record-results.js.map +1 -0
- package/dist/backend/llvm/reference-effects.js +2 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-writes.js +15 -9
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/regions.d.ts +67 -0
- package/dist/backend/llvm/regions.js +309 -0
- package/dist/backend/llvm/regions.js.map +1 -0
- package/dist/backend/llvm/regions.test.d.ts +1 -0
- package/dist/backend/llvm/regions.test.js +173 -0
- package/dist/backend/llvm/regions.test.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +34 -7
- package/dist/backend/llvm/shapes.js +31 -16
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +7 -6
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/split-loops.js +1 -1
- package/dist/backend/llvm/split-loops.js.map +1 -1
- package/dist/backend/llvm/stack-objects.d.ts +29 -0
- package/dist/backend/llvm/stack-objects.js +130 -0
- package/dist/backend/llvm/stack-objects.js.map +1 -0
- package/dist/backend/llvm/stack-objects.test.d.ts +1 -0
- package/dist/backend/llvm/stack-objects.test.js +252 -0
- package/dist/backend/llvm/stack-objects.test.js.map +1 -0
- package/dist/backend/llvm/string-reads.d.ts +4 -1
- package/dist/backend/llvm/string-reads.js +89 -9
- package/dist/backend/llvm/string-reads.js.map +1 -1
- package/dist/backend/llvm/switch-dispatch.js +5 -4
- package/dist/backend/llvm/switch-dispatch.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +2 -0
- package/dist/backend/llvm/walkers.js +4 -2
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/may-throw.js +1 -0
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +5 -0
- package/dist/backend/native/executable.js +16 -1
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/library.js +1 -1
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +2 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +1 -0
- package/dist/backend/native-link-info-core.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-core.d.ts +1 -0
- package/dist/backend/runtime-pack-core.js +1 -0
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.test.js +1 -1
- package/dist/backend/target-diagnostics.js +14 -0
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +13 -0
- package/dist/backend/target-diagnostics.test.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +1 -0
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/frontend/experimental-import.d.ts +12 -0
- package/dist/frontend/experimental-import.js +63 -0
- package/dist/frontend/experimental-import.js.map +1 -0
- package/dist/frontend/lowering/builtin-calls.d.ts +6 -1
- package/dist/frontend/lowering/builtin-calls.js +36 -0
- package/dist/frontend/lowering/builtin-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/console.d.ts +16 -6
- package/dist/frontend/lowering/builtins/console.js +33 -9
- package/dist/frontend/lowering/builtins/console.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.js +20 -0
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.d.ts +2 -2
- package/dist/frontend/lowering/builtins/json.js +13 -4
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +16 -1
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/numbers.d.ts +1 -0
- package/dist/frontend/lowering/builtins/numbers.js +17 -0
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/operating-system.d.ts +18 -0
- package/dist/frontend/lowering/builtins/operating-system.js +361 -1
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.js +15 -3
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.js +109 -2
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/text-codecs.d.ts +3 -4
- package/dist/frontend/lowering/builtins/text-codecs.js +3 -4
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
- package/dist/frontend/lowering/checked-promise-all.d.ts +10 -3
- package/dist/frontend/lowering/checked-promise-all.js +52 -6
- package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +6 -3
- package/dist/frontend/lowering/class-dynamic-dispatch.js +54 -31
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.js +34 -4
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.js +8 -4
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.js +1 -1
- package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.js +91 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/cycle-initialization.d.ts +18 -2
- package/dist/frontend/lowering/cycle-initialization.js +166 -12
- package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.js +7 -2
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.test.js +28 -0
- package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +5 -56
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/generator-delegation.d.ts +8 -0
- package/dist/frontend/lowering/generator-delegation.js +231 -10
- package/dist/frontend/lowering/generator-delegation.js.map +1 -1
- package/dist/frontend/lowering/lifetime-regions.d.ts +11 -0
- package/dist/frontend/lowering/lifetime-regions.js +216 -0
- package/dist/frontend/lowering/lifetime-regions.js.map +1 -0
- package/dist/frontend/lowering/lower-array-sort.d.ts +28 -2
- package/dist/frontend/lowering/lower-array-sort.js +100 -3
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.test.js +99 -2
- package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +72 -102
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +4 -3
- package/dist/frontend/lowering/lower-classes.js +116 -2
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-console.d.ts +13 -0
- package/dist/frontend/lowering/lower-console.js +460 -4
- package/dist/frontend/lowering/lower-console.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +6 -0
- package/dist/frontend/lowering/lower-event-emitter.js +124 -38
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.js +137 -22
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.d.ts +15 -7
- package/dist/frontend/lowering/lower-generators.js +183 -99
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +8 -1
- package/dist/frontend/lowering/lower-inspect.js +119 -18
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +20 -14
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +4 -0
- package/dist/frontend/lowering/lower-stdlib.js +35 -1
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +66 -11
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +22 -1
- package/dist/frontend/lowering/lowerer.js +116 -8
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/regex-span-reads.d.ts +12 -0
- package/dist/frontend/lowering/regex-span-reads.js +164 -0
- package/dist/frontend/lowering/regex-span-reads.js.map +1 -0
- package/dist/frontend/lowering/surfaces.js +112 -10
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/var-hoisting.d.ts +3 -0
- package/dist/frontend/lowering/var-hoisting.js +261 -0
- package/dist/frontend/lowering/var-hoisting.js.map +1 -0
- package/dist/frontend/pipeline.js +5 -3
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/program.d.ts +3 -2
- package/dist/frontend/program.js +23 -5
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +13 -0
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +13 -1
- package/dist/frontend/type-mapper.js +146 -13
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ir/builtin-effects.js +29 -2
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +1 -1
- package/dist/ir/builtin-signatures.js +145 -15
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/function-references.test.js +1 -0
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/int32-slots.js +1 -0
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/intrinsic-signatures.js +2 -0
- package/dist/ir/intrinsic-signatures.js.map +1 -1
- package/dist/ir/ir.d.ts +65 -20
- package/dist/ir/ir.js +5 -0
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +1 -0
- package/dist/ir/runtime-features.js +35 -1
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/scalar-records.js +1 -2
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/validate.js +150 -25
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +65 -0
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/ir-policy.js +1 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/native/sanitizer.test.js +1 -0
- package/dist/native/sanitizer.test.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +159 -1
|
@@ -86,12 +86,14 @@ declare namespace NodeJS {
|
|
|
86
86
|
* util.inspect rendering — so the parameters are unknown[], like stock
|
|
87
87
|
* lib's console; values inspect cannot render statically (functions inside
|
|
88
88
|
* composites, class hierarchies, `any`) fence per argument with a hint.
|
|
89
|
+
* assert, count/countReset, dir/dirxml, group/groupCollapsed/groupEnd,
|
|
90
|
+
* table, time/timeEnd/timeLog, clear, and the inspector-only
|
|
91
|
+
* profile/profileEnd/timeStamp lower on the global console.
|
|
89
92
|
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
* tsc cannot reproduce. */
|
|
93
|
+
* trace is declared too — not because it lowers, but so a program that
|
|
94
|
+
* typechecks under its own tsc reaches the per-site SC2020 fence naming
|
|
95
|
+
* the member and the supported surface, instead of dying on a
|
|
96
|
+
* fallback-manufactured type error its own tsc cannot reproduce. */
|
|
95
97
|
declare const console: {
|
|
96
98
|
log(...args: unknown[]): void;
|
|
97
99
|
info(...args: unknown[]): void;
|
|
@@ -112,13 +114,15 @@ declare const console: {
|
|
|
112
114
|
timeEnd(label?: string): void;
|
|
113
115
|
timeLog(label?: string, ...data: unknown[]): void;
|
|
114
116
|
timeStamp(label?: string): void;
|
|
117
|
+
profile(label?: string): void;
|
|
118
|
+
profileEnd(label?: string): void;
|
|
115
119
|
trace(...data: unknown[]): void;
|
|
116
120
|
Console: typeof import("node:console").Console;
|
|
117
121
|
};
|
|
118
122
|
|
|
119
123
|
// node:console exports the global instance's bound methods and the Console
|
|
120
124
|
// constructor: instances over process.stdout/process.stderr or node:stream
|
|
121
|
-
// writables lower their log/info/debug/error/warn members;
|
|
125
|
+
// writables lower their log/info/debug/error/warn members; their remaining
|
|
122
126
|
// methods are declared so unsupported uses reach named fences.
|
|
123
127
|
type ScriptcConsoleMethods = typeof console;
|
|
124
128
|
declare module "node:console" {
|
|
@@ -145,6 +149,8 @@ declare module "node:console" {
|
|
|
145
149
|
export const timeEnd: ScriptcConsoleMethods["timeEnd"];
|
|
146
150
|
export const timeLog: ScriptcConsoleMethods["timeLog"];
|
|
147
151
|
export const timeStamp: ScriptcConsoleMethods["timeStamp"];
|
|
152
|
+
export const profile: ScriptcConsoleMethods["profile"];
|
|
153
|
+
export const profileEnd: ScriptcConsoleMethods["profileEnd"];
|
|
148
154
|
export const trace: ScriptcConsoleMethods["trace"];
|
|
149
155
|
const defaultConsole: ScriptcConsoleMethods & { Console: typeof Console };
|
|
150
156
|
export default defaultConsole;
|
|
@@ -229,6 +235,10 @@ declare var process: {
|
|
|
229
235
|
env: { [name: string]: string | undefined };
|
|
230
236
|
/** Numeric writes set the status returned by ordinary program exit. */
|
|
231
237
|
exitCode?: number;
|
|
238
|
+
/* Silence and throw DeprecationWarnings (util.deprecate,
|
|
239
|
+
* process.emitWarning); undefined until assigned. */
|
|
240
|
+
noDeprecation?: boolean;
|
|
241
|
+
throwDeprecation?: boolean;
|
|
232
242
|
/* `never`, like @types/node: code behind an early-exit guard narrows
|
|
233
243
|
* (`if (!x) process.exit(1)` proves x afterwards) — typed `void` the
|
|
234
244
|
* guard narrows nothing and correct programs fail preflight. The
|
|
@@ -1594,6 +1604,27 @@ declare module "path" {
|
|
|
1594
1604
|
export function isAbsolute(path: string): boolean;
|
|
1595
1605
|
export function relative(from: string, to: string): string;
|
|
1596
1606
|
export function toNamespacedPath(path: string): string;
|
|
1607
|
+
/* matchesGlob() is Node's glob matcher: brace expansion, extglobs, POSIX
|
|
1608
|
+
* classes and the ** and dot rules. */
|
|
1609
|
+
export function matchesGlob(path: string, pattern: string): boolean;
|
|
1610
|
+
/* parse() splits a path into its root, directory, base, extension and
|
|
1611
|
+
* name; format() joins those fields back (Node's `||` defaults). */
|
|
1612
|
+
export interface ParsedPath {
|
|
1613
|
+
root: string;
|
|
1614
|
+
dir: string;
|
|
1615
|
+
base: string;
|
|
1616
|
+
ext: string;
|
|
1617
|
+
name: string;
|
|
1618
|
+
}
|
|
1619
|
+
export interface FormatInputPathObject {
|
|
1620
|
+
root?: string | undefined;
|
|
1621
|
+
dir?: string | undefined;
|
|
1622
|
+
base?: string | undefined;
|
|
1623
|
+
ext?: string | undefined;
|
|
1624
|
+
name?: string | undefined;
|
|
1625
|
+
}
|
|
1626
|
+
export function parse(path: string): ParsedPath;
|
|
1627
|
+
export function format(pathObject: FormatInputPathObject): string;
|
|
1597
1628
|
/* The union @types/node declares: the bare module answers the TARGET
|
|
1598
1629
|
* platform's value (a compile-time constant — "\\"/";" under a win32
|
|
1599
1630
|
* triple, "/"/":" everywhere else). */
|
|
@@ -1619,6 +1650,9 @@ declare module "path/posix" {
|
|
|
1619
1650
|
export function isAbsolute(path: string): boolean;
|
|
1620
1651
|
export function relative(from: string, to: string): string;
|
|
1621
1652
|
export function toNamespacedPath(path: string): string;
|
|
1653
|
+
export function matchesGlob(path: string, pattern: string): boolean;
|
|
1654
|
+
export function parse(path: string): import("path").ParsedPath;
|
|
1655
|
+
export function format(pathObject: import("path").FormatInputPathObject): string;
|
|
1622
1656
|
export const sep: "/";
|
|
1623
1657
|
export const delimiter: ":";
|
|
1624
1658
|
}
|
|
@@ -1635,6 +1669,9 @@ declare module "path/win32" {
|
|
|
1635
1669
|
export function isAbsolute(path: string): boolean;
|
|
1636
1670
|
export function relative(from: string, to: string): string;
|
|
1637
1671
|
export function toNamespacedPath(path: string): string;
|
|
1672
|
+
export function matchesGlob(path: string, pattern: string): boolean;
|
|
1673
|
+
export function parse(path: string): import("path").ParsedPath;
|
|
1674
|
+
export function format(pathObject: import("path").FormatInputPathObject): string;
|
|
1638
1675
|
export const sep: "\\";
|
|
1639
1676
|
export const delimiter: ";";
|
|
1640
1677
|
}
|
|
@@ -1692,6 +1729,237 @@ declare module "os" {
|
|
|
1692
1729
|
}
|
|
1693
1730
|
export type NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6;
|
|
1694
1731
|
export function networkInterfaces(): { [name: string]: NetworkInterfaceInfo[] | undefined };
|
|
1732
|
+
/* Host facts, libuv's answers: model/speed/times per logical CPU, the
|
|
1733
|
+
* host name, the 1/5/15-minute load averages, uptime in seconds, free
|
|
1734
|
+
* memory in bytes, process.arch, uname's machine and version fields,
|
|
1735
|
+
* the byte order, and a process's scheduling priority (an omitted pid
|
|
1736
|
+
* is the current process). Shapes mirror @types/node's. */
|
|
1737
|
+
export interface CpuInfo {
|
|
1738
|
+
model: string;
|
|
1739
|
+
speed: number;
|
|
1740
|
+
times: {
|
|
1741
|
+
user: number;
|
|
1742
|
+
nice: number;
|
|
1743
|
+
sys: number;
|
|
1744
|
+
idle: number;
|
|
1745
|
+
irq: number;
|
|
1746
|
+
};
|
|
1747
|
+
}
|
|
1748
|
+
export function cpus(): CpuInfo[];
|
|
1749
|
+
export function hostname(): string;
|
|
1750
|
+
export function loadavg(): number[];
|
|
1751
|
+
export function uptime(): number;
|
|
1752
|
+
export function freemem(): number;
|
|
1753
|
+
export function arch(): string;
|
|
1754
|
+
export function machine(): string;
|
|
1755
|
+
export function version(): string;
|
|
1756
|
+
export function endianness(): "BE" | "LE";
|
|
1757
|
+
export function getPriority(pid?: number): number;
|
|
1758
|
+
/* The TARGET platform's null device ("\\\\.\\nul" under a win32 triple). */
|
|
1759
|
+
export const devNull: string;
|
|
1760
|
+
/* The platform's constants: null-prototype objects with read-only
|
|
1761
|
+
* members, `signals` frozen (Node's internalBinding('constants').os). */
|
|
1762
|
+
export type SignalConstants = {
|
|
1763
|
+
[
|
|
1764
|
+
key in
|
|
1765
|
+
| "SIGABRT"
|
|
1766
|
+
| "SIGALRM"
|
|
1767
|
+
| "SIGBUS"
|
|
1768
|
+
| "SIGCHLD"
|
|
1769
|
+
| "SIGCONT"
|
|
1770
|
+
| "SIGFPE"
|
|
1771
|
+
| "SIGHUP"
|
|
1772
|
+
| "SIGILL"
|
|
1773
|
+
| "SIGINT"
|
|
1774
|
+
| "SIGIO"
|
|
1775
|
+
| "SIGIOT"
|
|
1776
|
+
| "SIGKILL"
|
|
1777
|
+
| "SIGPIPE"
|
|
1778
|
+
| "SIGPOLL"
|
|
1779
|
+
| "SIGPROF"
|
|
1780
|
+
| "SIGPWR"
|
|
1781
|
+
| "SIGQUIT"
|
|
1782
|
+
| "SIGSEGV"
|
|
1783
|
+
| "SIGSTKFLT"
|
|
1784
|
+
| "SIGSTOP"
|
|
1785
|
+
| "SIGSYS"
|
|
1786
|
+
| "SIGTERM"
|
|
1787
|
+
| "SIGTRAP"
|
|
1788
|
+
| "SIGTSTP"
|
|
1789
|
+
| "SIGTTIN"
|
|
1790
|
+
| "SIGTTOU"
|
|
1791
|
+
| "SIGUNUSED"
|
|
1792
|
+
| "SIGURG"
|
|
1793
|
+
| "SIGUSR1"
|
|
1794
|
+
| "SIGUSR2"
|
|
1795
|
+
| "SIGVTALRM"
|
|
1796
|
+
| "SIGWINCH"
|
|
1797
|
+
| "SIGXCPU"
|
|
1798
|
+
| "SIGXFSZ"
|
|
1799
|
+
| "SIGBREAK"
|
|
1800
|
+
| "SIGLOST"
|
|
1801
|
+
| "SIGINFO"
|
|
1802
|
+
]: number;
|
|
1803
|
+
};
|
|
1804
|
+
export namespace constants {
|
|
1805
|
+
const UV_UDP_REUSEADDR: number;
|
|
1806
|
+
namespace signals {}
|
|
1807
|
+
const signals: SignalConstants;
|
|
1808
|
+
namespace errno {
|
|
1809
|
+
const E2BIG: number;
|
|
1810
|
+
const EACCES: number;
|
|
1811
|
+
const EADDRINUSE: number;
|
|
1812
|
+
const EADDRNOTAVAIL: number;
|
|
1813
|
+
const EAFNOSUPPORT: number;
|
|
1814
|
+
const EAGAIN: number;
|
|
1815
|
+
const EALREADY: number;
|
|
1816
|
+
const EBADF: number;
|
|
1817
|
+
const EBADMSG: number;
|
|
1818
|
+
const EBUSY: number;
|
|
1819
|
+
const ECANCELED: number;
|
|
1820
|
+
const ECHILD: number;
|
|
1821
|
+
const ECONNABORTED: number;
|
|
1822
|
+
const ECONNREFUSED: number;
|
|
1823
|
+
const ECONNRESET: number;
|
|
1824
|
+
const EDEADLK: number;
|
|
1825
|
+
const EDESTADDRREQ: number;
|
|
1826
|
+
const EDOM: number;
|
|
1827
|
+
const EDQUOT: number;
|
|
1828
|
+
const EEXIST: number;
|
|
1829
|
+
const EFAULT: number;
|
|
1830
|
+
const EFBIG: number;
|
|
1831
|
+
const EHOSTUNREACH: number;
|
|
1832
|
+
const EIDRM: number;
|
|
1833
|
+
const EILSEQ: number;
|
|
1834
|
+
const EINPROGRESS: number;
|
|
1835
|
+
const EINTR: number;
|
|
1836
|
+
const EINVAL: number;
|
|
1837
|
+
const EIO: number;
|
|
1838
|
+
const EISCONN: number;
|
|
1839
|
+
const EISDIR: number;
|
|
1840
|
+
const ELOOP: number;
|
|
1841
|
+
const EMFILE: number;
|
|
1842
|
+
const EMLINK: number;
|
|
1843
|
+
const EMSGSIZE: number;
|
|
1844
|
+
const EMULTIHOP: number;
|
|
1845
|
+
const ENAMETOOLONG: number;
|
|
1846
|
+
const ENETDOWN: number;
|
|
1847
|
+
const ENETRESET: number;
|
|
1848
|
+
const ENETUNREACH: number;
|
|
1849
|
+
const ENFILE: number;
|
|
1850
|
+
const ENOBUFS: number;
|
|
1851
|
+
const ENODATA: number;
|
|
1852
|
+
const ENODEV: number;
|
|
1853
|
+
const ENOENT: number;
|
|
1854
|
+
const ENOEXEC: number;
|
|
1855
|
+
const ENOLCK: number;
|
|
1856
|
+
const ENOLINK: number;
|
|
1857
|
+
const ENOMEM: number;
|
|
1858
|
+
const ENOMSG: number;
|
|
1859
|
+
const ENOPROTOOPT: number;
|
|
1860
|
+
const ENOSPC: number;
|
|
1861
|
+
const ENOSR: number;
|
|
1862
|
+
const ENOSTR: number;
|
|
1863
|
+
const ENOSYS: number;
|
|
1864
|
+
const ENOTCONN: number;
|
|
1865
|
+
const ENOTDIR: number;
|
|
1866
|
+
const ENOTEMPTY: number;
|
|
1867
|
+
const ENOTSOCK: number;
|
|
1868
|
+
const ENOTSUP: number;
|
|
1869
|
+
const ENOTTY: number;
|
|
1870
|
+
const ENXIO: number;
|
|
1871
|
+
const EOPNOTSUPP: number;
|
|
1872
|
+
const EOVERFLOW: number;
|
|
1873
|
+
const EPERM: number;
|
|
1874
|
+
const EPIPE: number;
|
|
1875
|
+
const EPROTO: number;
|
|
1876
|
+
const EPROTONOSUPPORT: number;
|
|
1877
|
+
const EPROTOTYPE: number;
|
|
1878
|
+
const ERANGE: number;
|
|
1879
|
+
const EROFS: number;
|
|
1880
|
+
const ESPIPE: number;
|
|
1881
|
+
const ESRCH: number;
|
|
1882
|
+
const ESTALE: number;
|
|
1883
|
+
const ETIME: number;
|
|
1884
|
+
const ETIMEDOUT: number;
|
|
1885
|
+
const ETXTBSY: number;
|
|
1886
|
+
const EWOULDBLOCK: number;
|
|
1887
|
+
const EXDEV: number;
|
|
1888
|
+
const WSAEINTR: number;
|
|
1889
|
+
const WSAEBADF: number;
|
|
1890
|
+
const WSAEACCES: number;
|
|
1891
|
+
const WSAEFAULT: number;
|
|
1892
|
+
const WSAEINVAL: number;
|
|
1893
|
+
const WSAEMFILE: number;
|
|
1894
|
+
const WSAEWOULDBLOCK: number;
|
|
1895
|
+
const WSAEINPROGRESS: number;
|
|
1896
|
+
const WSAEALREADY: number;
|
|
1897
|
+
const WSAENOTSOCK: number;
|
|
1898
|
+
const WSAEDESTADDRREQ: number;
|
|
1899
|
+
const WSAEMSGSIZE: number;
|
|
1900
|
+
const WSAEPROTOTYPE: number;
|
|
1901
|
+
const WSAENOPROTOOPT: number;
|
|
1902
|
+
const WSAEPROTONOSUPPORT: number;
|
|
1903
|
+
const WSAESOCKTNOSUPPORT: number;
|
|
1904
|
+
const WSAEOPNOTSUPP: number;
|
|
1905
|
+
const WSAEPFNOSUPPORT: number;
|
|
1906
|
+
const WSAEAFNOSUPPORT: number;
|
|
1907
|
+
const WSAEADDRINUSE: number;
|
|
1908
|
+
const WSAEADDRNOTAVAIL: number;
|
|
1909
|
+
const WSAENETDOWN: number;
|
|
1910
|
+
const WSAENETUNREACH: number;
|
|
1911
|
+
const WSAENETRESET: number;
|
|
1912
|
+
const WSAECONNABORTED: number;
|
|
1913
|
+
const WSAECONNRESET: number;
|
|
1914
|
+
const WSAENOBUFS: number;
|
|
1915
|
+
const WSAEISCONN: number;
|
|
1916
|
+
const WSAENOTCONN: number;
|
|
1917
|
+
const WSAESHUTDOWN: number;
|
|
1918
|
+
const WSAETOOMANYREFS: number;
|
|
1919
|
+
const WSAETIMEDOUT: number;
|
|
1920
|
+
const WSAECONNREFUSED: number;
|
|
1921
|
+
const WSAELOOP: number;
|
|
1922
|
+
const WSAENAMETOOLONG: number;
|
|
1923
|
+
const WSAEHOSTDOWN: number;
|
|
1924
|
+
const WSAEHOSTUNREACH: number;
|
|
1925
|
+
const WSAENOTEMPTY: number;
|
|
1926
|
+
const WSAEPROCLIM: number;
|
|
1927
|
+
const WSAEUSERS: number;
|
|
1928
|
+
const WSAEDQUOT: number;
|
|
1929
|
+
const WSAESTALE: number;
|
|
1930
|
+
const WSAEREMOTE: number;
|
|
1931
|
+
const WSASYSNOTREADY: number;
|
|
1932
|
+
const WSAVERNOTSUPPORTED: number;
|
|
1933
|
+
const WSANOTINITIALISED: number;
|
|
1934
|
+
const WSAEDISCON: number;
|
|
1935
|
+
const WSAENOMORE: number;
|
|
1936
|
+
const WSAECANCELLED: number;
|
|
1937
|
+
const WSAEINVALIDPROCTABLE: number;
|
|
1938
|
+
const WSAEINVALIDPROVIDER: number;
|
|
1939
|
+
const WSAEPROVIDERFAILEDINIT: number;
|
|
1940
|
+
const WSASYSCALLFAILURE: number;
|
|
1941
|
+
const WSASERVICE_NOT_FOUND: number;
|
|
1942
|
+
const WSATYPE_NOT_FOUND: number;
|
|
1943
|
+
const WSA_E_NO_MORE: number;
|
|
1944
|
+
const WSA_E_CANCELLED: number;
|
|
1945
|
+
const WSAEREFUSED: number;
|
|
1946
|
+
}
|
|
1947
|
+
namespace dlopen {
|
|
1948
|
+
const RTLD_LAZY: number;
|
|
1949
|
+
const RTLD_NOW: number;
|
|
1950
|
+
const RTLD_GLOBAL: number;
|
|
1951
|
+
const RTLD_LOCAL: number;
|
|
1952
|
+
const RTLD_DEEPBIND: number;
|
|
1953
|
+
}
|
|
1954
|
+
namespace priority {
|
|
1955
|
+
const PRIORITY_LOW: number;
|
|
1956
|
+
const PRIORITY_BELOW_NORMAL: number;
|
|
1957
|
+
const PRIORITY_NORMAL: number;
|
|
1958
|
+
const PRIORITY_ABOVE_NORMAL: number;
|
|
1959
|
+
const PRIORITY_HIGH: number;
|
|
1960
|
+
const PRIORITY_HIGHEST: number;
|
|
1961
|
+
}
|
|
1962
|
+
}
|
|
1695
1963
|
}
|
|
1696
1964
|
declare module "node:os" {
|
|
1697
1965
|
export * from "os";
|
|
@@ -2191,6 +2459,60 @@ declare module "util" {
|
|
|
2191
2459
|
options?: { validateStream?: boolean; stream?: unknown },
|
|
2192
2460
|
): string;
|
|
2193
2461
|
export function parseEnv(content: string): { [key: string]: string | undefined };
|
|
2462
|
+
export function inherits(constructor: unknown, superConstructor: unknown): void;
|
|
2463
|
+
export interface DeprecateOptions {
|
|
2464
|
+
modifyPrototype?: boolean;
|
|
2465
|
+
}
|
|
2466
|
+
export function deprecate<T extends Function>(
|
|
2467
|
+
fn: T,
|
|
2468
|
+
msg: string,
|
|
2469
|
+
code?: string,
|
|
2470
|
+
options?: DeprecateOptions,
|
|
2471
|
+
): T;
|
|
2472
|
+
/* The callback receives null on success and the rejection reason
|
|
2473
|
+
* otherwise (falsy reasons arrive as ERR_FALSY_VALUE_REJECTION). */
|
|
2474
|
+
export function callbackify(
|
|
2475
|
+
fn: () => Promise<void>,
|
|
2476
|
+
): (callback: (err: NodeJS.ErrnoException | null) => void) => void;
|
|
2477
|
+
export function callbackify<TResult>(
|
|
2478
|
+
fn: () => Promise<TResult>,
|
|
2479
|
+
): (callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
|
|
2480
|
+
export function callbackify<T1>(
|
|
2481
|
+
fn: (arg1: T1) => Promise<void>,
|
|
2482
|
+
): (arg1: T1, callback: (err: NodeJS.ErrnoException | null) => void) => void;
|
|
2483
|
+
export function callbackify<T1, TResult>(
|
|
2484
|
+
fn: (arg1: T1) => Promise<TResult>,
|
|
2485
|
+
): (arg1: T1, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
|
|
2486
|
+
export function callbackify<T1, T2>(
|
|
2487
|
+
fn: (arg1: T1, arg2: T2) => Promise<void>,
|
|
2488
|
+
): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null) => void) => void;
|
|
2489
|
+
export function callbackify<T1, T2, TResult>(
|
|
2490
|
+
fn: (arg1: T1, arg2: T2) => Promise<TResult>,
|
|
2491
|
+
): (
|
|
2492
|
+
arg1: T1,
|
|
2493
|
+
arg2: T2,
|
|
2494
|
+
callback: (err: NodeJS.ErrnoException | null, result: TResult) => void,
|
|
2495
|
+
) => void;
|
|
2496
|
+
export function callbackify<T1, T2, T3>(
|
|
2497
|
+
fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<void>,
|
|
2498
|
+
): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null) => void) => void;
|
|
2499
|
+
export function callbackify<T1, T2, T3, TResult>(
|
|
2500
|
+
fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>,
|
|
2501
|
+
): (
|
|
2502
|
+
arg1: T1,
|
|
2503
|
+
arg2: T2,
|
|
2504
|
+
arg3: T3,
|
|
2505
|
+
callback: (err: NodeJS.ErrnoException | null, result: TResult) => void,
|
|
2506
|
+
) => void;
|
|
2507
|
+
export type DebugLoggerFunction = (msg: string, ...param: unknown[]) => void;
|
|
2508
|
+
export interface DebugLogger extends DebugLoggerFunction {
|
|
2509
|
+
enabled: boolean;
|
|
2510
|
+
}
|
|
2511
|
+
export function debuglog(
|
|
2512
|
+
section: string,
|
|
2513
|
+
callback?: (fn: DebugLoggerFunction) => void,
|
|
2514
|
+
): DebugLogger;
|
|
2515
|
+
export { debuglog as debug };
|
|
2194
2516
|
export type TextEncoder = globalThis.TextEncoder;
|
|
2195
2517
|
export type TextDecoder = globalThis.TextDecoder;
|
|
2196
2518
|
export var TextEncoder: typeof globalThis.TextEncoder;
|
|
@@ -4210,16 +4532,20 @@ declare module "events" {
|
|
|
4210
4532
|
class EventEmitter {
|
|
4211
4533
|
constructor();
|
|
4212
4534
|
static defaultMaxListeners: number;
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
|
|
4222
|
-
|
|
4535
|
+
/* Listeners registered under this symbol observe 'error' emits first
|
|
4536
|
+
* (an emit with no 'error' listener still throws). */
|
|
4537
|
+
static readonly errorMonitor: unique symbol;
|
|
4538
|
+
static addAbortListener(signal: AbortSignal, listener: (event: Event) => void): Disposable;
|
|
4539
|
+
on(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
4540
|
+
addListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
4541
|
+
once(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
4542
|
+
prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
4543
|
+
prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
4544
|
+
off(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
4545
|
+
removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
4546
|
+
removeAllListeners(eventName?: string | symbol): this;
|
|
4547
|
+
emit(eventName: string | symbol, ...args: any[]): boolean;
|
|
4548
|
+
listenerCount(eventName: string | symbol, listener?: (...args: any[]) => void): number;
|
|
4223
4549
|
/* Declared as zero-parameter closures so the RESULT is statically
|
|
4224
4550
|
* consumable (.length, indexing, identity): the lowering only admits
|
|
4225
4551
|
* these calls for events whose argument tuple is empty — a listener
|
|
@@ -11,6 +11,7 @@ export function executableLinkFeatures(mod) {
|
|
|
11
11
|
textDecoderLegacy: features.legacyTextDecoder,
|
|
12
12
|
fileHandle: features.fileHandle,
|
|
13
13
|
fetch: features.fetch,
|
|
14
|
+
...(features.eventTarget ? { eventTarget: true } : {}),
|
|
14
15
|
zlib: features.zlib,
|
|
15
16
|
assert: features.assert,
|
|
16
17
|
inspect: features.inspect,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executable-features.js","sourceRoot":"","sources":["../../src/backend/executable-features.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAiB,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,MAAM,UAAU,sBAAsB,CAAC,GAAa;IAClD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,MAAM,EAAE,QAAQ,CAAC,aAAa;QAC9B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,OAAO;QACvB,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACvD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"executable-features.js","sourceRoot":"","sources":["../../src/backend/executable-features.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAiB,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,MAAM,UAAU,sBAAsB,CAAC,GAAa;IAClD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,MAAM,EAAE,QAAQ,CAAC,aAAa;QAC9B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,OAAO;QACvB,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACvD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAC;AACJ,CAAC"}
|
|
@@ -3,6 +3,13 @@ export { unsignedHex } from "../format-integer.js";
|
|
|
3
3
|
export declare function octalByte(value: number): string;
|
|
4
4
|
/** LLVM byte-string contents, without quotes or the c prefix. */
|
|
5
5
|
export declare function llvmBytes(bytes: Uint8Array, nulTerminated?: boolean): string;
|
|
6
|
+
/** Whether a JS string holds a lone UTF-16 surrogate. */
|
|
7
|
+
export declare function hasLoneSurrogate(text: string): boolean;
|
|
8
|
+
/** A JS string's bytes in the runtime's string storage: UTF-8, with each
|
|
9
|
+
* lone surrogate as its generalized 3-byte encoding (WTF-8). A lone
|
|
10
|
+
* surrogate takes as many bytes as the U+FFFD that Buffer's UTF-8 encoder
|
|
11
|
+
* substitutes, so `Buffer.byteLength(text, "utf8")` is also this length. */
|
|
12
|
+
export declare function wtf8Bytes(text: string): Uint8Array;
|
|
6
13
|
/** Metadata operands use the same UTF-8 escapes, without a trailing NUL. */
|
|
7
14
|
export declare function llvmQuoted(text: string): string;
|
|
8
15
|
/** Escape UTF-16 source-control units without combining surrogate pairs. */
|
package/dist/backend/literals.js
CHANGED
|
@@ -16,6 +16,38 @@ export function llvmBytes(bytes, nulTerminated = true) {
|
|
|
16
16
|
}
|
|
17
17
|
return nulTerminated ? out + "\\00" : out;
|
|
18
18
|
}
|
|
19
|
+
const LONE_SURROGATE = /\p{Cs}/u;
|
|
20
|
+
/** Whether a JS string holds a lone UTF-16 surrogate. */
|
|
21
|
+
export function hasLoneSurrogate(text) {
|
|
22
|
+
return LONE_SURROGATE.test(text);
|
|
23
|
+
}
|
|
24
|
+
/** A JS string's bytes in the runtime's string storage: UTF-8, with each
|
|
25
|
+
* lone surrogate as its generalized 3-byte encoding (WTF-8). A lone
|
|
26
|
+
* surrogate takes as many bytes as the U+FFFD that Buffer's UTF-8 encoder
|
|
27
|
+
* substitutes, so `Buffer.byteLength(text, "utf8")` is also this length. */
|
|
28
|
+
export function wtf8Bytes(text) {
|
|
29
|
+
const bytes = Buffer.from(text, "utf8");
|
|
30
|
+
if (!hasLoneSurrogate(text))
|
|
31
|
+
return bytes;
|
|
32
|
+
let at = 0;
|
|
33
|
+
for (let i = 0; i < text.length; i++) {
|
|
34
|
+
const code = text.codePointAt(i);
|
|
35
|
+
if (code >= 0x10000) {
|
|
36
|
+
i++;
|
|
37
|
+
at += 4;
|
|
38
|
+
}
|
|
39
|
+
else if (code >= 0xd800 && code <= 0xdfff) {
|
|
40
|
+
bytes[at] = 0xed;
|
|
41
|
+
bytes[at + 1] = 0x80 | ((code >> 6) & 0x3f);
|
|
42
|
+
bytes[at + 2] = 0x80 | (code & 0x3f);
|
|
43
|
+
at += 3;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
at += code < 0x80 ? 1 : code < 0x800 ? 2 : 3;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return bytes;
|
|
50
|
+
}
|
|
19
51
|
/** Metadata operands use the same UTF-8 escapes, without a trailing NUL. */
|
|
20
52
|
export function llvmQuoted(text) {
|
|
21
53
|
return '"' + llvmBytes(Buffer.from(text, "utf8"), false) + '"';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literals.js","sourceRoot":"","sources":["../../src/backend/literals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,+EAA+E;AAC/E,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC;IAC1B,OAAO,CACL,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAC/F,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,SAAS,CAAC,KAAiB,EAAE,aAAa,GAAG,IAAI;IAC/D,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,GAAG;YACD,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;gBAC3D,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;gBAC3B,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;AACjE,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACxF,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACzE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"literals.js","sourceRoot":"","sources":["../../src/backend/literals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { expect, test } from "vitest";
|
|
2
|
-
import { commentText, llvmBytes, llvmQuoted, octalByte, unsignedHex } from "./literals.js";
|
|
2
|
+
import { commentText, hasLoneSurrogate, llvmBytes, llvmQuoted, octalByte, unsignedHex, wtf8Bytes, } from "./literals.js";
|
|
3
3
|
import { f64Lit, llvmCommentText } from "./llvm/common.js";
|
|
4
4
|
import { mangleFunction, mangleLocal } from "./mangle.js";
|
|
5
5
|
test("integer escaping agrees with JavaScript across all UTF-16 code units", () => {
|
|
@@ -75,4 +75,20 @@ test("double spelling preserves every bit, including signed zero and subnormals"
|
|
|
75
75
|
expect(f64Lit(number)).toBe("0x" + bytes.toString("hex").toUpperCase());
|
|
76
76
|
}
|
|
77
77
|
});
|
|
78
|
+
test("string storage bytes keep lone surrogates as WTF-8 and pairs as UTF-8", () => {
|
|
79
|
+
const hex = (text) => Buffer.from(wtf8Bytes(text)).toString("hex");
|
|
80
|
+
expect(hex("")).toBe("");
|
|
81
|
+
expect(hex("é日😀")).toBe(Buffer.from("é日😀").toString("hex"));
|
|
82
|
+
expect(hex("\ud800")).toBe("eda080");
|
|
83
|
+
expect(hex("\udfff")).toBe("edbfbf");
|
|
84
|
+
expect(hex("a\ud83d\ude00b")).toBe("61f09f988062");
|
|
85
|
+
expect(hex("\ude00\ud83d")).toBe("edb880eda0bd");
|
|
86
|
+
expect(hex("\ud83d😀\ud7ff")).toBe("eda0bdf09f9880ed9fbf");
|
|
87
|
+
for (const text of ["\ud800", "x\udc00y", "\ud83d\ud83d", "😀\ude00"]) {
|
|
88
|
+
expect(hasLoneSurrogate(text)).toBe(true);
|
|
89
|
+
expect(wtf8Bytes(text).length).toBe(Buffer.byteLength(text, "utf8"));
|
|
90
|
+
}
|
|
91
|
+
for (const text of ["", "plain", "😀", "\ud7ff\ue000"])
|
|
92
|
+
expect(hasLoneSurrogate(text)).toBe(false);
|
|
93
|
+
});
|
|
78
94
|
//# sourceMappingURL=literals.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literals.test.js","sourceRoot":"","sources":["../../src/backend/literals.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"literals.test.js","sourceRoot":"","sources":["../../src/backend/literals.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,10 @@ export interface AllocHost {
|
|
|
12
12
|
* (worker executables). */
|
|
13
13
|
readonly threadLocalAlloc?: boolean;
|
|
14
14
|
}
|
|
15
|
+
/** Worker executables: the calling script thread's ScrThreadHot block into
|
|
16
|
+
* `dest`. Its address also identifies the thread (the owner word of a
|
|
17
|
+
* lifetime-region chunk; llvm/regions.ts). */
|
|
18
|
+
export declare function threadHotAddressLines(host: AllocHost, dest: string): string[];
|
|
15
19
|
/** Whether a target can use the inline allocation paths. */
|
|
16
20
|
export declare function inlineAllocSupported(options: {
|
|
17
21
|
pointerBits?: 32 | 64 | undefined;
|
|
@@ -19,6 +23,12 @@ export declare function inlineAllocSupported(options: {
|
|
|
19
23
|
targetTriple?: string | undefined;
|
|
20
24
|
threadInstances?: boolean | undefined;
|
|
21
25
|
}): boolean;
|
|
26
|
+
/** sizeof(ScrCycHdr): the descriptor's i16 registry id, i8 color and
|
|
27
|
+
* generation, and an i32 `buf` whose sign bit marks a buffered candidate
|
|
28
|
+
* (scr_runtime.h asserts the offsets). */
|
|
29
|
+
export declare const CYC_HDR = 8;
|
|
30
|
+
/** ScrCycHdr.buf, an i32 at this header offset. */
|
|
31
|
+
export declare const CYC_BUF = 4;
|
|
22
32
|
/** A collector header to install: the object type's constant ScrCycType
|
|
23
33
|
* descriptor (its trace and teardown; see cycTypeDescriptor). */
|
|
24
34
|
export interface CycHeader {
|
|
@@ -29,10 +39,11 @@ export interface CycHeader {
|
|
|
29
39
|
* (SCR_CYC_KIND_EMITTED in scr_runtime.h). */
|
|
30
40
|
export declare const FIRST_EMITTED_CYC_KIND = 32;
|
|
31
41
|
/** The definition of a shape's ScrCycType descriptor `{ trace, free_fn,
|
|
32
|
-
* kind }`,
|
|
33
|
-
* collector's per-type statistics (scr_runtime.h);
|
|
34
|
-
* themselves from FIRST_EMITTED_CYC_KIND
|
|
35
|
-
* keeps none.
|
|
42
|
+
* kind, id }`, named by every header of that shape through its registry
|
|
43
|
+
* id. `kind` indexes the collector's per-type statistics (scr_runtime.h);
|
|
44
|
+
* emitted shapes number themselves from FIRST_EMITTED_CYC_KIND
|
|
45
|
+
* (ShapeHost.nextCycKind) and 0 keeps none. The runtime assigns `id` on the
|
|
46
|
+
* first allocation, so the descriptor is writable. */
|
|
36
47
|
export declare function cycTypeDescriptor(name: string, trace: string, free: string, kind?: number): string;
|
|
37
48
|
/**
|
|
38
49
|
* Lines that leave a zeroed object of `size` bytes (an integer constant
|