@jbrowse/jexl 5.0.0 → 5.0.1

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.
@@ -5,6 +5,7 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.compileAst = compileAst;
8
+ const grammar_ts_1 = require("../grammar.js");
8
9
  /**
9
10
  * Writes a key that a plain assignment would mishandle. Storing to
10
11
  * "__proto__" invokes the prototype setter rather than creating a property, so
@@ -301,8 +302,23 @@ function compileNode(ast, grammar, scope) {
301
302
  const right = compile(node.right);
302
303
  if (op?.type === 'binaryOp' && op.evalOnDemand) {
303
304
  const { evalOnDemand } = op;
304
- // operands stay unevaluated behind an `eval` thunk, so operators such
305
- // as && and || can short-circuit
305
+ if (evalOnDemand === grammar_ts_1.and) {
306
+ return (ctx) => {
307
+ const value = left(ctx);
308
+ return value ? right(ctx) : value;
309
+ };
310
+ }
311
+ if (evalOnDemand === grammar_ts_1.or) {
312
+ return (ctx) => {
313
+ const value = left(ctx);
314
+ return value || right(ctx);
315
+ };
316
+ }
317
+ if (evalOnDemand === grammar_ts_1.nullish) {
318
+ return (ctx) => left(ctx) ?? right(ctx);
319
+ }
320
+ // a host's operator gets its operands unevaluated, behind `eval`
321
+ // thunks, so that it can short-circuit as it chooses
306
322
  return (ctx) => evalOnDemand({ eval: () => left(ctx) }, { eval: () => right(ctx) });
307
323
  }
308
324
  const fn = op?.type === 'binaryOp' ? op.eval : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/evaluator/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/evaluator/compile.ts"],"names":[],"mappings":"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"}
package/dist/grammar.d.ts CHANGED
@@ -68,4 +68,7 @@ export interface Grammar {
68
68
  getMember?: GetMember;
69
69
  variableReader?: VariableReader;
70
70
  }
71
+ export declare const and: BinaryOpEvalOnDemand;
72
+ export declare const or: BinaryOpEvalOnDemand;
73
+ export declare const nullish: BinaryOpEvalOnDemand;
71
74
  export declare const getGrammar: () => Grammar;
package/dist/grammar.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * Copyright 2020 Tom Shawver
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.getGrammar = void 0;
7
+ exports.getGrammar = exports.nullish = exports.or = exports.and = void 0;
8
8
  /* eslint eqeqeq:0 */
9
9
  const collections_ts_1 = require("./collections.js");
10
10
  const operators_ts_1 = require("./operators.js");
@@ -22,6 +22,20 @@ const greater = (left, right) => left != null && right != null && left > right;
22
22
  const atLeast = (left, right) => left != null && right != null && left >= right;
23
23
  const less = (left, right) => left != null && right != null && left < right;
24
24
  const atMost = (left, right) => left != null && right != null && left <= right;
25
+ // named so the compiler can recognize the built-in forms and short-circuit
26
+ // without the thunks a host's evalOnDemand operator is handed
27
+ const and = (left, right) => {
28
+ const leftVal = left.eval();
29
+ return leftVal ? right.eval() : leftVal;
30
+ };
31
+ exports.and = and;
32
+ const or = (left, right) => {
33
+ const leftVal = left.eval();
34
+ return leftVal || right.eval();
35
+ };
36
+ exports.or = or;
37
+ const nullish = (left, right) => left.eval() ?? right.eval();
38
+ exports.nullish = nullish;
25
39
  const equals = (left, right) => (0, operators_ts_1.isList)(left, right) ? (0, operators_ts_1.anyPair)(loose, left, right) : left == right;
