@kernlang/python 4.0.0 → 4.0.1-canary.224.1.1a92ac0a
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/dist/codegen-body-python.d.ts +13 -0
- package/dist/codegen-body-python.js +1140 -145
- package/dist/codegen-body-python.js.map +1 -1
- package/dist/core/emit-models.js +5 -1
- package/dist/core/emit-models.js.map +1 -1
- package/dist/core/expr/helpers.d.ts +45 -0
- package/dist/core/expr/helpers.js +509 -5
- package/dist/core/expr/helpers.js.map +1 -1
- package/dist/core/expr/index.d.ts +1 -1
- package/dist/core/expr/index.js +137 -9
- package/dist/core/expr/index.js.map +1 -1
- package/dist/core/expr/list-ops.d.ts +10 -1
- package/dist/core/expr/list-ops.js +5 -9
- package/dist/core/expr/list-ops.js.map +1 -1
- package/dist/generators/core.js +5 -1
- package/dist/generators/core.js.map +1 -1
- package/dist/generators/ground.d.ts +13 -0
- package/dist/generators/ground.js +117 -12
- package/dist/generators/ground.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/core/expr/helpers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,yBAAyB;IACzB,sEAAsE;IACtE,EAAE;IACF,qCAAqC;IACrC,qCAAqC;IACrC,sCAAsC;IACtC,4BAA4B;IAC5B,WAAW;IACX,6CAA6C;IAC7C,4BAA4B;CAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,MAAM;IACN,qBAAqB;IACrB,mBAAmB;IACnB,2BAA2B;IAC3B,gFAAgF;IAChF,gFAAgF;IAChF,6EAA6E;IAC7E,+EAA+E;IAC/E,0CAA0C;IAC1C,gDAAgD;IAChD,+CAA+C;IAC/C,wCAAwC;IACxC,EAAE;IACF,uBAAuB;IACvB,kCAAkC;IAClC,4BAA4B;IAC5B,uBAAuB;IACvB,uBAAuB;IACvB,iCAAiC;IACjC,6CAA6C;IAC7C,gCAAgC;IAChC,sBAAsB;IACtB,qDAAqD;IACrD,sBAAsB;IACtB,2EAA2E;IAC3E,6EAA6E;IAC7E,4DAA4D;IAC5D,2BAA2B;IAC3B,6DAA6D;IAC7D,4BAA4B;IAC5B,yDAAyD;IACzD,gCAAgC;IAChC,yCAAyC;IACzC,2BAA2B;IAC3B,0CAA0C;IAC1C,0BAA0B;IAC1B,uEAAuE;IACvE,4BAA4B;IAC5B,WAAW;IACX,iCAAiC;IACjC,kCAAkC;IAClC,uBAAuB;IACvB,EAAE;IACF,8BAA8B;IAC9B,8EAA8E;IAC9E,oFAAoF;IACpF,mFAAmF;IACnF,mGAAmG;IACnG,mDAAmD;IACnD,kBAAkB;IAClB,kCAAkC;IAClC,iCAAiC;IACjC,uBAAuB;IACvB,sBAAsB;IACtB,iCAAiC;IACjC,kCAAkC;IAClC,kBAAkB;IAClB,8EAA8E;IAC9E,6EAA6E;IAC7E,wEAAwE;IACxE,UAAU;IACV,yCAAyC;IACzC,uBAAuB;IACvB,mDAAmD;CACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,aAAa;IACb,cAAc;IACd,4BAA4B;IAC5B,UAAU;IACV,2CAA2C;IAC3C,kCAAkC;IAClC,uBAAuB;IACvB,cAAc;IACd,4BAA4B;IAC5B,iDAAiD;IACjD,wCAAwC;IACxC,2BAA2B;IAC3B,sBAAsB;IACtB,2DAA2D;CAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa;IACb,kBAAkB;IAClB,yBAAyB;IACzB,yBAAyB;IACzB,UAAU;IACV,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,6BAA6B;IAC7B,8DAA8D;IAC9D,4CAA4C;IAC5C,qCAAqC;IACrC,kCAAkC;IAClC,0CAA0C;CAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,mBAAmB;IACnB,8CAA8C;IAC9C,6DAA6D;IAC7D,qDAAqD;IACrD,iBAAiB;IACjB,sBAAsB;IACtB,mBAAmB;CACpB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,iCAAiC;IACjC,EAAE;IACF,MAAM;IACN,qBAAqB;IACrB,mBAAmB;IACnB,2BAA2B;IAC3B,0CAA0C;IAC1C,gDAAgD;IAChD,+CAA+C;IAC/C,wCAAwC;IACxC,EAAE;IACF,mCAAmC;IACnC,qCAAqC;IACrC,EAAE;IACF,6CAA6C;IAC7C,uBAAuB;IACvB,kBAAkB;IAClB,sCAAsC;IACtC,kBAAkB;IAClB,UAAU;IACV,8BAA8B;IAC9B,uBAAuB;IACvB,kBAAkB;IAClB,wBAAwB;IACxB,kBAAkB;IAClB,+BAA+B;IAC/B,6BAA6B;IAC7B,gCAAgC;IAChC,8BAA8B;IAC9B,uBAAuB;IACvB,EAAE;IACF,kDAAkD;IAClD,oCAAoC;IACpC,kBAAkB;IAClB,mCAAmC;IACnC,wBAAwB;IACxB,uBAAuB;IACvB,4CAA4C;IAC5C,oCAAoC;IACpC,EAAE;IACF,oFAAoF;IACpF,6BAA6B;IAC7B,0FAA0F;IAC1F,2EAA2E;IAC3E,yBAAyB;IACzB,WAAW;IACX,4FAA4F;IAC5F,iEAAiE;IACjE,qBAAqB;CACtB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,uCAAuC;IACvC,0BAA0B;IAC1B,0CAA0C;IAC1C,yDAAyD;IACzD,wBAAwB;IACxB,4DAA4D;IAC5D,EAAE;IACF,uCAAuC;IACvC,yBAAyB;IACzB,uEAAuE;IACvE,mCAAmC;IACnC,yCAAyC;IACzC,WAAW;IACX,cAAc;IACd,oFAAoF;IACpF,2BAA2B;IAC3B,0BAA0B;IAC1B,sBAAsB;IACtB,mBAAmB;IACnB,4DAA4D;IAC5D,8BAA8B;IAC9B,4CAA4C;IAC5C,8DAA8D;IAC9D,eAAe;IACf,wDAAwD;IACxD,6JAA6J;IAC7J,EAAE;IACF,oCAAoC;IACpC,qEAAqE;IACrE,EAAE;IACF,sCAAsC;IACtC,qEAAqE;IACrE,EAAE;IACF,uCAAuC;IACvC,kFAAkF;CACnF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,sCAAsC;IACtC,2BAA2B;IAC3B,qBAAqB;IACrB,UAAU;IACV,kCAAkC;IAClC,uBAAuB;IACvB,kBAAkB;IAClB,kEAAkE;IAClE,kBAAkB;IAClB,oCAAoC;IACpC,EAAE;IACF,wEAAwE;IACxE,8BAA8B;IAC9B,kBAAkB;IAClB,eAAe;IACf,kCAAkC;IAClC,iCAAiC;IACjC,wDAAwD;IACxD,yCAAyC;IACzC,8BAA8B;IAC9B,2DAA2D;IAC3D,8BAA8B;IAC9B,iEAAiE;IACjE,8BAA8B;IAC9B,kEAAkE;IAClE,+BAA+B;IAC/B,kEAAkE;IAClE,+BAA+B;IAC/B,oBAAoB;IACpB,6BAA6B;IAC7B,EAAE;IACF,mEAAmE;IACnE,wBAAwB;IACxB,kCAAkC;IAClC,qBAAqB;IACrB,0CAA0C;IAC1C,sCAAsC;IACtC,6CAA6C;IAC7C,iIAAiI;IACjI,0BAA0B;IAC1B,4KAA4K;IAC5K,oBAAoB;IACpB,iBAAiB;IACjB,iBAAiB;IACjB,mDAAmD;IACnD,yBAAyB;IACzB,+CAA+C;IAC/C,mBAAmB;IACnB,6CAA6C;IAC7C,kDAAkD;IAClD,wGAAwG;IACxG,2BAA2B;IAC3B,+BAA+B;CAChC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/core/expr/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared Python expression lowering — framework-agnostic.
|
|
3
3
|
*/
|
|
4
|
-
export { KERN_FMT_HELPER_PY, KERN_I32_HELPER_PY, KERN_JS_ARRAY_HELPERS_PY, KERN_JS_HELPER_PY, KERN_JS_OBJECT_HELPERS_PY, KERN_JS_STRING_HELPERS_PY, KERN_PAIR_HELPERS_PY, KERN_TMOD_HELPER_PY, } from './helpers.js';
|
|
4
|
+
export { KERN_FMT_HELPER_PY, KERN_I32_HELPER_PY, KERN_JS_ARRAY_FROM_HELPER_PY, KERN_JS_ARRAY_HELPERS_PY, KERN_JS_HELPER_PY, KERN_JS_MATH_HELPERS_PY, KERN_JS_NUMBER_HELPERS_PY, KERN_JS_OBJECT_HELPERS_PY, KERN_JS_STRING_HELPERS_PY, KERN_JSON_STRINGIFY_SHIM_PY, KERN_NULLISH_HELPER_PY, KERN_PAIR_HELPERS_PY, KERN_REGEX_MATCH_HELPER_PY, KERN_REGEX_MATCHALL_HELPER_PY, KERN_TMOD_HELPER_PY, KERN_TO_NUMBER_HELPER_PY, } from './helpers.js';
|
|
5
5
|
export declare function quoteObjectKeysOutsideStrings(expr: string): string;
|
|
6
6
|
export declare function rewriteExpr(expr: string, pathParams: string[], bodyFields?: Set<string>, authUser?: boolean, imports?: Set<string>, hoistedDefs?: string[], closureSeq?: {
|
|
7
7
|
n: number;
|
package/dist/core/expr/index.js
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared Python expression lowering — framework-agnostic.
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { PORTABLE_LOGIC_PRIMITIVES } from '@kernlang/core';
|
|
5
|
+
import { lowerJsClosureBodyToPython } from '@kernlang/core/node';
|
|
5
6
|
import { toSnakeCase } from '../../type-map.js';
|
|
6
|
-
import { KERN_I32_HELPER_PY, KERN_JS_ARRAY_HELPERS_PY, KERN_JS_HELPER_PY, KERN_JS_OBJECT_HELPERS_PY, KERN_JS_STRING_HELPERS_PY, KERN_TMOD_HELPER_PY, } from './helpers.js';
|
|
7
|
+
import { KERN_I32_HELPER_PY, KERN_JS_ARRAY_FROM_HELPER_PY, KERN_JS_ARRAY_HELPERS_PY, KERN_JS_HELPER_PY, KERN_JS_OBJECT_HELPERS_PY, KERN_JS_STRING_HELPERS_PY, KERN_TMOD_HELPER_PY, KERN_TO_NUMBER_HELPER_PY, } from './helpers.js';
|
|
7
8
|
import { isSharedPortableArrayMethod, isSharedPortableArrayProperty, lowerPortableArrayMethodPy, lowerPortableArrayPropertyPy, } from './list-ops.js';
|
|
8
|
-
export { KERN_FMT_HELPER_PY, KERN_I32_HELPER_PY, KERN_JS_ARRAY_HELPERS_PY, KERN_JS_HELPER_PY,
|
|
9
|
+
export { KERN_FMT_HELPER_PY, KERN_I32_HELPER_PY, KERN_JS_ARRAY_FROM_HELPER_PY, KERN_JS_ARRAY_HELPERS_PY, KERN_JS_HELPER_PY, KERN_JS_MATH_HELPERS_PY, KERN_JS_NUMBER_HELPERS_PY, KERN_JS_OBJECT_HELPERS_PY, KERN_JS_STRING_HELPERS_PY,
|
|
10
|
+
// Slice S7 — sentinel-aware Json.stringify shim (`_kern_json_stringify`).
|
|
11
|
+
KERN_JSON_STRINGIFY_SHIM_PY,
|
|
12
|
+
// Slice S7 — dual-sentinel nullish/equality substrate
|
|
13
|
+
// (`_kern_is_nullish` / `_kern_strict_equal` / `_kern_loose_equal`).
|
|
14
|
+
KERN_NULLISH_HELPER_PY, KERN_PAIR_HELPERS_PY,
|
|
15
|
+
// Milestone C, Slice 3 — portable regex match-set result-shape helpers
|
|
16
|
+
// (`_kern_regex_match` / `_kern_regex_matchall`).
|
|
17
|
+
KERN_REGEX_MATCH_HELPER_PY, KERN_REGEX_MATCHALL_HELPER_PY, KERN_TMOD_HELPER_PY,
|
|
18
|
+
// Slice-0.75 ToNumericPrimitive substrate. PURE ADDITION: not yet wired into
|
|
19
|
+
// any prelude/helper-block registry and not routed through production — the
|
|
20
|
+
// differential battery (ir-semantics-to-number-py.test.ts) is its only
|
|
21
|
+
// consumer until the future routing slice.
|
|
22
|
+
KERN_TO_NUMBER_HELPER_PY, } from './helpers.js';
|
|
9
23
|
// Quoted strings absorbed by the alternation; only literal `===`/`!==`
|
|
10
24
|
// outside strings get rewritten. Both single and double quotes AND
|
|
11
25
|
// backtick template literals are covered so a message like
|
|
@@ -198,6 +212,14 @@ function lowerArrowBlockClosure(arrow, ctx) {
|
|
|
198
212
|
// Closure params are def-locals (never `nonlocal`); the lowerer excludes
|
|
199
213
|
// them and block-locals from the written-free set.
|
|
200
214
|
paramNames: arrow.params,
|
|
215
|
+
// Round-7 — the block-scope hooks are now REQUIRED (a missing wire is a
|
|
216
|
+
// compile error, no longer a silent fail-open). The route path screens host
|
|
217
|
+
// names through the `rewriteExpr` rewriter, NOT a per-block shadow stack, so
|
|
218
|
+
// it has no block-scope tracking to maintain here: it opts OUT explicitly
|
|
219
|
+
// with no-op (identity) implementations. This is the intentional route-path
|
|
220
|
+
// opt-out the interface documents — visible at the call site, not an accident.
|
|
221
|
+
enterBlockScope: () => { },
|
|
222
|
+
exitBlockScope: () => { },
|
|
201
223
|
});
|
|
202
224
|
if (!result.ok)
|
|
203
225
|
return null;
|
|
@@ -950,7 +972,7 @@ function lowerMathBuiltinCalls(expr, imports) {
|
|
|
950
972
|
break;
|
|
951
973
|
case 'round':
|
|
952
974
|
imports?.add('import math as __k_math');
|
|
953
|
-
out +=
|
|
975
|
+
out += legacyJsRoundExpr(arg);
|
|
954
976
|
break;
|
|
955
977
|
case 'abs':
|
|
956
978
|
out += `abs(${arg})`;
|
|
@@ -1042,6 +1064,9 @@ function lowerMathBuiltinCalls(expr, imports) {
|
|
|
1042
1064
|
}
|
|
1043
1065
|
return out;
|
|
1044
1066
|
}
|
|
1067
|
+
function legacyJsRoundExpr(arg) {
|
|
1068
|
+
return `(lambda __k_n: __k_n if __k_n != __k_n or __k_n in (float("inf"), float("-inf")) or __k_n == 0 else (lambda __k_floor: (lambda __k_r: -0.0 if __k_r == 0 and __k_n < 0 else __k_r)(__k_floor + (1 if __k_n - __k_floor >= 0.5 else 0)))(__k_math.floor(__k_n)))(${arg})`;
|
|
1069
|
+
}
|
|
1045
1070
|
// Find the start of the JS expression that ends just before the current position.
|
|
1046
1071
|
function findReceiverStart(s) {
|
|
1047
1072
|
let j = s.length - 1;
|
|
@@ -1519,8 +1544,72 @@ function lowerObjectArrayDateBuiltinCalls(expr, imports) {
|
|
|
1519
1544
|
}
|
|
1520
1545
|
return out;
|
|
1521
1546
|
}
|
|
1547
|
+
// Normalize JS numeric word-literals (`Infinity`, `-Infinity`, `NaN`) that
|
|
1548
|
+
// reach the route-path Array.from `{length}` argument into their Python float
|
|
1549
|
+
// equivalents, respecting string/quote boundaries. The route pipeline's
|
|
1550
|
+
// `JS_LITERAL_RE` only rewrites `undefined|null|true|false`, so a bare
|
|
1551
|
+
// `Infinity`/`NaN` token survives to the emitted module as a Python NameError.
|
|
1552
|
+
// The Array.from length guard below feeds the count to `_kern_array_like_length`
|
|
1553
|
+
// via `{"length": <count>}`, so the count must be a valid Python value first.
|
|
1554
|
+
function normalizeNumericWordLiterals(expr) {
|
|
1555
|
+
let out = '';
|
|
1556
|
+
let i = 0;
|
|
1557
|
+
let quote = null;
|
|
1558
|
+
while (i < expr.length) {
|
|
1559
|
+
const c = expr[i];
|
|
1560
|
+
if (quote) {
|
|
1561
|
+
out += c;
|
|
1562
|
+
if (c === '\\') {
|
|
1563
|
+
out += expr[i + 1] ?? '';
|
|
1564
|
+
i += 2;
|
|
1565
|
+
continue;
|
|
1566
|
+
}
|
|
1567
|
+
if (c === quote)
|
|
1568
|
+
quote = null;
|
|
1569
|
+
i += 1;
|
|
1570
|
+
continue;
|
|
1571
|
+
}
|
|
1572
|
+
if (c === '"' || c === "'" || c === '`') {
|
|
1573
|
+
quote = c;
|
|
1574
|
+
out += c;
|
|
1575
|
+
i += 1;
|
|
1576
|
+
continue;
|
|
1577
|
+
}
|
|
1578
|
+
const rest = expr.slice(i);
|
|
1579
|
+
const prev = expr[i - 1];
|
|
1580
|
+
// Member access (`obj.Infinity`) must not be rewritten. The immediately-
|
|
1581
|
+
// previous char rules out the compact form; for the spaced form
|
|
1582
|
+
// (`obj . Infinity`) scan BACKWARD past contiguous whitespace and treat the
|
|
1583
|
+
// token as member access when the first non-whitespace char found is `.`.
|
|
1584
|
+
// A token at string-start (only whitespace before it) is NOT member access.
|
|
1585
|
+
let memberAccess = !!(prev && /[\w.$]/.test(prev));
|
|
1586
|
+
if (!memberAccess && prev !== undefined && /\s/.test(prev)) {
|
|
1587
|
+
let k = i - 1;
|
|
1588
|
+
while (k >= 0 && /\s/.test(expr[k]))
|
|
1589
|
+
k -= 1;
|
|
1590
|
+
if (k >= 0 && expr[k] === '.')
|
|
1591
|
+
memberAccess = true;
|
|
1592
|
+
}
|
|
1593
|
+
const wordOk = !memberAccess;
|
|
1594
|
+
const infM = wordOk ? rest.match(/^Infinity\b/) : null;
|
|
1595
|
+
if (infM && !/[\w$]/.test(expr[i + infM[0].length] ?? '')) {
|
|
1596
|
+
out += "float('inf')";
|
|
1597
|
+
i += infM[0].length;
|
|
1598
|
+
continue;
|
|
1599
|
+
}
|
|
1600
|
+
const nanM = wordOk ? rest.match(/^NaN\b/) : null;
|
|
1601
|
+
if (nanM && !/[\w$]/.test(expr[i + nanM[0].length] ?? '')) {
|
|
1602
|
+
out += "float('nan')";
|
|
1603
|
+
i += nanM[0].length;
|
|
1604
|
+
continue;
|
|
1605
|
+
}
|
|
1606
|
+
out += c;
|
|
1607
|
+
i += 1;
|
|
1608
|
+
}
|
|
1609
|
+
return out;
|
|
1610
|
+
}
|
|
1522
1611
|
// Build the Python comprehension for one `Array.from(...)` call's argument list.
|
|
1523
|
-
function tryLowerArrayFrom(args) {
|
|
1612
|
+
function tryLowerArrayFrom(args, imports) {
|
|
1524
1613
|
if (args.length < 2)
|
|
1525
1614
|
return null;
|
|
1526
1615
|
const arg0 = args[0].trim();
|
|
@@ -1566,7 +1655,46 @@ function tryLowerArrayFrom(args) {
|
|
|
1566
1655
|
if (inner.startsWith('{'))
|
|
1567
1656
|
body = inner;
|
|
1568
1657
|
}
|
|
1569
|
-
|
|
1658
|
+
// The body is lowered for nested `Array.from`/stdlib calls but is NOT run
|
|
1659
|
+
// through `normalizeNumericWordLiterals`. KNOWN LIMITATION (deliberate,
|
|
1660
|
+
// fail-loud): a bare `Infinity`/`NaN` token in a mapper body — or an
|
|
1661
|
+
// object-literal KEY named `Infinity`/`NaN` (e.g. `() => ({Infinity: 1})`) —
|
|
1662
|
+
// emits a Python `NameError` (fail-loud) rather than being silently rewritten.
|
|
1663
|
+
// String-level normalization cannot distinguish a value position from an
|
|
1664
|
+
// object-literal key, because the object-key `:` is indistinguishable from a
|
|
1665
|
+
// ternary `:`. Rewriting the body therefore corrupts the JS string key
|
|
1666
|
+
// `"Infinity"` into `{float('inf'): 1}` (silent cross-target divergence), so
|
|
1667
|
+
// we choose the loud NameError over silent corruption. `normalizeNumericWordLiterals`
|
|
1668
|
+
// still runs on the COUNT below, where the position is unambiguous.
|
|
1669
|
+
const loweredBody = lowerArrayFromCalls(body, imports);
|
|
1670
|
+
// Fast-path for a statically-safe non-negative INTEGER literal count: emit the
|
|
1671
|
+
// clean `range(<literal>)` form with NO length helper and NO normalize pass.
|
|
1672
|
+
// `4294967295` (2**32-1) and below are valid JS array lengths (JS would also
|
|
1673
|
+
// materialize them), so `range(<literal>)` is correct parity and the common
|
|
1674
|
+
// case (`Array.from({length: 3}, …)`) pays zero helper/cold-start cost. A
|
|
1675
|
+
// literal `> 4294967295` (e.g. `9007199254740992`) MUST still throw, so it is
|
|
1676
|
+
// explicitly excluded here and routed through the guard below. Only a bare
|
|
1677
|
+
// non-negative integer qualifies — NOT floats (`3.5`), NOT signed (`-1`), NOT
|
|
1678
|
+
// identifiers/member-access/arithmetic/`Infinity`/`NaN`, all of which need the
|
|
1679
|
+
// `_kern_array_like_length` validation.
|
|
1680
|
+
const trimmedCount = count.trim();
|
|
1681
|
+
if (/^\d+$/.test(trimmedCount) && Number(trimmedCount) <= 4294967295) {
|
|
1682
|
+
return `[${loweredBody} for ${idxVar} in range(${trimmedCount})]`;
|
|
1683
|
+
}
|
|
1684
|
+
// Otherwise route the `{length: N}` count through the SAME validated length
|
|
1685
|
+
// helper the native-body path uses (`_kern_array_like_length`) instead of
|
|
1686
|
+
// emitting a raw `range(N)`. Without this guard the route path diverges from JS
|
|
1687
|
+
// (and from the already-correct native-body path): `Array.from({length:
|
|
1688
|
+
// Infinity}, …)` must throw a RangeError (not emit a Python NameError for
|
|
1689
|
+
// `Infinity`), a length above 2**32-1 must throw, and `NaN`/≤0 must yield an
|
|
1690
|
+
// empty array — never a 4-billion-element materialization (DoS).
|
|
1691
|
+
// `_kern_array_like_length` self-defines `RangeError`/`_KERN_UNDEFINED` via its
|
|
1692
|
+
// idempotent guards but calls `_kern_to_number`, so BOTH helper blocks are
|
|
1693
|
+
// required (mirrors the `array-host` requirement pairing in codegen-body-python).
|
|
1694
|
+
const loweredCount = normalizeNumericWordLiterals(lowerArrayFromCalls(count, imports));
|
|
1695
|
+
imports?.add(KERN_TO_NUMBER_HELPER_PY);
|
|
1696
|
+
imports?.add(KERN_JS_ARRAY_FROM_HELPER_PY);
|
|
1697
|
+
return `[${loweredBody} for ${idxVar} in range(_kern_array_like_length({"length": ${loweredCount}}))]`;
|
|
1570
1698
|
}
|
|
1571
1699
|
// Expand JS object-literal shorthand properties to explicit `key: key`.
|
|
1572
1700
|
function expandObjectShorthand(expr) {
|
|
@@ -1615,7 +1743,7 @@ function expandObjectShorthand(expr) {
|
|
|
1615
1743
|
return out;
|
|
1616
1744
|
}
|
|
1617
1745
|
// Lower `Array.from({ length: N }, (_, i) => BODY)` to a Python list comprehension.
|
|
1618
|
-
function lowerArrayFromCalls(expr) {
|
|
1746
|
+
function lowerArrayFromCalls(expr, imports) {
|
|
1619
1747
|
let out = '';
|
|
1620
1748
|
let i = 0;
|
|
1621
1749
|
let quote = null;
|
|
@@ -1645,7 +1773,7 @@ function lowerArrayFromCalls(expr) {
|
|
|
1645
1773
|
const openIdx = i + m[0].length - 1;
|
|
1646
1774
|
const closeIdx = matchBalancedParen(expr, openIdx);
|
|
1647
1775
|
if (closeIdx !== -1 && expr[closeIdx + 1] !== '.') {
|
|
1648
|
-
const lowered = tryLowerArrayFrom(splitTopLevelArgs(expr.slice(openIdx + 1, closeIdx)));
|
|
1776
|
+
const lowered = tryLowerArrayFrom(splitTopLevelArgs(expr.slice(openIdx + 1, closeIdx)), imports);
|
|
1649
1777
|
if (lowered !== null) {
|
|
1650
1778
|
out += lowered;
|
|
1651
1779
|
i = closeIdx + 1;
|
|
@@ -2109,7 +2237,7 @@ export function rewriteExpr(expr, pathParams, bodyFields = new Set(), authUser =
|
|
|
2109
2237
|
let result = maskedExpr;
|
|
2110
2238
|
result = lowerSpreadElements(result);
|
|
2111
2239
|
result = expandObjectShorthand(result);
|
|
2112
|
-
result = lowerArrayFromCalls(result);
|
|
2240
|
+
result = lowerArrayFromCalls(result, imports);
|
|
2113
2241
|
for (const param of pathParams) {
|
|
2114
2242
|
result = result.replace(new RegExp(`\\bparams\\.${param}\\b`, 'g'), param);
|
|
2115
2243
|
}
|