a million fixes
This commit is contained in:
parent
b1696499e5
commit
c294d7fd6a
12 changed files with 140 additions and 168 deletions
|
|
@ -85,10 +85,7 @@ export function compile(ast: AST, useStore = true, bound = new Set<string>()): s
|
|||
const path = getPath(ast.target);
|
||||
const value = compile(ast.value, useStore, bound);
|
||||
|
||||
if (!useStore || !rootName) {
|
||||
const target = compile(ast.target, useStore, bound);
|
||||
return `(() => { ${target} = ${value}; return { _tag: "Rerender" }; })()`;
|
||||
}
|
||||
if (!rootName) throw new Error('Rebind target must be a variable');
|
||||
|
||||
if (path.length === 0) {
|
||||
return `({ _tag: "Rebind", _0: "${rootName}", _1: ${value} })`;
|
||||
|
|
@ -105,15 +102,15 @@ export function compile(ast: AST, useStore = true, bound = new Set<string>()): s
|
|||
|
||||
function sanitize(name: string, useStore = true): string {
|
||||
const ops: Record<string, string> = {
|
||||
'add': '_rt.add', 'sub': '_rt.sub', 'mul': '_rt.mul',
|
||||
'div': '_rt.div', 'mod': '_rt.mod', 'eq': '_rt.eq',
|
||||
'cat': '_rt.cat', 'gt': '_rt.gt', 'lt': '_rt.lt',
|
||||
'gte': '_rt.gte', 'lte': '_rt.lte', 'max': '_rt.max', 'min': '_rt.min',
|
||||
'add': '_rt.add', 'sub': '_rt.sub', 'mul': '_rt.mul', 'div': '_rt.div',
|
||||
'mod': '_rt.mod', 'pow': '_rt.pow',
|
||||
'eq': '_rt.eq', 'gt': '_rt.gt', 'lt': '_rt.lt', 'gte': '_rt.gte', 'lte': '_rt.lte',
|
||||
'cat': '_rt.cat', 'max': '_rt.max', 'min': '_rt.min',
|
||||
};
|
||||
|
||||
if (ops[name]) return ops[name];
|
||||
|
||||
const natives = ['eval', 'measure', 'measureText', 'storeSearch', 'getSource', 'debug', 'nth', 'len', 'slice', 'join', 'chars', 'split', 'str', 'redefine', 'undefine', 'stateful', 'batch', 'noOp', 'rerender', 'focus', 'ui'];
|
||||
const natives = ['eval', 'measure', 'measureText', 'storeSearch', 'getSource', 'debug', 'nth', 'len', 'slice', 'join', 'chars', 'split', 'str', 'redefine', 'undefine', 'batch', 'noOp', 'focus', 'ui'];
|
||||
if (natives.includes(name)) return `_rt.${name}`;
|
||||
|
||||
if (useStore) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue