Skip to content

Commit 0fbd703

Browse files
committed
fix: Remove $ syntax for vars, replace by vars/vars()
1 parent e5e9af0 commit 0fbd703

File tree

6 files changed

+2241
-2300
lines changed

6 files changed

+2241
-2300
lines changed

logics-js/logics.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ export default class Logics {
119119
},
120120
upper: (str) => str.toString().toUpperCase(),
121121
values: (val) => Object.values(val.toDict().valueOf()),
122+
// vars: (name) => ... is a special case handled inline!
122123
};
123124
}
124125

@@ -183,6 +184,11 @@ export default class Logics {
183184
return false;
184185
}
185186

187+
// Use this function to access values
188+
function _values(name) {
189+
return name === undefined ? values : values[name.toString()]
190+
}
191+
186192
// Flow operations
187193
if (
188194
!action(node.emit, {
@@ -207,6 +213,9 @@ export default class Logics {
207213
}
208214

209215
let fn = this.functions[fname];
216+
if (fn === undefined && fname == "vars") {
217+
fn = _values;
218+
}
210219

211220
if (fn !== undefined) {
212221
// Convert all args to Logics values
@@ -347,11 +356,10 @@ export default class Logics {
347356
pos: () => stack.op1((a) => a.__pos__()),
348357
pow: () => stack.op2((a, b) => a.__pow__(b)),
349358
index: () => stack.op2((value, idx) => value.__getitem__(idx)),
350-
load: () => stack.op1((name) => values[name.toString()]),
359+
load: () => stack.op1((name) => name == "vars" ? _values() : _values(name)),
351360
slice: () => stack.op3((value, from, to) => value.__getitem__(from, to)),
352361
strings: () => stack.op0(stack.splice(-node.children.length).join("")),
353362
sub: () => stack.op2((a, b) => a.__sub__(b)),
354-
vars: () => stack.op0(values),
355363
});
356364
}
357365
}

0 commit comments

Comments
 (0)