zod-compiler 1.6.0 → 1.7.0
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/README.md +2 -1
- package/dist/cli/commands/generate.js +1 -1
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/watch.js +1 -1
- package/dist/cli/commands/watch.js.map +1 -1
- package/dist/core/codegen/context.d.ts +27 -0
- package/dist/core/codegen/context.d.ts.map +1 -1
- package/dist/core/codegen/context.js.map +1 -1
- package/dist/core/codegen/fast-path.d.ts +22 -2
- package/dist/core/codegen/fast-path.d.ts.map +1 -1
- package/dist/core/codegen/fast-path.js +63 -3
- package/dist/core/codegen/fast-path.js.map +1 -1
- package/dist/core/codegen/fast-size.d.ts +55 -0
- package/dist/core/codegen/fast-size.d.ts.map +1 -0
- package/dist/core/codegen/fast-size.js +152 -0
- package/dist/core/codegen/fast-size.js.map +1 -0
- package/dist/core/codegen/index.d.ts.map +1 -1
- package/dist/core/codegen/index.js +26 -1
- package/dist/core/codegen/index.js.map +1 -1
- package/dist/core/codegen/schemas/array.d.ts.map +1 -1
- package/dist/core/codegen/schemas/array.js +3 -2
- package/dist/core/codegen/schemas/array.js.map +1 -1
- package/dist/core/codegen/schemas/discriminated-union.d.ts.map +1 -1
- package/dist/core/codegen/schemas/discriminated-union.js +5 -1
- package/dist/core/codegen/schemas/discriminated-union.js.map +1 -1
- package/dist/core/codegen/schemas/map.d.ts.map +1 -1
- package/dist/core/codegen/schemas/map.js +6 -3
- package/dist/core/codegen/schemas/map.js.map +1 -1
- package/dist/core/codegen/schemas/record.d.ts.map +1 -1
- package/dist/core/codegen/schemas/record.js +5 -2
- package/dist/core/codegen/schemas/record.js.map +1 -1
- package/dist/core/codegen/schemas/set.d.ts.map +1 -1
- package/dist/core/codegen/schemas/set.js +3 -2
- package/dist/core/codegen/schemas/set.js.map +1 -1
- package/dist/core/codegen/schemas/tuple.d.ts.map +1 -1
- package/dist/core/codegen/schemas/tuple.js +4 -2
- package/dist/core/codegen/schemas/tuple.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -536,6 +536,7 @@ compiles; `z.string().transform((s) => s + suffix)` falls back (it captures
|
|
|
536
536
|
| large object (100 items) | 13K | 18K | **1.4M** | 1.3M | 126K | **77x** |
|
|
537
537
|
| recursive tree (7 nodes) | 579K | 2.0M | **11.2M** | 10.9M | 4.6M | 5.5x |
|
|
538
538
|
| recursive tree (121 nodes) | 32K | 140K | **2.3M** | 1.9M | 352K | **17x** |
|
|
539
|
+
| deeply nested object (243 leaves) | 11K | 19K | **1.2M** | 1.1M | 123K | **61x** |
|
|
539
540
|
| event log (combined) | 374K | 580K | **5.6M** | — | — | 9.6x |
|
|
540
541
|
| object with transform (zero-capture) | 1.2M | 1.9M | **6.2M** | — | — | 3.2x |
|
|
541
542
|
| array 10 × transform (zero-capture) | 123K | 216K | **3.2M** | — | — | **15x** |
|
|
@@ -544,7 +545,7 @@ compiles; `z.string().transform((s) => s + suffix)` falls back (it captures
|
|
|
544
545
|
|
|
545
546
|
_ops/s, higher is better. "—" = not supported by the library. Measured with `vitest bench` on Apple M4 Max (zod 4.3.6, zod v3 3.23.8, typia 12, ajv 8)._
|
|
546
547
|
|
|
547
|
-
Performance scales with schema complexity. Nested objects and arrays see the biggest gains because zod-compiler eliminates per-node traversal overhead. `discriminatedUnion` uses O(1) `switch` dispatch instead of Zod's sequential trial. The invalid-input row is large because failed `safeParse` defers error materialization until `.error` is read. Zero-capture `transform`/`refine` callbacks are compiled (3-19x); schemas with captured callbacks fall back per-field and roughly match Zod.
|
|
548
|
+
Performance scales with schema complexity. Nested objects and arrays see the biggest gains because zod-compiler eliminates per-node traversal overhead. Deeply nested schemas (the 243-leaf dashboard row) stay fast because oversized fast-check functions are split into smaller boolean helpers, each kept within V8's optimizing-compiler budget. `discriminatedUnion` uses O(1) `switch` dispatch instead of Zod's sequential trial. The invalid-input row is large because failed `safeParse` defers error materialization until `.error` is read. Zero-capture `transform`/`refine` callbacks are compiled (3-19x); schemas with captured callbacks fall back per-field and roughly match Zod.
|
|
548
549
|
|
|
549
550
|
`parse()` (throwing API) rides a zero-allocation fast path: medium object 2.4M → 9.6M ops/s (4.0x), large object (100 items) 18K → 1.4M ops/s (78x).
|
|
550
551
|
|
|
@@ -133,7 +133,7 @@ export async function runGenerate(options) {
|
|
|
133
133
|
logger.warn("No Zod schemas exported from any source file.");
|
|
134
134
|
}
|
|
135
135
|
else {
|
|
136
|
-
logger.warn("No compile() calls found in any source file. Use --auto
|
|
136
|
+
logger.warn("No compile() calls found in any source file. Use --schemas auto to scan plain Zod exports.");
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,7 +92,7 @@ export async function runWatch(options, deps = defaultWatchDeps) {
|
|
|
92
92
|
logger.warn("No Zod schemas exported from any source file.");
|
|
93
93
|
}
|
|
94
94
|
else {
|
|
95
|
-
logger.warn("No compile() calls found in any source file. Use --auto
|
|
95
|
+
logger.warn("No compile() calls found in any source file. Use --schemas auto to scan plain Zod exports.");
|
|
96
96
|
}
|
|
97
97
|
// Set up file watching
|
|
98
98
|
const watchDirs = resolveWatchDirs(options.inputs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/cli/commands/watch.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/cli/commands/watch.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,8 @@ export interface CodeGenContext {
|
|
|
51
51
|
recFastName?: string;
|
|
52
52
|
/** Dedup cache for hosted zero-capture effect functions: source text → preamble var. */
|
|
53
53
|
effectFnCache?: Map<string, string>;
|
|
54
|
+
/** Memo for estimateFastCost (size-gated fast-check extraction). Lazily created. */
|
|
55
|
+
fastSizeCache?: WeakMap<SchemaIR, number>;
|
|
54
56
|
/**
|
|
55
57
|
* File-level shared slow-walk plan. Set only when generating a mutation-free
|
|
56
58
|
* schema (so shared walks stay on the deferred cold path); the slow-path
|
|
@@ -93,10 +95,27 @@ export interface SlowGen {
|
|
|
93
95
|
}
|
|
94
96
|
/** Slow-path generator function signature — registered in slowRegistry. */
|
|
95
97
|
export type SlowGenerator<T extends SchemaIR = SchemaIR> = (ir: T, g: SlowGen) => string;
|
|
98
|
+
/**
|
|
99
|
+
* Per-emitted-function size accumulator for size-gated fast-check extraction.
|
|
100
|
+
* Shared by every node inlined into the same function; a fresh instance starts
|
|
101
|
+
* each hosted helper (and the root). See fast-size.ts / generateFast.
|
|
102
|
+
*/
|
|
103
|
+
export interface FastScope {
|
|
104
|
+
used: number;
|
|
105
|
+
}
|
|
96
106
|
/** Context object for fast-path (boolean expression) generator functions. */
|
|
97
107
|
export interface FastGen {
|
|
98
108
|
readonly input: string;
|
|
99
109
|
readonly ctx: CodeGenContext;
|
|
110
|
+
/**
|
|
111
|
+
* Whether the CURRENT node may be hoisted into its own boolean helper when it
|
|
112
|
+
* (with the already-emitted siblings) would overflow the function size cap.
|
|
113
|
+
* False for the root and for a helper's own top node — those are already their
|
|
114
|
+
* own function — but their children are extractable. See generateFast.
|
|
115
|
+
*/
|
|
116
|
+
readonly extractable: boolean;
|
|
117
|
+
/** Accumulated size (≈ chars) of the function currently being assembled. */
|
|
118
|
+
readonly scope: FastScope;
|
|
100
119
|
/**
|
|
101
120
|
* Recursively generate fast-check expression for a child IR node.
|
|
102
121
|
* Returns null if any child is ineligible for fast path.
|
|
@@ -104,6 +123,14 @@ export interface FastGen {
|
|
|
104
123
|
visit(ir: SchemaIR, overrides?: {
|
|
105
124
|
input?: string;
|
|
106
125
|
}): string | null;
|
|
126
|
+
/**
|
|
127
|
+
* A FastGen for emitting a SEPARATE function body (a hand-built preamble
|
|
128
|
+
* helper such as a discriminated-union switch or an array-element loop). It
|
|
129
|
+
* carries a FRESH size accumulator, so the helper's own content is size-gated
|
|
130
|
+
* against the cap independently of the caller — without this, a helper's body
|
|
131
|
+
* accrues to the caller's scope while the helper itself grows unbounded.
|
|
132
|
+
*/
|
|
133
|
+
scoped(input: string): FastGen;
|
|
107
134
|
/** Generate a unique temp variable name. */
|
|
108
135
|
temp(prefix: string): string;
|
|
109
136
|
/** Add a regex to preamble and return the variable name. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,31 @@
|
|
|
7
7
|
* default, transform, or other non-pure constructs).
|
|
8
8
|
*/
|
|
9
9
|
import type { SchemaIR } from "../types.js";
|
|
10
|
-
import type { CodeGenContext, FastGen } from "./context.js";
|
|
11
|
-
|
|
10
|
+
import type { CodeGenContext, FastGen, FastScope } from "./context.js";
|
|
11
|
+
/**
|
|
12
|
+
* @param inputExpr the input expression this node validates
|
|
13
|
+
* @param ctx shared codegen context
|
|
14
|
+
* @param extractable whether THIS node may be hoisted (false for the root and a
|
|
15
|
+
* helper's own top node — see generateFast); children are always extractable
|
|
16
|
+
* @param scope size accumulator for the function being assembled (a child
|
|
17
|
+
* visit shares the parent's scope; a hoisted helper body gets a fresh one)
|
|
18
|
+
*/
|
|
19
|
+
export declare function createFastGen(inputExpr: string, ctx: CodeGenContext, extractable?: boolean, scope?: FastScope): FastGen;
|
|
12
20
|
/**
|
|
13
21
|
* Generate a boolean expression string that validates input against the schema.
|
|
14
22
|
* Returns `null` if the schema (or any nested part) is not eligible for fast checking.
|
|
23
|
+
*
|
|
24
|
+
* Size-gated extraction: when inlining `ir` would push the function being
|
|
25
|
+
* assembled past EXTRACT_CAP, it is hoisted into its own boolean helper
|
|
26
|
+
* `function __fo_N(p){return <expr over p>;}` and replaced by a call. This keeps
|
|
27
|
+
* every emitted function under V8's TurboFan optimization budget — a single
|
|
28
|
+
* giant fast-check otherwise drops to the slower Maglev tier (measured ~3-4.5x
|
|
29
|
+
* on deeply-nested schemas). The running total `g.scope.used` is EXACT emitted
|
|
30
|
+
* chars (the returned string's length); only the extract look-ahead is an
|
|
31
|
+
* estimate, scaled for access-path length. Small schemas never approach the
|
|
32
|
+
* cap, so their output is byte-identical to the fully-inlined form; large
|
|
33
|
+
* aggregates do split (still semantically identical — only the boolean's shape
|
|
34
|
+
* changes).
|
|
15
35
|
*/
|
|
16
36
|
export declare function generateFast(ir: SchemaIR, g: FastGen): string | null;
|
|
17
37
|
//# sourceMappingURL=fast-path.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fast-path.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/fast-path.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAiB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"fast-path.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/fast-path.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAiB,SAAS,EAAE,MAAM,cAAc,CAAC;AAiGtF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,EACnB,WAAW,UAAQ,EACnB,KAAK,GAAE,SAAuB,GAC7B,OAAO,CAcT;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAoCpE"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* default, transform, or other non-pure constructs).
|
|
8
8
|
*/
|
|
9
9
|
import { emitRegex, emitTemp } from "./context.js";
|
|
10
|
+
import { CALL_COST, EXTRACT_CAP, estimateFastCost, HOISTABLE, MIN_EXTRACT, predictedInlineSize, } from "./fast-size.js";
|
|
10
11
|
import { fastAny } from "./schemas/any.js";
|
|
11
12
|
import { fastArray } from "./schemas/array.js";
|
|
12
13
|
import { fastBigInt } from "./schemas/bigint.js";
|
|
@@ -88,13 +89,25 @@ const fastRegistry = {
|
|
|
88
89
|
stringBool: null, // statically ineligible — output type (boolean) differs from input (string)
|
|
89
90
|
};
|
|
90
91
|
// ─── Factory ─────────────────────────────────────────────────────────────────
|
|
91
|
-
|
|
92
|
+
/**
|
|
93
|
+
* @param inputExpr the input expression this node validates
|
|
94
|
+
* @param ctx shared codegen context
|
|
95
|
+
* @param extractable whether THIS node may be hoisted (false for the root and a
|
|
96
|
+
* helper's own top node — see generateFast); children are always extractable
|
|
97
|
+
* @param scope size accumulator for the function being assembled (a child
|
|
98
|
+
* visit shares the parent's scope; a hoisted helper body gets a fresh one)
|
|
99
|
+
*/
|
|
100
|
+
export function createFastGen(inputExpr, ctx, extractable = false, scope = { used: 0 }) {
|
|
92
101
|
return {
|
|
93
102
|
input: inputExpr,
|
|
94
103
|
ctx,
|
|
104
|
+
extractable,
|
|
105
|
+
scope,
|
|
95
106
|
visit(ir, overrides) {
|
|
96
|
-
|
|
107
|
+
// A child shares this function's scope and is itself extractable.
|
|
108
|
+
return generateFast(ir, createFastGen(overrides?.input ?? inputExpr, ctx, true, scope));
|
|
97
109
|
},
|
|
110
|
+
scoped: (input) => createFastGen(input, ctx, true, { used: 0 }),
|
|
98
111
|
temp: (prefix) => emitTemp(ctx, prefix),
|
|
99
112
|
regex: (prefix, pattern, flags) => emitRegex(ctx, prefix, pattern, flags),
|
|
100
113
|
};
|
|
@@ -103,12 +116,59 @@ export function createFastGen(inputExpr, ctx) {
|
|
|
103
116
|
/**
|
|
104
117
|
* Generate a boolean expression string that validates input against the schema.
|
|
105
118
|
* Returns `null` if the schema (or any nested part) is not eligible for fast checking.
|
|
119
|
+
*
|
|
120
|
+
* Size-gated extraction: when inlining `ir` would push the function being
|
|
121
|
+
* assembled past EXTRACT_CAP, it is hoisted into its own boolean helper
|
|
122
|
+
* `function __fo_N(p){return <expr over p>;}` and replaced by a call. This keeps
|
|
123
|
+
* every emitted function under V8's TurboFan optimization budget — a single
|
|
124
|
+
* giant fast-check otherwise drops to the slower Maglev tier (measured ~3-4.5x
|
|
125
|
+
* on deeply-nested schemas). The running total `g.scope.used` is EXACT emitted
|
|
126
|
+
* chars (the returned string's length); only the extract look-ahead is an
|
|
127
|
+
* estimate, scaled for access-path length. Small schemas never approach the
|
|
128
|
+
* cap, so their output is byte-identical to the fully-inlined form; large
|
|
129
|
+
* aggregates do split (still semantically identical — only the boolean's shape
|
|
130
|
+
* changes).
|
|
106
131
|
*/
|
|
107
132
|
export function generateFast(ir, g) {
|
|
108
133
|
const gen = fastRegistry[ir.type];
|
|
109
134
|
if (gen === null)
|
|
110
135
|
return null;
|
|
136
|
+
if (g.extractable && HOISTABLE.has(ir.type)) {
|
|
137
|
+
const cache = fastSizeCache(g.ctx);
|
|
138
|
+
const overBudget = g.scope.used + predictedInlineSize(ir, g.input.length, cache) > EXTRACT_CAP;
|
|
139
|
+
// Extract a sub-schema big enough to be worth a call; but once the function
|
|
140
|
+
// is ALREADY over budget, extract any hoistable child regardless of size —
|
|
141
|
+
// otherwise a crowd of small siblings (e.g. a discriminated union of many
|
|
142
|
+
// small options) grows the function unbounded since none alone clears
|
|
143
|
+
// MIN_EXTRACT.
|
|
144
|
+
if (overBudget && (g.scope.used > EXTRACT_CAP || estimateFastCost(ir, cache) >= MIN_EXTRACT)) {
|
|
145
|
+
const param = emitTemp(g.ctx, "op");
|
|
146
|
+
// Generate the body relative to the helper's parameter, in a fresh scope;
|
|
147
|
+
// the top node is non-extractable (it IS this helper) while its children
|
|
148
|
+
// stay extractable, so an oversized helper splits further recursively.
|
|
149
|
+
const inner = generateFast(ir, createFastGen(param, g.ctx, false, { used: 0 }));
|
|
150
|
+
if (inner === null)
|
|
151
|
+
return null; // ineligible sub-schema disables the whole fast path
|
|
152
|
+
const fnName = emitTemp(g.ctx, "fo");
|
|
153
|
+
g.ctx.preamble.push(`function ${fnName}(${param}){return ${inner};}`);
|
|
154
|
+
g.scope.used += CALL_COST;
|
|
155
|
+
return `${fnName}(${g.input})`;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// Inlined: charge the enclosing function this node's EXACT emitted size. The
|
|
159
|
+
// node's own text plus its inlined descendants is exactly the returned string;
|
|
160
|
+
// children mutated the shared scope as they were visited, but the parent's
|
|
161
|
+
// length is authoritative, so overwrite rather than add.
|
|
162
|
+
const before = g.scope.used;
|
|
111
163
|
// oxlint-disable-next-line typescript/no-explicit-any -- registry dispatch requires type erasure at call site
|
|
112
|
-
|
|
164
|
+
const out = gen(ir, g);
|
|
165
|
+
if (out === null)
|
|
166
|
+
return null;
|
|
167
|
+
g.scope.used = before + out.length;
|
|
168
|
+
return out;
|
|
169
|
+
}
|
|
170
|
+
/** Per-compile memo for estimateFastCost, stashed on the shared context. */
|
|
171
|
+
function fastSizeCache(ctx) {
|
|
172
|
+
return (ctx.fastSizeCache ??= new WeakMap());
|
|
113
173
|
}
|
|
114
174
|
//# sourceMappingURL=fast-path.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fast-path.js","sourceRoot":"","sources":["../../../src/core/codegen/fast-path.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,+EAA+E;AAC/E,mEAAmE;AACnE,wGAAwG;AAExG,MAAM,YAAY,GAAG;IACnB,wDAAwD;IACxD,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,aAAa;IACxB,IAAI,EAAE,QAAQ;IACd,GAAG,EAAE,OAAO;IACZ,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,OAAO;IACZ,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,QAAQ;IACd,aAAa;IACb,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,QAAQ;IACd,yBAAyB;IACzB,KAAK,EAAE,SAAS;IAChB,kBAAkB,EAAE,sBAAsB;IAC1C,YAAY,EAAE,gBAAgB;IAC9B,YAAY;IACZ,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,QAAQ;IACd,UAAU;IACV,MAAM,EAAE,IAAI,EAAE,wBAAwB;IACtC,UAAU;IACV,eAAe,EAAE,mBAAmB;IACpC,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,IAAI,EAAE,wBAAwB;IACxC,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,IAAI,EAAE,4EAA4E;CAG/F,CAAC;AAEF,gFAAgF;AAEhF,MAAM,UAAU,aAAa,
|
|
1
|
+
{"version":3,"file":"fast-path.js","sourceRoot":"","sources":["../../../src/core/codegen/fast-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fast-path size estimation, used to bound the size of each emitted fast-check
|
|
3
|
+
* function. V8's TurboFan refuses to optimize functions whose bytecode exceeds
|
|
4
|
+
* ~60KB and falls back to the weaker Maglev tier — measured ~1.3-1.8x slower on
|
|
5
|
+
* deeply-nested schemas whose monolithic fast-check crosses that budget. By
|
|
6
|
+
* extracting large, self-contained sub-schemas into their own boolean helpers
|
|
7
|
+
* (`generateFast`), each function stays small enough to TurboFan.
|
|
8
|
+
*
|
|
9
|
+
* `estimateFastCost` is a path-agnostic subtree estimate in approximate
|
|
10
|
+
* generated-character units (it can't see the access-path prefix the node will
|
|
11
|
+
* be emitted under, since that lives in the call site, not the IR). The actual
|
|
12
|
+
* emitted size of an inlined node grows with that prefix length — `input["a"]
|
|
13
|
+
* ["b"]["c"]…` repeated per check — so the extraction decision scales the
|
|
14
|
+
* estimate by `1 + inputLen/PATH_GROWTH_DIVISOR` (see `predictedInlineSize`).
|
|
15
|
+
* The accumulator itself (generateFast) tracks EXACT emitted chars via the
|
|
16
|
+
* returned string length, so only the look-ahead prediction is approximate.
|
|
17
|
+
*/
|
|
18
|
+
import type { SchemaIR } from "../types.js";
|
|
19
|
+
/**
|
|
20
|
+
* Per-function soft size cap, in emitted characters. Once the fast-check being
|
|
21
|
+
* assembled would exceed this, the next large hoistable sub-schema is split into
|
|
22
|
+
* its own helper. Set below the ~60KB bytecode point where TurboFan bails (chars
|
|
23
|
+
* over-approximate bytecode) with margin for one look-ahead mis-prediction.
|
|
24
|
+
*/
|
|
25
|
+
export declare const EXTRACT_CAP = 38000;
|
|
26
|
+
/**
|
|
27
|
+
* Predicted emitted size of inlining `ir` at a call site whose input expression
|
|
28
|
+
* is `inputLen` chars long — the path-agnostic subtree estimate scaled up for
|
|
29
|
+
* the access-path prefix that estimate omits. Used only for the extract/inline
|
|
30
|
+
* decision; the running total uses exact emitted lengths.
|
|
31
|
+
*/
|
|
32
|
+
export declare function predictedInlineSize(ir: SchemaIR, inputLen: number, cache: WeakMap<SchemaIR, number>): number;
|
|
33
|
+
/**
|
|
34
|
+
* Floor for extraction: never hoist a sub-schema smaller than this even when
|
|
35
|
+
* the enclosing function is over the cap — a tiny helper trades a real call for
|
|
36
|
+
* no optimization benefit. Only sub-schemas big enough to matter are split.
|
|
37
|
+
*/
|
|
38
|
+
export declare const MIN_EXTRACT = 1200;
|
|
39
|
+
/** Approximate size contributed to the enclosing function by an extracted call `__fo_N(expr)`. */
|
|
40
|
+
export declare const CALL_COST = 24;
|
|
41
|
+
/**
|
|
42
|
+
* Node types whose fast-check is a self-contained boolean over a single input
|
|
43
|
+
* expression and large enough to be worth hoisting into `function f(p){return …}`.
|
|
44
|
+
* Thin wrappers (optional/nullable/default/…) are omitted: their inner schema is
|
|
45
|
+
* visited through `generateFast` and gets hoisted on its own when large.
|
|
46
|
+
*/
|
|
47
|
+
export declare const HOISTABLE: ReadonlySet<SchemaIR["type"]>;
|
|
48
|
+
/**
|
|
49
|
+
* Estimated total size of a node's fast-check (the node plus everything inlined
|
|
50
|
+
* beneath it). Memoized per IR node: schemas dedupe shared sub-trees and the
|
|
51
|
+
* estimate is consulted at every nesting level, so without the cache a deep tree
|
|
52
|
+
* would be re-walked quadratically.
|
|
53
|
+
*/
|
|
54
|
+
export declare function estimateFastCost(ir: SchemaIR, cache: WeakMap<SchemaIR, number>): number;
|
|
55
|
+
//# sourceMappingURL=fast-size.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fast-size.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/fast-size.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAS,CAAC;AAWlC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,GAC/B,MAAM,CAER;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,OAAQ,CAAC;AAEjC,kGAAkG;AAClG,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAOlD,CAAC;AA0EH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,CASvF"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fast-path size estimation, used to bound the size of each emitted fast-check
|
|
3
|
+
* function. V8's TurboFan refuses to optimize functions whose bytecode exceeds
|
|
4
|
+
* ~60KB and falls back to the weaker Maglev tier — measured ~1.3-1.8x slower on
|
|
5
|
+
* deeply-nested schemas whose monolithic fast-check crosses that budget. By
|
|
6
|
+
* extracting large, self-contained sub-schemas into their own boolean helpers
|
|
7
|
+
* (`generateFast`), each function stays small enough to TurboFan.
|
|
8
|
+
*
|
|
9
|
+
* `estimateFastCost` is a path-agnostic subtree estimate in approximate
|
|
10
|
+
* generated-character units (it can't see the access-path prefix the node will
|
|
11
|
+
* be emitted under, since that lives in the call site, not the IR). The actual
|
|
12
|
+
* emitted size of an inlined node grows with that prefix length — `input["a"]
|
|
13
|
+
* ["b"]["c"]…` repeated per check — so the extraction decision scales the
|
|
14
|
+
* estimate by `1 + inputLen/PATH_GROWTH_DIVISOR` (see `predictedInlineSize`).
|
|
15
|
+
* The accumulator itself (generateFast) tracks EXACT emitted chars via the
|
|
16
|
+
* returned string length, so only the look-ahead prediction is approximate.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Per-function soft size cap, in emitted characters. Once the fast-check being
|
|
20
|
+
* assembled would exceed this, the next large hoistable sub-schema is split into
|
|
21
|
+
* its own helper. Set below the ~60KB bytecode point where TurboFan bails (chars
|
|
22
|
+
* over-approximate bytecode) with margin for one look-ahead mis-prediction.
|
|
23
|
+
*/
|
|
24
|
+
export const EXTRACT_CAP = 38_000;
|
|
25
|
+
/**
|
|
26
|
+
* Each nesting level lengthens every access path inside a node (`x["a"]` →
|
|
27
|
+
* `x["a"]["b"]`), inflating real emitted chars above the path-agnostic estimate.
|
|
28
|
+
* The extraction look-ahead multiplies the estimate by `1 + inputLen/this` so a
|
|
29
|
+
* deep subtree is split before it inlines into an over-budget function. Smaller
|
|
30
|
+
* ⇒ more eager splitting at depth. Calibrated against deeply-nested fixtures.
|
|
31
|
+
*/
|
|
32
|
+
const PATH_GROWTH_DIVISOR = 26;
|
|
33
|
+
/**
|
|
34
|
+
* Predicted emitted size of inlining `ir` at a call site whose input expression
|
|
35
|
+
* is `inputLen` chars long — the path-agnostic subtree estimate scaled up for
|
|
36
|
+
* the access-path prefix that estimate omits. Used only for the extract/inline
|
|
37
|
+
* decision; the running total uses exact emitted lengths.
|
|
38
|
+
*/
|
|
39
|
+
export function predictedInlineSize(ir, inputLen, cache) {
|
|
40
|
+
return estimateFastCost(ir, cache) * (1 + inputLen / PATH_GROWTH_DIVISOR);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Floor for extraction: never hoist a sub-schema smaller than this even when
|
|
44
|
+
* the enclosing function is over the cap — a tiny helper trades a real call for
|
|
45
|
+
* no optimization benefit. Only sub-schemas big enough to matter are split.
|
|
46
|
+
*/
|
|
47
|
+
export const MIN_EXTRACT = 1_200;
|
|
48
|
+
/** Approximate size contributed to the enclosing function by an extracted call `__fo_N(expr)`. */
|
|
49
|
+
export const CALL_COST = 24;
|
|
50
|
+
/**
|
|
51
|
+
* Node types whose fast-check is a self-contained boolean over a single input
|
|
52
|
+
* expression and large enough to be worth hoisting into `function f(p){return …}`.
|
|
53
|
+
* Thin wrappers (optional/nullable/default/…) are omitted: their inner schema is
|
|
54
|
+
* visited through `generateFast` and gets hoisted on its own when large.
|
|
55
|
+
*/
|
|
56
|
+
export const HOISTABLE = new Set([
|
|
57
|
+
"object",
|
|
58
|
+
"record",
|
|
59
|
+
"tuple",
|
|
60
|
+
"discriminatedUnion",
|
|
61
|
+
"union",
|
|
62
|
+
"intersection",
|
|
63
|
+
]);
|
|
64
|
+
/** A node's own contribution to the emitted fast-check, EXCLUDING its children. */
|
|
65
|
+
function shallowFastCost(ir) {
|
|
66
|
+
switch (ir.type) {
|
|
67
|
+
case "object":
|
|
68
|
+
return 50 + Object.keys(ir.properties).length * 25 + (ir.strict ? 120 : 0);
|
|
69
|
+
case "string":
|
|
70
|
+
return 20 + ir.checks.length * 35;
|
|
71
|
+
case "number":
|
|
72
|
+
return 25 + ir.checks.length * 30;
|
|
73
|
+
case "bigint":
|
|
74
|
+
case "date":
|
|
75
|
+
return 25 + (ir.checks?.length ?? 0) * 25;
|
|
76
|
+
case "enum":
|
|
77
|
+
return 15 + ir.values.length * 12;
|
|
78
|
+
case "tuple":
|
|
79
|
+
return 40 + ir.items.length * 15;
|
|
80
|
+
case "union":
|
|
81
|
+
return 12 + ir.options.length * 6;
|
|
82
|
+
case "discriminatedUnion":
|
|
83
|
+
return 45 + ir.cases.length * 12;
|
|
84
|
+
case "array":
|
|
85
|
+
case "record":
|
|
86
|
+
case "set":
|
|
87
|
+
case "map":
|
|
88
|
+
return 55;
|
|
89
|
+
case "file":
|
|
90
|
+
case "templateLiteral":
|
|
91
|
+
return 40;
|
|
92
|
+
case "literal":
|
|
93
|
+
case "optional":
|
|
94
|
+
case "nullable":
|
|
95
|
+
case "default":
|
|
96
|
+
return 22;
|
|
97
|
+
case "recursiveRef":
|
|
98
|
+
return 15;
|
|
99
|
+
default:
|
|
100
|
+
return 18;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/** Child IR nodes that the fast generator recurses into (mirrors the fast schema generators). */
|
|
104
|
+
function fastChildren(ir) {
|
|
105
|
+
switch (ir.type) {
|
|
106
|
+
case "object":
|
|
107
|
+
return Object.values(ir.properties);
|
|
108
|
+
case "array":
|
|
109
|
+
return [ir.element];
|
|
110
|
+
case "tuple":
|
|
111
|
+
return ir.rest !== null ? [...ir.items, ir.rest] : ir.items;
|
|
112
|
+
case "record":
|
|
113
|
+
case "map":
|
|
114
|
+
return [ir.keyType, ir.valueType];
|
|
115
|
+
case "set":
|
|
116
|
+
return [ir.valueType];
|
|
117
|
+
case "union":
|
|
118
|
+
case "discriminatedUnion":
|
|
119
|
+
return ir.options;
|
|
120
|
+
case "intersection":
|
|
121
|
+
return [ir.left, ir.right];
|
|
122
|
+
case "pipe":
|
|
123
|
+
return [ir.in, ir.out];
|
|
124
|
+
case "optional":
|
|
125
|
+
case "nullable":
|
|
126
|
+
case "readonly":
|
|
127
|
+
case "default":
|
|
128
|
+
case "catch":
|
|
129
|
+
return [ir.inner];
|
|
130
|
+
default:
|
|
131
|
+
return [];
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Estimated total size of a node's fast-check (the node plus everything inlined
|
|
136
|
+
* beneath it). Memoized per IR node: schemas dedupe shared sub-trees and the
|
|
137
|
+
* estimate is consulted at every nesting level, so without the cache a deep tree
|
|
138
|
+
* would be re-walked quadratically.
|
|
139
|
+
*/
|
|
140
|
+
export function estimateFastCost(ir, cache) {
|
|
141
|
+
const cached = cache.get(ir);
|
|
142
|
+
if (cached !== undefined)
|
|
143
|
+
return cached;
|
|
144
|
+
// Defensive cycle break (the IR is a tree today; recursiveRef is a leaf).
|
|
145
|
+
cache.set(ir, 0);
|
|
146
|
+
let total = shallowFastCost(ir);
|
|
147
|
+
for (const child of fastChildren(ir))
|
|
148
|
+
total += estimateFastCost(child, cache);
|
|
149
|
+
cache.set(ir, total);
|
|
150
|
+
return total;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=fast-size.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fast-size.js","sourceRoot":"","sources":["../../../src/core/codegen/fast-size.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAkB,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,gBAAgB,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,wBAAwB,GACjC,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAkB,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,gBAAgB,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,wBAAwB,GACjC,aAAa,CA+Lf"}
|
|
@@ -44,9 +44,34 @@ export function generateValidator(ir, name, options) {
|
|
|
44
44
|
fastTotal: false,
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
|
-
// Fast Path: generate a boolean expression for eligible schemas
|
|
47
|
+
// Fast Path: generate a boolean expression for eligible schemas.
|
|
48
|
+
//
|
|
49
|
+
// generateFast mutates ctx as it walks (extracted __fo_ helpers + regex/effect
|
|
50
|
+
// decls pushed to the preamble, a recursive __fcr_ name reserved, dedup caches
|
|
51
|
+
// populated). The walk is all-or-nothing: a later fast-ineligible node makes it
|
|
52
|
+
// return null AFTER those side effects already landed. Without a rollback the
|
|
53
|
+
// discarded fast path leaves dead __fo_ helpers in the output — and, when one
|
|
54
|
+
// referenced the recursive __fcr_ host that the `fastExpr !== null` branch below
|
|
55
|
+
// never emits, a dangling reference to an undefined identifier. Snapshot the
|
|
56
|
+
// mutable state and restore it on abort so the slow path re-declares from clean.
|
|
57
|
+
const fastPreambleLen = ctx.preamble.length;
|
|
58
|
+
const fastRegexCache = new Map(ctx.regexCache);
|
|
59
|
+
const fastEffectCache = ctx.effectFnCache && new Map(ctx.effectFnCache);
|
|
60
|
+
const fastRecName = ctx.recFastName;
|
|
48
61
|
const fg = createFastGen("input", ctx);
|
|
49
62
|
let fastExpr = generateFast(ir, fg);
|
|
63
|
+
if (fastExpr === null) {
|
|
64
|
+
ctx.preamble.length = fastPreambleLen;
|
|
65
|
+
ctx.regexCache = fastRegexCache;
|
|
66
|
+
if (fastEffectCache === undefined)
|
|
67
|
+
delete ctx.effectFnCache;
|
|
68
|
+
else
|
|
69
|
+
ctx.effectFnCache = fastEffectCache;
|
|
70
|
+
if (fastRecName === undefined)
|
|
71
|
+
delete ctx.recFastName;
|
|
72
|
+
else
|
|
73
|
+
ctx.recFastName = fastRecName;
|
|
74
|
+
}
|
|
50
75
|
// Host the fast expression in a named boolean helper. Self-recursive
|
|
51
76
|
// schemas need it so recursive refs can call it; every other eligible
|
|
52
77
|
// schema benefits too: __zcMkv wires it into parse()/parseAsync(), whose
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/codegen/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAe7D;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAY,EACZ,IAAY,EACZ,OAAkC;IAElC,MAAM,MAAM,GAAG,aAAa,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,GAAgB,OAAO,EAAE,IAAI,IAAI,QAAQ,CAAC;IACpD,MAAM,GAAG,GAAmB;QAC1B,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,CAAC;QACV,MAAM;QACN,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,IAAI;QACJ,WAAW,EAAE,IAAI,GAAG,EAAE;KACvB,CAAC;IAEF,yEAAyE;IACzE,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAI,OAAO,EAAE,aAAa,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC5C,CAAC;IAED,uEAAuE;IACvE,wEAAwE;IACxE,uEAAuE;IACvE,0EAA0E;IAC1E,wEAAwE;IACxE,wDAAwD;IACxD,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;QAClD,OAAO;YACL,IAAI,EAAE,CAAC,oBAAoB,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACxD,WAAW,EAAE,YAAY,MAAM,kBAAkB,QAAQ,WAAW;YACpE,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC;YAChC,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/codegen/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAW,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAMtD,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CA+C9E;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAW,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAMtD,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CA+C9E;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAyChE"}
|
|
@@ -65,9 +65,10 @@ export function fastArray(ir, g) {
|
|
|
65
65
|
break;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
// Element validation via preamble helper (avoids .every() closure allocation)
|
|
68
|
+
// Element validation via preamble helper (avoids .every() closure allocation).
|
|
69
|
+
// Fresh scope: the helper is its own function, size-gated independently.
|
|
69
70
|
const elemVar = g.temp("ae");
|
|
70
|
-
const elemCheck = g.visit(ir.element
|
|
71
|
+
const elemCheck = g.scoped(elemVar).visit(ir.element);
|
|
71
72
|
if (elemCheck === null)
|
|
72
73
|
return null;
|
|
73
74
|
if (elemCheck !== "true") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/array.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/array.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discriminated-union.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/discriminated-union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKtD,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,EAC7C,CAAC,EAAE,OAAO,GACT,MAAM,CA2BR;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"discriminated-union.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/discriminated-union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKtD,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,EAC7C,CAAC,EAAE,OAAO,GACT,MAAM,CA2BR;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAyB1F"}
|
|
@@ -32,9 +32,13 @@ export function fastDiscriminatedUnion(ir, g) {
|
|
|
32
32
|
const helperName = g.temp("du");
|
|
33
33
|
const helperParam = g.temp("dx");
|
|
34
34
|
const cases = [];
|
|
35
|
+
// The switch body is its own function: size-gate the options against the cap
|
|
36
|
+
// in a fresh scope, otherwise many small options accumulate into the caller's
|
|
37
|
+
// scope while this helper itself grows unbounded past the TurboFan budget.
|
|
38
|
+
const body = g.scoped(helperParam);
|
|
35
39
|
for (const { value, option: index } of ir.cases) {
|
|
36
40
|
const option = ir.options[index];
|
|
37
|
-
const check =
|
|
41
|
+
const check = body.visit(option);
|
|
38
42
|
if (check === null)
|
|
39
43
|
return null;
|
|
40
44
|
cases.push(`case ${literalToJs(value)}:return ${check};`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discriminated-union.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/discriminated-union.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,sBAAsB,CACpC,EAA6C,EAC7C,CAAU;IAEV,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAE/C,IAAI,IAAI,GAAG,IAAI,CAAA;gBACD,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,KAAK,0BAA0B,CAAC,CAAC,KAAK;QACvE,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC;WACrB,CAAC;IAEV,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,OAAO,MAAM,IAAI,CAAC,CAAC,KAAK,WAAW,MAAM,IAAI,OAAO,KAAK,CAAC;IAElE,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAa,CAAC;QAC7C,IAAI,IAAI,IAAI,CAAA;aACH,WAAW,CAAC,KAAK,CAAC;UACrB,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;eAC7C,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACvF,IAAI,IAAI,IAAI,CAAA;;QAEN,CAAC,CAAC,MAAM,wFAAwF,OAAO,aAAa,WAAW,IAAI,OAAO,UAAU,CAAC,CAAC,KAAK,SAAS,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC;;IAEnM,CAAC;IACH,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EAAwB,EAAE,CAAU;IACzE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAClB,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAE/C,+DAA+D;IAC/D,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAa,CAAC;QAC7C,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"discriminated-union.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/discriminated-union.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKtD,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAuB1E;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKtD,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAuB1E;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAwB5D"}
|
|
@@ -27,12 +27,15 @@ export function slowMap(ir, g) {
|
|
|
27
27
|
export function fastMap(ir, g) {
|
|
28
28
|
const x = g.input;
|
|
29
29
|
const parts = [`${x} instanceof Map`];
|
|
30
|
-
// Key/value validation via preamble helper (Map has no .every())
|
|
30
|
+
// Key/value validation via preamble helper (Map has no .every()).
|
|
31
|
+
// Key + value share one fresh scope — same emitted helper, size-gated
|
|
32
|
+
// independently of the caller.
|
|
31
33
|
const entryVar = g.temp("me");
|
|
32
|
-
const
|
|
34
|
+
const body = g.scoped(`${entryVar}[0]`);
|
|
35
|
+
const keyCheck = body.visit(ir.keyType, { input: `${entryVar}[0]` });
|
|
33
36
|
if (keyCheck === null)
|
|
34
37
|
return null;
|
|
35
|
-
const valCheck =
|
|
38
|
+
const valCheck = body.visit(ir.valueType, { input: `${entryVar}[1]` });
|
|
36
39
|
if (valCheck === null)
|
|
37
40
|
return null;
|
|
38
41
|
if (keyCheck !== "true" || valCheck !== "true") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/map.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,OAAO,CAAC,EAA8B,EAAE,CAAU;IAChE,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,6EAA6E;IAC7E,uEAAuE;IACvE,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAElD,OAAO,GAAG,IAAI,CAAA;WACL,CAAC,CAAC,KAAK;QACV,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC;;QAErB,OAAO,CAAC,CAAC,CAAC,OAAO,UAAU,aAAa,CAAC,CAAC,CAAC,EAAE;YACzC,MAAM;gBACF,QAAQ,OAAO,CAAC,CAAC,KAAK;UAC5B,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC;UACvH,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,EAAE,CAAC;UAC3H,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,QAAQ,QAAQ,OAAO,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE;UAClE,MAAM;;QAER,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE;;GAEhD,IAAI,CAAC;AACR,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAS,EAAE,CAAU;IAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAClB,MAAM,KAAK,GAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEhD,
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/map.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAMtD,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAoChF;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAMtD,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAoChF;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA0ClE"}
|
|
@@ -44,11 +44,14 @@ export function fastRecord(ir, g) {
|
|
|
44
44
|
const plainStringKey = ir.keyType.type === "string" && ir.keyType.checks.length === 0 && ir.keyType.coerce !== true;
|
|
45
45
|
const kv = g.temp("rk");
|
|
46
46
|
const vv = g.temp("rv");
|
|
47
|
-
|
|
47
|
+
// Key + value checks share one fresh scope — they live in the same emitted
|
|
48
|
+
// helper function, size-gated independently of the caller.
|
|
49
|
+
const body = g.scoped(kv);
|
|
50
|
+
const keyCheck = plainStringKey ? "true" : body.visit(ir.keyType, { input: kv });
|
|
48
51
|
// Hoist o[k] into a loop variable: computed-key lookups don't get V8's load
|
|
49
52
|
// elimination across check boundaries, so each repeated o[k] would re-walk
|
|
50
53
|
// the (often dictionary-mode) object.
|
|
51
|
-
const valCheck =
|
|
54
|
+
const valCheck = body.visit(ir.valueType, { input: vv });
|
|
52
55
|
if (keyCheck === null || valCheck === null)
|
|
53
56
|
return null;
|
|
54
57
|
const conditions = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/record.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/record.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKtD,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAsD1E;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKtD,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAsD1E;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAmC5D"}
|
|
@@ -73,9 +73,10 @@ export function fastSet(ir, g) {
|
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
// Element validation via preamble helper (Set has no .every())
|
|
76
|
+
// Element validation via preamble helper (Set has no .every()).
|
|
77
|
+
// Fresh scope: the helper is its own function, size-gated independently.
|
|
77
78
|
const elemVar = g.temp("sv");
|
|
78
|
-
const elemCheck = g.visit(ir.valueType
|
|
79
|
+
const elemCheck = g.scoped(elemVar).visit(ir.valueType);
|
|
79
80
|
if (elemCheck === null)
|
|
80
81
|
return null;
|
|
81
82
|
if (elemCheck !== "true") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/set.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/set.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/tuple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAmBtD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAiD9E;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"tuple.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/tuple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAmBtD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAiD9E;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAyChE"}
|
|
@@ -94,10 +94,12 @@ export function fastTuple(ir, g) {
|
|
|
94
94
|
if (itemCheck !== "true")
|
|
95
95
|
parts.push(itemCheck);
|
|
96
96
|
}
|
|
97
|
-
// Rest element validation via preamble helper (avoids .slice().every()
|
|
97
|
+
// Rest element validation via preamble helper (avoids .slice().every()
|
|
98
|
+
// allocation). Fresh scope: the helper is its own function, size-gated
|
|
99
|
+
// independently. (Fixed items above stay inline in the caller's && chain.)
|
|
98
100
|
if (ir.rest !== null) {
|
|
99
101
|
const rv = g.temp("tr");
|
|
100
|
-
const restCheck = g.visit(ir.rest
|
|
102
|
+
const restCheck = g.scoped(rv).visit(ir.rest);
|
|
101
103
|
if (restCheck === null)
|
|
102
104
|
return null;
|
|
103
105
|
if (restCheck !== "true") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/tuple.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tuple.js","sourceRoot":"","sources":["../../../../src/core/codegen/schemas/tuple.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zod-compiler",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "Compile Zod schemas into zero-overhead validation functions",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aot",
|
|
@@ -109,6 +109,7 @@
|
|
|
109
109
|
"@jridgewell/trace-mapping": "^0.3.31",
|
|
110
110
|
"@types/node": "catalog:",
|
|
111
111
|
"@types/picomatch": "^4.0.3",
|
|
112
|
+
"@vitest/coverage-v8": "4.1.4",
|
|
112
113
|
"knip": "^6.16.1",
|
|
113
114
|
"oxfmt": "^0.54.0",
|
|
114
115
|
"oxlint": "^1.69.0",
|