@enspirit/elo 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/ast.d.ts +7 -1
- package/dist/src/ast.d.ts.map +1 -1
- package/dist/src/ast.js +9 -10
- package/dist/src/ast.js.map +1 -1
- package/dist/src/bindings/javascript.d.ts.map +1 -1
- package/dist/src/bindings/javascript.js +41 -24
- package/dist/src/bindings/javascript.js.map +1 -1
- package/dist/src/bindings/python.d.ts.map +1 -1
- package/dist/src/bindings/python.js +42 -35
- package/dist/src/bindings/python.js.map +1 -1
- package/dist/src/bindings/ruby.d.ts.map +1 -1
- package/dist/src/bindings/ruby.js +46 -26
- package/dist/src/bindings/ruby.js.map +1 -1
- package/dist/src/bindings/sql.d.ts.map +1 -1
- package/dist/src/bindings/sql.js +24 -3
- package/dist/src/bindings/sql.js.map +1 -1
- package/dist/src/compilers/_validate.d.ts +5 -0
- package/dist/src/compilers/_validate.d.ts.map +1 -1
- package/dist/src/compilers/_validate.js +11 -0
- package/dist/src/compilers/_validate.js.map +1 -1
- package/dist/src/compilers/javascript.js +8 -6
- package/dist/src/compilers/javascript.js.map +1 -1
- package/dist/src/compilers/python.js +8 -5
- package/dist/src/compilers/python.js.map +1 -1
- package/dist/src/compilers/ruby.js +8 -6
- package/dist/src/compilers/ruby.js.map +1 -1
- package/dist/src/compilers/sql.js +13 -6
- package/dist/src/compilers/sql.js.map +1 -1
- package/dist/src/elo.js +13 -2
- package/dist/src/elo.js.map +1 -1
- package/dist/src/eloc.js +13 -2
- package/dist/src/eloc.js.map +1 -1
- package/dist/src/parser.d.ts +7 -0
- package/dist/src/parser.d.ts.map +1 -1
- package/dist/src/parser.js +71 -18
- package/dist/src/parser.js.map +1 -1
- package/dist/src/runtime.d.ts +13 -0
- package/dist/src/runtime.d.ts.map +1 -1
- package/dist/src/runtime.js +72 -1
- package/dist/src/runtime.js.map +1 -1
- package/dist/src/stdlib.d.ts +13 -0
- package/dist/src/stdlib.d.ts.map +1 -1
- package/dist/src/stdlib.js +37 -0
- package/dist/src/stdlib.js.map +1 -1
- package/dist/src/transform.js +40 -10
- package/dist/src/transform.js.map +1 -1
- package/package.json +1 -1
package/dist/src/runtime.js
CHANGED
|
@@ -6,16 +6,41 @@
|
|
|
6
6
|
* when needed, wrapped in an IIFE for encapsulation.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.PY_HELPERS = exports.PY_HELPER_DEPS = exports.RUBY_HELPERS = exports.RUBY_HELPER_DEPS = exports.JS_HELPERS = exports.JS_HELPER_DEPS = void 0;
|
|
9
|
+
exports.PY_HELPERS = exports.PY_HELPER_DEPS = exports.RUBY_HELPERS = exports.RUBY_HELPER_DEPS = exports.JS_HELPERS = exports.JS_HELPER_DEPS = exports.MAX_STRING_LENGTH = exports.DEFAULT_MAX_STRING_LENGTH = void 0;
|
|
10
10
|
/**
|
|
11
11
|
* Individual JavaScript helper function snippets.
|
|
12
12
|
* Each helper is a standalone function that can be included in the output.
|
|
13
13
|
* Used for dynamically-typed operations where types aren't known at compile time.
|
|
14
14
|
*/
|
|
15
|
+
/**
|
|
16
|
+
* Maximum length, in characters, of a string the compiled code is allowed to
|
|
17
|
+
* build with a single repeat (`'a' * n`) or pad operation. Repeating or padding
|
|
18
|
+
* without a bound lets a short expression allocate gigabytes and OOM the host,
|
|
19
|
+
* so the compiled runtime refuses to cross this ceiling.
|
|
20
|
+
*
|
|
21
|
+
* The default is safe; it is read once, at compile time, from the
|
|
22
|
+
* `ELO_MAX_STRING_LENGTH` environment variable (when running under Node) so a
|
|
23
|
+
* deployment can raise or lower it. Raising it re-opens the denial-of-service
|
|
24
|
+
* window — see the security page.
|
|
25
|
+
*/
|
|
26
|
+
exports.DEFAULT_MAX_STRING_LENGTH = 10000000;
|
|
27
|
+
exports.MAX_STRING_LENGTH = (() => {
|
|
28
|
+
// Guard `process`: this module is bundled into the browser (the playground
|
|
29
|
+
// compiles Elo in-page), where `process` is undefined. A bare reference would
|
|
30
|
+
// throw ReferenceError at import time.
|
|
31
|
+
const raw = (typeof process !== 'undefined' && process.env)
|
|
32
|
+
? process.env.ELO_MAX_STRING_LENGTH
|
|
33
|
+
: undefined;
|
|
34
|
+
const v = Number(raw);
|
|
35
|
+
return Number.isFinite(v) && v > 0 ? Math.floor(v) : exports.DEFAULT_MAX_STRING_LENGTH;
|
|
36
|
+
})();
|
|
15
37
|
/**
|
|
16
38
|
* Dependencies between helpers. If helper A uses helper B, A depends on B.
|
|
17
39
|
*/
|
|
18
40
|
exports.JS_HELPER_DEPS = {
|
|
41
|
+
kRepeat: [],
|
|
42
|
+
kPad: [],
|
|
43
|
+
kRound: [],
|
|
19
44
|
kNeq: ['kEq'],
|
|
20
45
|
kFetchObject: ['kFetch'],
|
|
21
46
|
// Parser helpers depend on pOk/pFail
|
|
@@ -31,6 +56,15 @@ exports.JS_HELPER_DEPS = {
|
|
|
31
56
|
pData: ['pOk', 'pFail'],
|
|
32
57
|
};
|
|
33
58
|
exports.JS_HELPERS = {
|
|
59
|
+
kRepeat: `function kRepeat(s, n) {
|
|
60
|
+
if (n <= 0) return "";
|
|
61
|
+
if (s.length * n > ${exports.MAX_STRING_LENGTH}) throw new Error("String length limit (${exports.MAX_STRING_LENGTH}) exceeded; raise ELO_MAX_STRING_LENGTH to allow larger strings");
|
|
62
|
+
return s.repeat(n);
|
|
63
|
+
}`,
|
|
64
|
+
kPad: `function kPad(s, n, p, atStart) {
|
|
65
|
+
if (n > ${exports.MAX_STRING_LENGTH}) throw new Error("String length limit (${exports.MAX_STRING_LENGTH}) exceeded; raise ELO_MAX_STRING_LENGTH to allow larger strings");
|
|
66
|
+
return atStart ? s.padStart(n, p) : s.padEnd(n, p);
|
|
67
|
+
}`,
|
|
34
68
|
kAdd: `function kAdd(l, r) {
|
|
35
69
|
if (DateTime.isDateTime(l) && Duration.isDuration(r)) return l.plus(r);
|
|
36
70
|
if (Duration.isDuration(l) && DateTime.isDateTime(r)) return r.plus(l);
|
|
@@ -44,6 +78,7 @@ exports.JS_HELPERS = {
|
|
|
44
78
|
return l - r;
|
|
45
79
|
}`,
|
|
46
80
|
kMul: `function kMul(l, r) {
|
|
81
|
+
if (Array.isArray(l) || Array.isArray(r)) throw new Error("Array multiplication is not supported");
|
|
47
82
|
if (Duration.isDuration(l)) return Duration.fromMillis(l.toMillis() * r);
|
|
48
83
|
if (Duration.isDuration(r)) return Duration.fromMillis(r.toMillis() * l);
|
|
49
84
|
return l * r;
|
|
@@ -52,6 +87,7 @@ exports.JS_HELPERS = {
|
|
|
52
87
|
if (Duration.isDuration(l) && typeof r === 'number') return Duration.fromMillis(l.toMillis() / r);
|
|
53
88
|
return l / r;
|
|
54
89
|
}`,
|
|
90
|
+
kRound: `function kRound(x) { return x < 0 ? -Math.round(-x) : Math.round(x); }`,
|
|
55
91
|
kMod: `function kMod(l, r) { return l % r; }`,
|
|
56
92
|
kPow: `function kPow(l, r) { return Math.pow(l, r); }`,
|
|
57
93
|
kEq: `function kEq(l, r) {
|
|
@@ -92,6 +128,7 @@ exports.JS_HELPERS = {
|
|
|
92
128
|
}`,
|
|
93
129
|
kIsNull: `function kIsNull(v) { return v === null || v === undefined; }`,
|
|
94
130
|
kFetch: `function kFetch(data, path) {
|
|
131
|
+
var FORBIDDEN = ['constructor', '__proto__', 'prototype', '__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__'];
|
|
95
132
|
let current = data;
|
|
96
133
|
for (const segment of path) {
|
|
97
134
|
if (current === null || current === undefined) return null;
|
|
@@ -100,6 +137,8 @@ exports.JS_HELPERS = {
|
|
|
100
137
|
current = current[segment];
|
|
101
138
|
} else {
|
|
102
139
|
if (typeof current !== 'object' || current === null) return null;
|
|
140
|
+
/* A property read walks the prototype chain, so a meta-property name (reachable via a variable, array or concatenated key the compile-time denylist cannot see) would hand back Object.prototype or the Object constructor. These are never valid data keys. */
|
|
141
|
+
if (FORBIDDEN.indexOf(segment) !== -1) return null;
|
|
103
142
|
current = current[segment];
|
|
104
143
|
}
|
|
105
144
|
}
|
|
@@ -113,9 +152,12 @@ exports.JS_HELPERS = {
|
|
|
113
152
|
return result;
|
|
114
153
|
}`,
|
|
115
154
|
kPatch: `function kPatch(data, path, value) {
|
|
155
|
+
var FORBIDDEN = ['constructor', '__proto__', 'prototype', '__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__'];
|
|
116
156
|
if (path.length === 0) return value;
|
|
117
157
|
const seg = path[0];
|
|
118
158
|
const rest = path.slice(1);
|
|
159
|
+
/* A meta-property name is never a valid data key; writing (or reading) one would reach the host prototype chain, so reject it however the segment was supplied. */
|
|
160
|
+
if (typeof seg === 'string' && FORBIDDEN.indexOf(seg) !== -1) throw new Error("patch() segment '" + seg + "' is forbidden: this name would expose the host runtime and is not a valid Elo property.");
|
|
119
161
|
const nextDefault = rest.length === 0 ? null : typeof rest[0] === 'number' ? [] : {};
|
|
120
162
|
if (typeof seg === 'number') {
|
|
121
163
|
if (data !== null && data !== undefined && !Array.isArray(data)) throw new Error('cannot patch array index on non-array');
|
|
@@ -264,6 +306,9 @@ exports.JS_HELPERS = {
|
|
|
264
306
|
* These are embedded in compiled Ruby output when type definitions are used.
|
|
265
307
|
*/
|
|
266
308
|
exports.RUBY_HELPER_DEPS = {
|
|
309
|
+
k_div: [],
|
|
310
|
+
k_str_mul: [],
|
|
311
|
+
k_pad: [],
|
|
267
312
|
p_any: ['p_ok'],
|
|
268
313
|
p_null: ['p_ok', 'p_fail'],
|
|
269
314
|
p_string: ['p_ok', 'p_fail'],
|
|
@@ -276,6 +321,19 @@ exports.RUBY_HELPER_DEPS = {
|
|
|
276
321
|
p_data: ['p_ok', 'p_fail'],
|
|
277
322
|
};
|
|
278
323
|
exports.RUBY_HELPERS = {
|
|
324
|
+
k_str_mul: `def k_str_mul(s, n)
|
|
325
|
+
return '' if n <= 0
|
|
326
|
+
raise "String length limit (${exports.MAX_STRING_LENGTH}) exceeded; raise ELO_MAX_STRING_LENGTH to allow larger strings" if s.length * n > ${exports.MAX_STRING_LENGTH}
|
|
327
|
+
s * n
|
|
328
|
+
end`,
|
|
329
|
+
k_pad: `def k_pad(s, n, p, at_start)
|
|
330
|
+
raise "String length limit (${exports.MAX_STRING_LENGTH}) exceeded; raise ELO_MAX_STRING_LENGTH to allow larger strings" if n > ${exports.MAX_STRING_LENGTH}
|
|
331
|
+
at_start ? s.rjust(n, p) : s.ljust(n, p)
|
|
332
|
+
end`,
|
|
333
|
+
k_div: `def k_div(l, r)
|
|
334
|
+
return l.fdiv(r) if l.is_a?(Integer) && r.is_a?(Integer)
|
|
335
|
+
l / r
|
|
336
|
+
end`,
|
|
279
337
|
k_deep_merge: `def k_deep_merge(a, b)
|
|
280
338
|
return b unless a.is_a?(Hash) && b.is_a?(Hash)
|
|
281
339
|
result = a.dup
|
|
@@ -382,6 +440,9 @@ end`,
|
|
|
382
440
|
* Special entries starting with _ are import statements, not functions.
|
|
383
441
|
*/
|
|
384
442
|
exports.PY_HELPER_DEPS = {
|
|
443
|
+
kStrMul: [],
|
|
444
|
+
kPad: [],
|
|
445
|
+
kRound: ['_import_math'],
|
|
385
446
|
kEq: [],
|
|
386
447
|
kNeq: ['kEq'],
|
|
387
448
|
kIntersection: ['_EloInterval'],
|
|
@@ -422,6 +483,13 @@ exports.PY_HELPER_DEPS = {
|
|
|
422
483
|
pSubtype: ['pOk', 'pFail'],
|
|
423
484
|
};
|
|
424
485
|
exports.PY_HELPERS = {
|
|
486
|
+
kStrMul: `def kStrMul(s, n):
|
|
487
|
+
if n <= 0: return ""
|
|
488
|
+
if len(s) * n > ${exports.MAX_STRING_LENGTH}: raise ValueError("String length limit (${exports.MAX_STRING_LENGTH}) exceeded; raise ELO_MAX_STRING_LENGTH to allow larger strings")
|
|
489
|
+
return s * n`,
|
|
490
|
+
kPad: `def kPad(s, n, p, at_start):
|
|
491
|
+
if n > ${exports.MAX_STRING_LENGTH}: raise ValueError("String length limit (${exports.MAX_STRING_LENGTH}) exceeded; raise ELO_MAX_STRING_LENGTH to allow larger strings")
|
|
492
|
+
return s.rjust(n, p) if at_start else s.ljust(n, p)`,
|
|
425
493
|
_import_math: `import math`,
|
|
426
494
|
_import_functools: `import functools`,
|
|
427
495
|
_import_datetime: `import datetime as _dt`,
|
|
@@ -651,9 +719,12 @@ def _elo_end_of_year(dt):
|
|
|
651
719
|
if isinstance(l, EloDuration) and isinstance(r, EloDuration): return l.minus(r)
|
|
652
720
|
return l - r`,
|
|
653
721
|
kMul: `def kMul(l, r):
|
|
722
|
+
if isinstance(l, list) or isinstance(r, list): raise ValueError("Array multiplication is not supported")
|
|
654
723
|
if isinstance(l, EloDuration): return l.scale(r)
|
|
655
724
|
if isinstance(r, EloDuration): return r.scale(l)
|
|
656
725
|
return l * r`,
|
|
726
|
+
kRound: `def kRound(x):
|
|
727
|
+
return math.floor(x + 0.5) if x >= 0 else math.ceil(x - 0.5)`,
|
|
657
728
|
kDiv: `def kDiv(l, r):
|
|
658
729
|
if isinstance(l, EloDuration) and isinstance(r, (int, float)): return l.divide(r)
|
|
659
730
|
return l / r`,
|
package/dist/src/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;;;GAIG;AACH;;GAEG;AACU,QAAA,cAAc,GAA6B;IACtD,IAAI,EAAE,CAAC,KAAK,CAAC;IACb,YAAY,EAAE,CAAC,QAAQ,CAAC;IACxB,qCAAqC;IACrC,IAAI,EAAE,CAAC,KAAK,CAAC;IACb,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IAC3B,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;CACxB,CAAC;AAEW,QAAA,UAAU,GAA2B;IAChD,IAAI,EAAE;;;;;EAKN;IACA,IAAI,EAAE;;;;;EAKN;IACA,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/src/stdlib.d.ts
CHANGED
|
@@ -75,6 +75,11 @@ export declare class StdLib<T> {
|
|
|
75
75
|
* Emit code for a function call
|
|
76
76
|
*/
|
|
77
77
|
emit(name: string, args: IRExpr[], argTypes: EloType[], ctx: EmitContext<T>): T;
|
|
78
|
+
/**
|
|
79
|
+
* Every registered signature of a function name, formatted for an error
|
|
80
|
+
* message, most specific first and without duplicates.
|
|
81
|
+
*/
|
|
82
|
+
signaturesOf(name: string): string[];
|
|
78
83
|
}
|
|
79
84
|
/**
|
|
80
85
|
* Helper to create a binary operator emitter
|
|
@@ -108,6 +113,14 @@ export declare function isBinaryOp(ir: IRExpr): boolean;
|
|
|
108
113
|
* Helper for Ruby-style postfix method call that wraps binary expressions in parens.
|
|
109
114
|
* Use for: arg0.method() where Ruby's precedence requires parens around binary ops.
|
|
110
115
|
*/
|
|
116
|
+
/**
|
|
117
|
+
* Helper for a conversion that is a no-op in the target language.
|
|
118
|
+
*
|
|
119
|
+
* Returning the operand untouched loses its grouping: the parent sees a call
|
|
120
|
+
* node, decides it needs no parentheses, and re-associates the bare operand.
|
|
121
|
+
* `Float(a - b) / c` would emit as `a - b / c`.
|
|
122
|
+
*/
|
|
123
|
+
export declare function identity(): FunctionEmitter<string>;
|
|
111
124
|
export declare function rubyMethod(method: string): FunctionEmitter<string>;
|
|
112
125
|
/**
|
|
113
126
|
* Helper for function call style: fn(arg0, arg1, ...)
|
package/dist/src/stdlib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdlib.d.ts","sourceRoot":"","sources":["../../src/stdlib.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAA+B,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAGtE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAGzE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,CA2BpE;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC;IACxB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,KAAK,CAAC,CAAC;IAC5E,8DAA8D;IAC9D,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAE5E;;GAEG;AACH,qBAAa,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAgG;IAEhH;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAM9E;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI;IAK9G;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS;IA6BzE;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"stdlib.d.ts","sourceRoot":"","sources":["../../src/stdlib.ts"],"names":[],"mappings":"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"}
|
package/dist/src/stdlib.js
CHANGED
|
@@ -18,6 +18,7 @@ exports.methodCall = methodCall;
|
|
|
18
18
|
exports.nullary = nullary;
|
|
19
19
|
exports.unaryMethod = unaryMethod;
|
|
20
20
|
exports.isBinaryOp = isBinaryOp;
|
|
21
|
+
exports.identity = identity;
|
|
21
22
|
exports.rubyMethod = rubyMethod;
|
|
22
23
|
exports.fnCall = fnCall;
|
|
23
24
|
exports.helperCall = helperCall;
|
|
@@ -142,8 +143,31 @@ class StdLib {
|
|
|
142
143
|
if (this.fallback) {
|
|
143
144
|
return this.fallback(name, args, argTypes, ctx);
|
|
144
145
|
}
|
|
146
|
+
// A name that exists under other signatures is a different mistake from a
|
|
147
|
+
// name that does not exist at all, and the author fixes it differently.
|
|
148
|
+
const known = this.signaturesOf(name);
|
|
149
|
+
if (known.length > 0) {
|
|
150
|
+
throw new Error(`No signature of ${name} accepts ${formatSignature(name, argTypes)}. ` +
|
|
151
|
+
`Known: ${known.join(', ')}`);
|
|
152
|
+
}
|
|
145
153
|
throw new Error(`Unknown function ${formatSignature(name, argTypes)}`);
|
|
146
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Every registered signature of a function name, formatted for an error
|
|
157
|
+
* message, most specific first and without duplicates.
|
|
158
|
+
*/
|
|
159
|
+
signaturesOf(name) {
|
|
160
|
+
const seen = new Set();
|
|
161
|
+
for (const key of this.implementations.keys()) {
|
|
162
|
+
const colonIdx = key.indexOf(':');
|
|
163
|
+
if ((colonIdx === -1 ? key : key.substring(0, colonIdx)) !== name)
|
|
164
|
+
continue;
|
|
165
|
+
const types = colonIdx === -1 ? '' : key.substring(colonIdx + 1).split(',')
|
|
166
|
+
.map(t => t.charAt(0).toUpperCase() + t.slice(1)).join(', ');
|
|
167
|
+
seen.add(`${name}(${types})`);
|
|
168
|
+
}
|
|
169
|
+
return [...seen];
|
|
170
|
+
}
|
|
147
171
|
}
|
|
148
172
|
exports.StdLib = StdLib;
|
|
149
173
|
/**
|
|
@@ -207,6 +231,19 @@ function isBinaryOp(ir) {
|
|
|
207
231
|
* Helper for Ruby-style postfix method call that wraps binary expressions in parens.
|
|
208
232
|
* Use for: arg0.method() where Ruby's precedence requires parens around binary ops.
|
|
209
233
|
*/
|
|
234
|
+
/**
|
|
235
|
+
* Helper for a conversion that is a no-op in the target language.
|
|
236
|
+
*
|
|
237
|
+
* Returning the operand untouched loses its grouping: the parent sees a call
|
|
238
|
+
* node, decides it needs no parentheses, and re-associates the bare operand.
|
|
239
|
+
* `Float(a - b) / c` would emit as `a - b / c`.
|
|
240
|
+
*/
|
|
241
|
+
function identity() {
|
|
242
|
+
return (args, ctx) => {
|
|
243
|
+
const emitted = ctx.emit(args[0]);
|
|
244
|
+
return isBinaryOp(args[0]) ? `(${emitted})` : emitted;
|
|
245
|
+
};
|
|
246
|
+
}
|
|
210
247
|
function rubyMethod(method) {
|
|
211
248
|
return (args, ctx) => {
|
|
212
249
|
const emitted = ctx.emit(args[0]);
|
package/dist/src/stdlib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdlib.js","sourceRoot":"","sources":["../../src/stdlib.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAiBH,oCAGC;AAMD,0CAGC;AAUD,kDA2BC;
|
|
1
|
+
{"version":3,"file":"stdlib.js","sourceRoot":"","sources":["../../src/stdlib.ts"],"names":[],"mappings":"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"}
|
package/dist/src/transform.js
CHANGED
|
@@ -44,7 +44,7 @@ function transformWithDepth(expr, env, defining, depth, maxDepth, allowUndefined
|
|
|
44
44
|
const recurse = (e, newEnv = env, newDefining = defining) => transformWithDepth(e, newEnv, newDefining, nextDepth, maxDepth, allowUndefinedVariables);
|
|
45
45
|
switch (expr.type) {
|
|
46
46
|
case 'literal':
|
|
47
|
-
return transformLiteral(expr.value);
|
|
47
|
+
return transformLiteral(expr.value, expr.isFloat);
|
|
48
48
|
case 'string':
|
|
49
49
|
return (0, ir_1.irString)(expr.value);
|
|
50
50
|
case 'null':
|
|
@@ -105,6 +105,19 @@ function transformWithDepth(expr, env, defining, depth, maxDepth, allowUndefined
|
|
|
105
105
|
const fnIR = recurse(expr.fn);
|
|
106
106
|
const argsIR = expr.args.map((arg) => recurse(arg));
|
|
107
107
|
const argTypes = argsIR.map(ir_1.inferType);
|
|
108
|
+
// Reject applying a plain variable that is not known to hold a function.
|
|
109
|
+
// A lambda parameter is typed `any`, so applying one to itself — the
|
|
110
|
+
// Y-combinator shape (x)(x) — would otherwise compile to an unbounded
|
|
111
|
+
// self-call and break Elo's termination guarantee. Immediately-invoked
|
|
112
|
+
// lambdas (callee is a lambda), functions stored in data (member_access,
|
|
113
|
+
// handled below) and let-bound functions (variable inferred as `fn`)
|
|
114
|
+
// remain allowed.
|
|
115
|
+
if (fnIR.type === 'variable' && (0, ir_1.inferType)(fnIR).kind !== 'fn') {
|
|
116
|
+
throw new Error(`'${fnIR.name}' cannot be called as a function: only lambdas, ` +
|
|
117
|
+
`let-bound functions and functions stored in data may be applied. ` +
|
|
118
|
+
`Applying an arbitrary value (such as a lambda parameter) is not ` +
|
|
119
|
+
`allowed because it could build non-terminating recursion.`);
|
|
120
|
+
}
|
|
108
121
|
// Reject method-call syntax on member access unless it's a function stored in data
|
|
109
122
|
// This prevents calling runtime methods like DateTime.diff() or String.toUpperCase()
|
|
110
123
|
if (fnIR.type === 'member_access') {
|
|
@@ -164,6 +177,13 @@ const BUILTIN_TYPE_SELECTORS = new Set([
|
|
|
164
177
|
* Transform an AST type expression to IR type expression
|
|
165
178
|
*/
|
|
166
179
|
function transformTypeExprWithContext(typeExpr, env, defining, depth, maxDepth, allowUndefinedVariables) {
|
|
180
|
+
// Type expressions recurse in parallel to value expressions (nested arrays,
|
|
181
|
+
// schemas, unions). Count each level against the same guard so deeply nested
|
|
182
|
+
// types raise a typed error rather than overflowing the host call stack.
|
|
183
|
+
if (depth > maxDepth) {
|
|
184
|
+
throw new Error(`Maximum transform depth exceeded (${maxDepth})`);
|
|
185
|
+
}
|
|
186
|
+
const nextDepth = depth + 1;
|
|
167
187
|
switch (typeExpr.kind) {
|
|
168
188
|
case 'type_ref': {
|
|
169
189
|
const name = typeExpr.name;
|
|
@@ -180,7 +200,7 @@ function transformTypeExprWithContext(typeExpr, env, defining, depth, maxDepth,
|
|
|
180
200
|
case 'type_schema': {
|
|
181
201
|
const props = typeExpr.properties.map(prop => ({
|
|
182
202
|
key: prop.key,
|
|
183
|
-
typeExpr: transformTypeExprWithContext(prop.typeExpr, env, defining,
|
|
203
|
+
typeExpr: transformTypeExprWithContext(prop.typeExpr, env, defining, nextDepth, maxDepth, allowUndefinedVariables),
|
|
184
204
|
optional: prop.optional,
|
|
185
205
|
}));
|
|
186
206
|
// Transform extras if it's a TypeExpr, otherwise pass through as-is
|
|
@@ -189,37 +209,38 @@ function transformTypeExprWithContext(typeExpr, env, defining, depth, maxDepth,
|
|
|
189
209
|
extras = typeExpr.extras;
|
|
190
210
|
}
|
|
191
211
|
else {
|
|
192
|
-
extras = transformTypeExprWithContext(typeExpr.extras, env, defining,
|
|
212
|
+
extras = transformTypeExprWithContext(typeExpr.extras, env, defining, nextDepth, maxDepth, allowUndefinedVariables);
|
|
193
213
|
}
|
|
194
214
|
return (0, ir_1.irTypeSchema)(props, extras);
|
|
195
215
|
}
|
|
196
216
|
case 'subtype_constraint': {
|
|
197
217
|
// Transform the base type
|
|
198
|
-
const baseTypeIR = transformTypeExprWithContext(typeExpr.baseType, env, defining,
|
|
218
|
+
const baseTypeIR = transformTypeExprWithContext(typeExpr.baseType, env, defining, nextDepth, maxDepth, allowUndefinedVariables);
|
|
199
219
|
// Transform each constraint with the variable in scope
|
|
200
220
|
const constraintEnv = new Map(env);
|
|
201
221
|
constraintEnv.set(typeExpr.variable, types_1.Types.any);
|
|
202
222
|
const constraintsIR = typeExpr.constraints.map(c => ({
|
|
203
223
|
label: c.label,
|
|
204
|
-
condition: transformWithDepth(c.condition, constraintEnv, defining,
|
|
224
|
+
condition: transformWithDepth(c.condition, constraintEnv, defining, nextDepth, maxDepth, allowUndefinedVariables)
|
|
205
225
|
}));
|
|
206
226
|
return (0, ir_1.irSubtypeConstraint)(baseTypeIR, typeExpr.variable, constraintsIR);
|
|
207
227
|
}
|
|
208
228
|
case 'array_type':
|
|
209
|
-
return (0, ir_1.irArrayType)(transformTypeExprWithContext(typeExpr.elementType, env, defining,
|
|
229
|
+
return (0, ir_1.irArrayType)(transformTypeExprWithContext(typeExpr.elementType, env, defining, nextDepth, maxDepth, allowUndefinedVariables));
|
|
210
230
|
case 'union_type':
|
|
211
|
-
return (0, ir_1.irUnionType)(typeExpr.types.map(t => transformTypeExprWithContext(t, env, defining,
|
|
231
|
+
return (0, ir_1.irUnionType)(typeExpr.types.map(t => transformTypeExprWithContext(t, env, defining, nextDepth, maxDepth, allowUndefinedVariables)));
|
|
212
232
|
}
|
|
213
233
|
}
|
|
214
234
|
/**
|
|
215
235
|
* Transform a literal value (number or boolean)
|
|
216
236
|
*/
|
|
217
|
-
function transformLiteral(value) {
|
|
237
|
+
function transformLiteral(value, isFloat = false) {
|
|
218
238
|
if (typeof value === 'boolean') {
|
|
219
239
|
return (0, ir_1.irBool)(value);
|
|
220
240
|
}
|
|
221
|
-
// Distinguish int from float
|
|
222
|
-
|
|
241
|
+
// Distinguish int from float. `Number.isInteger(1.0)` is true, so a literal
|
|
242
|
+
// written `1.0` only stays a float thanks to the marker set by the parser.
|
|
243
|
+
if (Number.isInteger(value) && !isFloat) {
|
|
223
244
|
return (0, ir_1.irInt)(value);
|
|
224
245
|
}
|
|
225
246
|
return (0, ir_1.irFloat)(value);
|
|
@@ -236,6 +257,15 @@ function transformBinaryOp(operator, left, right, env, defining, depth, maxDepth
|
|
|
236
257
|
if (!fn) {
|
|
237
258
|
throw new Error(`Unknown binary operator: ${operator}`);
|
|
238
259
|
}
|
|
260
|
+
// Multiplication is numeric (plus the documented String * Number repeat). An
|
|
261
|
+
// array operand is a type error: it is meaningless on SQL, coerces to NaN on
|
|
262
|
+
// JavaScript, and on Ruby/Python repeats the array — an unbounded allocation
|
|
263
|
+
// (`[1] * 1000000000` exhausts host memory). Reject it statically so the DoS
|
|
264
|
+
// cannot be written in Elo source.
|
|
265
|
+
if (fn === 'mul' && (leftType.kind === 'array' || rightType.kind === 'array')) {
|
|
266
|
+
throw new Error(`Array multiplication is not supported: '*' requires numeric operands ` +
|
|
267
|
+
`(or String * Number). Repeating an array is not a valid Elo operation.`);
|
|
268
|
+
}
|
|
239
269
|
const resultType = typedefs_1.eloTypeDefs.lookup(fn, [leftType, rightType]);
|
|
240
270
|
return (0, ir_1.irCall)(fn, [leftIR, rightIR], [leftType, rightType], resultType);
|
|
241
271
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/transform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/transform.ts"],"names":[],"mappings":"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"}
|