26
40
  const getGrammar = () => ({
27
41
  /**
@@ -136,29 +150,17 @@ const getGrammar = () => ({
136
150
  '&&': {
137
151
  type: 'binaryOp',
138
152
  precedence: 11,
139
- evalOnDemand: (left, right) => {
140
- const leftVal = left.eval();
141
- if (!leftVal) {
142
- return leftVal;
143
- }
144
- return right.eval();
145
- }
153
+ evalOnDemand: exports.and
146
154
  },
147
155
  '||': {
148
156
  type: 'binaryOp',
149
157
  precedence: 10,
150
- evalOnDemand: (left, right) => {
151
- const leftVal = left.eval();
152
- if (leftVal) {
153
- return leftVal;
154
- }
155
- return right.eval();
156
- }
158
+ evalOnDemand: exports.or
157
159
  },
158
160
  '??': {
159
161
  type: 'binaryOp',
160
162
  precedence: 10,
161
- evalOnDemand: (left, right) => left.eval() ?? right.eval()
163
+ evalOnDemand: exports.nullish
162
164
  },
163
165
  in: {
164
166
  type: 'binaryOp',
@@ -1 +1 @@
1
- {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,qBAAqB;AAErB,qDAAsD;AACtD,iDAOuB;AAqGvB,MAAM,IAAI,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAE,EAAE,CAChD,IAAe,GAAI,KAAgB,CAAA;AACtC,MAAM,KAAK,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAE,EAAE,CACjD,IAAe,GAAI,KAAgB,CAAA;AACtC,MAAM,KAAK,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAE,EAAE,CACjD,IAAe,GAAI,KAAgB,CAAA;AACtC,MAAM,MAAM,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAE,EAAE,CAClD,IAAe,GAAI,KAAgB,CAAA;AACtC,MAAM,WAAW,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAE,EAAE,CACxD,IAAI,CAAC,KAAK,CAAE,IAAe,GAAI,KAAgB,CAAC,CAAA;AAClD,MAAM,MAAM,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAE,EAAE,CAClD,IAAe,GAAI,KAAgB,CAAA;AACtC,MAAM,KAAK,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAE,EAAE,CACjD,IAAe,IAAK,KAAgB,CAAA;AACvC,MAAM,KAAK,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAA;AAClE,4EAA4E;AAC5E,6DAA6D;AAC7D,MAAM,OAAO,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAE,EAAE,CACpD,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAK,IAAe,GAAI,KAAgB,CAAA;AACvE,MAAM,OAAO,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAE,EAAE,CACpD,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAK,IAAe,IAAK,KAAgB,CAAA;AACxE,MAAM,IAAI,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAE,EAAE,CACjD,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAK,IAAe,GAAI,KAAgB,CAAA;AACvE,MAAM,MAAM,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAE,EAAE,CACnD,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAK,IAAe,IAAK,KAAgB,CAAA;AACxE,MAAM,MAAM,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAE,EAAE,CACnD,IAAA,qBAAM,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,sBAAO,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAA;AAE5D,MAAM,UAAU,GAAG,GAAY,EAAE,CAAC,CAAC;IACxC;;;;OAIG;IACH,QAAQ,EAAE;QACR,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACpB,GAAG,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;QAC5B,GAAG,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;QAC7B,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QACzB,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;QAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QACtB,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QACtB,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;QAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;QAC3B,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QACzB,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;QAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QACvB,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAA,2BAAY,EAAC,IAAI,EAAE,KAAK,CAAC;gBACvB,CAAC,CAAC,IAAA,uBAAQ,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;gBAC7B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;SACxB;QACD,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAA,qBAAM,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,uBAAQ,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;YACzE,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAClB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE,KAAgB,CAAC;gBAC1C,CAAC,CAAC,CAAE,KAAgB;SACzB;QACD,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAA,qBAAM,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,uBAAQ,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;SAC1E;QACD,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAA,qBAAM,EAAC,IAAI,EAAE,KAAK,CAAC;gBACjB,CAAC,CAAC,IAAA,uBAAQ,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;gBAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;SAC1B;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAA,qBAAM,EAAC,IAAI,EAAE,KAAK,CAAC;gBACjB,CAAC,CAAC,IAAA,uBAAQ,EAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;gBACpC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC;SAC/B;QACD,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAA,qBAAM,EAAC,IAAI,EAAE,KAAK,CAAC;gBACjB,CAAC,CAAC,IAAA,uBAAQ,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;gBAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;SAC1B;QACD,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,IAAI;YACtB,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAA,qBAAM,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,uBAAQ,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;SAC1E;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,MAAM;SACb;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;SAC5C;QACD,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,sBAAO;SACd;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAA,sBAAO,EAAC,IAAI,EAAE,KAAK,CAAC;SAC7C;QACD,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAA,qBAAM,EAAC,IAAI,EAAE,KAAK,CAAC;gBACjB,CAAC,CAAC,IAAA,sBAAO,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;gBAC/B,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SAC3B;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAA,qBAAM,EAAC,IAAI,EAAE,KAAK,CAAC;gBACjB,CAAC,CAAC,IAAA,sBAAO,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;gBAC/B,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SAC3B;QACD,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAA,qBAAM,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,sBAAO,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;SACvE;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAA,qBAAM,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,sBAAO,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;SAC3E;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,OAAO,CAAA;gBAChB,CAAC;gBACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;YACrB,CAAC;SACF;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBAC3B,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,OAAO,CAAA;gBAChB,CAAC;gBACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;YACrB,CAAC;SACF;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE;SAC3D;QACD,EAAE,EAAE;YACF,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,mBAAI;SACX;QACD,GAAG,EAAE;YACH,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK;SACxB;QACD,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,CAAC;YACb,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;YACjD,CAAC;SACF;KACF;IAED;;;;;;;;;;;;;OAaG;IACH,SAAS,EAAE,EAAE,GAAG,oCAAmB,EAAE;CACtC,CAAC,CAAA;AAvLW,QAAA,UAAU,cAuLrB"}
1
+ {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * Jexl
3
3
  * Copyright 2020 Tom Shawver
4
4
  */
5
+ import { and, nullish, or } from "../grammar.js";
5
6
  /**
6
7
  * Writes a key that a plain assignment would mishandle. Storing to
7
8
  * "__proto__" invokes the prototype setter rather than creating a property, so
@@ -298,8 +299,23 @@ function compileNode(ast, grammar, scope) {
298
299
  const right = compile(node.right);
299
300
  if (op?.type === 'binaryOp' && op.evalOnDemand) {
300
301
  const { evalOnDemand } = op;
301
- // operands stay unevaluated behind an `eval` thunk, so operators such
302
- // as && and || can short-circuit
302
+ if (evalOnDemand === and) {
303
+ return (ctx) => {
304
+ const value = left(ctx);
305
+ return value ? right(ctx) : value;
306
+ };
307
+ }
308
+ if (evalOnDemand === or) {
309
+ return (ctx) => {
310
+ const value = left(ctx);
311
+ return value || right(ctx);
312
+ };
313
+ }
314
+ if (evalOnDemand === nullish) {
315
+ return (ctx) => left(ctx) ?? right(ctx);
316
+ }
317
+ // a host's operator gets its operands unevaluated, behind `eval`
318
+ // thunks, so that it can short-circuit as it chooses
303
319
  return (ctx) => evalOnDemand({ eval: () => left(ctx) }, { eval: () => right(ctx) });
304
320
  }
305
321
  const fn = op?.type === 'binaryOp' ? op.eval : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/evaluator/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/evaluator/compile.ts"],"names":[],"mappings":"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"}
package/esm/grammar.d.ts CHANGED
@@ -68,4 +68,7 @@ export interface Grammar {
68
68
  getMember?: GetMember;
69
69
  variableReader?: VariableReader;
70
70
  }
71
+ export declare const and: BinaryOpEvalOnDemand;
72
+ export declare const or: BinaryOpEvalOnDemand;
73
+ export declare const nullish: BinaryOpEvalOnDemand;
71
74
  export declare const getGrammar: () => Grammar;
package/esm/grammar.js CHANGED
@@ -19,6 +19,17 @@ const greater = (left, right) => left != null && right != null && left > right;
19
19
  const atLeast = (left, right) => left != null && right != null && left >= right;
20
20
  const less = (left, right) => left != null && right != null && left < right;
21
21
  const atMost = (left, right) => left != null && right != null && left <= right;
22
+ // named so the compiler can recognize the built-in forms and short-circuit
23
+ // without the thunks a host's evalOnDemand operator is handed
24
+ export const and = (left, right) => {
25
+ const leftVal = left.eval();
26
+ return leftVal ? right.eval() : leftVal;
27
+ };
28
+ export const or = (left, right) => {
29
+ const leftVal = left.eval();
30
+ return leftVal || right.eval();
31
+ };
32
+ export const nullish = (left, right) => left.eval() ?? right.eval();
22
33
  const equals = (left, right) => isList(left, right) ? anyPair(loose, left, right) : left == right;
23
34
  export const getGrammar = () => ({
24
35
  /**
@@ -133,29 +144,17 @@ export const getGrammar = () => ({
133
144
  '&&': {
134
145
  type: 'binaryOp',
135
146
  precedence: 11,
136
- evalOnDemand: (left, right) => {
137
- const leftVal = left.eval();
138
- if (!leftVal) {
139
- return leftVal;
140
- }
141
- return right.eval();
142
- }
147
+ evalOnDemand: and
143
148
  },
144
149
  '||': {
145
150
  type: 'binaryOp',
146
151
  precedence: 10,
147
- evalOnDemand: (left, right) => {
148
- const leftVal = left.eval();
149
- if (leftVal) {
150
- return leftVal;
151
- }
152
- return right.eval();
153
- }
152
+ evalOnDemand: or
154
153
  },
155
154
  '??': {
156
155
  type: 'binaryOp',
157
156
  precedence: 10,
158
- evalOnDemand: (left, right) => left.eval() ?? right.eval()
157
+ evalOnDemand: nullish
159
158
  },
160
159
  in: {
161
160
  type: 'binaryOp',
@@ -1 +1 @@
1
- {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/jexl",
3
- "version": "5.0.0",
3
+ "version": "5.0.1",
4
4
  "description": "A fork of the jexl lang for jbrowse",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -3,6 +3,8 @@
3
3
  * Copyright 2020 Tom Shawver
4
4
  */
5
5
 
6
+ import { and, nullish, or } from '../grammar.ts'
7
+
6
8
  import type { Grammar } from '../grammar.ts'
7
9
  import type {
8
10
  AstNode,
@@ -375,8 +377,23 @@ function compileNode(
375
377
  const right = compile(node.right!)
376
378
  if (op?.type === 'binaryOp' && op.evalOnDemand) {
377
379
  const { evalOnDemand } = op
378
- // operands stay unevaluated behind an `eval` thunk, so operators such
379
- // as && and || can short-circuit
380
+ if (evalOnDemand === and) {
381
+ return (ctx) => {
382
+ const value = left(ctx)
383
+ return value ? right(ctx) : value
384
+ }
385
+ }
386
+ if (evalOnDemand === or) {
387
+ return (ctx) => {
388
+ const value = left(ctx)
389
+ return value || right(ctx)
390
+ }
391
+ }
392
+ if (evalOnDemand === nullish) {
393
+ return (ctx) => left(ctx) ?? right(ctx)
394
+ }
395
+ // a host's operator gets its operands unevaluated, behind `eval`
396
+ // thunks, so that it can short-circuit as it chooses
380
397
  return (ctx) =>
381
398
  evalOnDemand({ eval: () => left(ctx) }, { eval: () => right(ctx) })
382
399
  }
package/src/grammar.ts CHANGED
@@ -139,6 +139,19 @@ const less = (left: JexlValue, right: JexlValue) =>
139
139
  left != null && right != null && (left as number) < (right as number)
140
140
  const atMost = (left: JexlValue, right: JexlValue) =>
141
141
  left != null && right != null && (left as number) <= (right as number)
142
+ // named so the compiler can recognize the built-in forms and short-circuit
143
+ // without the thunks a host's evalOnDemand operator is handed
144
+ export const and: BinaryOpEvalOnDemand = (left, right) => {
145
+ const leftVal = left.eval()
146
+ return leftVal ? right.eval() : leftVal
147
+ }
148
+ export const or: BinaryOpEvalOnDemand = (left, right) => {
149
+ const leftVal = left.eval()
150
+ return leftVal || right.eval()
151
+ }
152
+ export const nullish: BinaryOpEvalOnDemand = (left, right) =>
153
+ left.eval() ?? right.eval()
154
+
142
155
  const equals = (left: JexlValue, right: JexlValue) =>
143
156
  isList(left, right) ? anyPair(loose, left, right) : left == right
144
157
 
@@ -267,29 +280,17 @@ export const getGrammar = (): Grammar => ({
267
280
  '&&': {
268
281
  type: 'binaryOp',
269
282
  precedence: 11,
270
- evalOnDemand: (left, right) => {
271
- const leftVal = left.eval()
272
- if (!leftVal) {
273
- return leftVal
274
- }
275
- return right.eval()
276
- }
283
+ evalOnDemand: and
277
284
  },
278
285
  '||': {
279
286
  type: 'binaryOp',
280
287
  precedence: 10,
281
- evalOnDemand: (left, right) => {
282
- const leftVal = left.eval()
283
- if (leftVal) {
284
- return leftVal
285
- }
286
- return right.eval()
287
- }
288
+ evalOnDemand: or
288
289
  },
289
290
  '??': {
290
291
  type: 'binaryOp',
291
292
  precedence: 10,
292
- evalOnDemand: (left, right) => left.eval() ?? right.eval()
293
+ evalOnDemand: nullish
293
294
  },
294
295
  in: {
295
296
  type: 'binaryOp',