| 4505 | } |
| 4506 | // override to handle promise-compatible and/or short-circuiting |
| 4507 | evaluate(context) { |
| 4508 | var self2 = this; |
| 4509 | var shortCircuitValue = this.operator === "or"; |
| 4510 | var lhsVal = this.lhs.evaluate(context); |
| 4511 | var continueWith = function(resolvedLhs) { |
| 4512 | if (!!resolvedLhs === shortCircuitValue) { |
| 4513 | return resolvedLhs; |
| 4514 | } |
| 4515 | var rhsVal = self2.rhs.evaluate(context); |
| 4516 | if (rhsVal && rhsVal.then) { |
| 4517 | return rhsVal.then((r) => self2.resolve(context, { lhs: resolvedLhs, rhs: r })); |
| 4518 | } |
| 4519 | return self2.resolve(context, { lhs: resolvedLhs, rhs: rhsVal }); |
| 4520 | }; |
| 4521 | if (lhsVal && lhsVal.then) { |
| 4522 | return lhsVal.then(continueWith); |
| 4523 | } |
| 4524 | return continueWith(lhsVal); |
| 4525 | } |
| 4526 | }; |
| 4527 | var DotOrColonPathNode = class extends Expression { |
| 4528 | constructor(path, separator) { |