occam-furtle 3.0.461 → 3.0.464

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.
Files changed (79) hide show
  1. package/lib/context/block.js +2 -2
  2. package/lib/element/anonymousProcedure.js +12 -11
  3. package/lib/element/assignment/list.js +5 -5
  4. package/lib/element/assignment/object.js +35 -31
  5. package/lib/element/binding/named.js +6 -5
  6. package/lib/element/binding.js +5 -4
  7. package/lib/element/bindings/named.js +34 -28
  8. package/lib/element/bindings.js +14 -10
  9. package/lib/element/contains.js +4 -4
  10. package/lib/element/endsWith.js +4 -4
  11. package/lib/element/every.js +4 -4
  12. package/lib/element/expression.js +17 -27
  13. package/lib/element/lengthOf.js +4 -4
  14. package/lib/element/nodeQuery.js +7 -7
  15. package/lib/element/nodesQuery.js +6 -6
  16. package/lib/element/parameter.js +4 -3
  17. package/lib/element/parameters.js +14 -11
  18. package/lib/element/primitive.js +3 -3
  19. package/lib/element/procedure.js +13 -12
  20. package/lib/element/procedureCall.js +12 -10
  21. package/lib/element/reduce.js +3 -3
  22. package/lib/element/returnBlock.js +2 -2
  23. package/lib/element/returnStatement.js +3 -3
  24. package/lib/element/some.js +3 -3
  25. package/lib/element/startsWith.js +4 -4
  26. package/lib/element/term/bracketed.js +3 -3
  27. package/lib/element/term/comparison.js +4 -4
  28. package/lib/element/term/logical.js +5 -5
  29. package/lib/element/term/negated.js +4 -4
  30. package/lib/element/term.js +8 -10
  31. package/lib/element/terms.js +13 -14
  32. package/lib/element/ternary.js +2 -2
  33. package/lib/element/toInteger.js +5 -5
  34. package/lib/element/tryInteger.js +4 -4
  35. package/lib/element/value.js +4 -6
  36. package/lib/element/values.js +13 -11
  37. package/lib/element/variable.js +4 -4
  38. package/lib/nominalValueProperties.js +18 -17
  39. package/lib/nominalValueProperty.js +3 -3
  40. package/package.json +2 -2
  41. package/src/context/block.js +1 -1
  42. package/src/element/anonymousProcedure.js +15 -15
  43. package/src/element/assignment/list.js +4 -4
  44. package/src/element/assignment/object.js +36 -34
  45. package/src/element/binding/named.js +6 -4
  46. package/src/element/binding.js +5 -3
  47. package/src/element/bindings/named.js +46 -34
  48. package/src/element/bindings.js +19 -11
  49. package/src/element/contains.js +3 -3
  50. package/src/element/endsWith.js +3 -3
  51. package/src/element/every.js +3 -3
  52. package/src/element/expression.js +17 -35
  53. package/src/element/lengthOf.js +3 -3
  54. package/src/element/nodeQuery.js +6 -6
  55. package/src/element/nodesQuery.js +5 -5
  56. package/src/element/parameter.js +4 -2
  57. package/src/element/parameters.js +19 -12
  58. package/src/element/primitive.js +2 -2
  59. package/src/element/procedure.js +16 -16
  60. package/src/element/procedureCall.js +11 -10
  61. package/src/element/reduce.js +2 -2
  62. package/src/element/returnBlock.js +1 -1
  63. package/src/element/returnStatement.js +2 -2
  64. package/src/element/some.js +2 -2
  65. package/src/element/startsWith.js +3 -3
  66. package/src/element/term/bracketed.js +2 -2
  67. package/src/element/term/comparison.js +3 -3
  68. package/src/element/term/logical.js +4 -4
  69. package/src/element/term/negated.js +3 -3
  70. package/src/element/term.js +7 -11
  71. package/src/element/terms.js +20 -19
  72. package/src/element/ternary.js +1 -1
  73. package/src/element/toInteger.js +4 -4
  74. package/src/element/tryInteger.js +3 -3
  75. package/src/element/value.js +3 -7
  76. package/src/element/values.js +22 -17
  77. package/src/element/variable.js +3 -3
  78. package/src/nominalValueProperties.js +22 -18
  79. package/src/nominalValueProperty.js +2 -2
@@ -30,34 +30,34 @@ const _default = (0, _elements.define)(class NodesQuery extends _occamlanguages.
30
30
  getQuery() {
31
31
  return this.query;
32
32
  }
33
- evaluate(context) {
33
+ evaluate(context, back, forward) {
34
34
  let value;
35
35
  const nodesQueryString = this.getString(); ///
36
36
  context.trace(`Evaluating the '${nodesQueryString}' function...`);
37
37
  if (this.query === null) {
38
38
  const message = `Cannot evaluate the '${nodesQueryString}' function because its expression is malformed.`, exception = _exception.default.fromMessage(message);
39
- throw exception;
39
+ return back(exception);
40
40
  }
41
41
  value = this.variable.evaluate(context);
42
42
  const valueType = value.getType(), valueTypeNominalValueType = valueType.isNominalValueType();
43
43
  if (!valueTypeNominalValueType) {
44
44
  const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.NOMINAL_VALUE_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
45
- throw exception;
45
+ return back(exception);
46
46
  }
47
47
  let node;
48
48
  const primitiveValue = value.getPrimitiveValue(), nominalValue = primitiveValue; ///
49
49
  node = nominalValue.getNode();
50
50
  if (node === null) {
51
51
  const valueString = value.getString(), message = `The '${valueString}' value's node is null.`, exception = _exception.default.fromMessage(message);
52
- throw exception;
52
+ return back(exception);
53
53
  }
54
54
  const nodes = this.query.execute(node);
55
55
  value = (0, _value.valueFromNodesAndNominalValue)(nodes, nominalValue);
56
56
  const valueString = value.getString();
57
57
  context.debug(`...evaluated the '${nodesQueryString}' function as '${valueString}'.`);
58
- return value;
58
+ return forward(value);
59
59
  }
60
60
  static name = "NodesQuery";
61
61
  });
62
62
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L25vZGVzUXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBOb2Rlc1F1ZXJ5IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHF1ZXJ5KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLnF1ZXJ5ID0gcXVlcnk7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFF1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5O1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IG5vZGVzUXVlcnlTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtub2Rlc1F1ZXJ5U3RyaW5nfScgZnVuY3Rpb24uLi5gKTtcblxuICAgIGlmICh0aGlzLnF1ZXJ5ID09PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYENhbm5vdCBldmFsdWF0ZSB0aGUgJyR7bm9kZXNRdWVyeVN0cmluZ30nIGZ1bmN0aW9uIGJlY2F1c2UgaXRzIGV4cHJlc3Npb24gaXMgbWFsZm9ybWVkLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSA9IHZhbHVlVHlwZS5pc05vbWluYWxWYWx1ZVR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBsZXQgbm9kZTtcblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZTsgIC8vL1xuXG4gICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCk7XG5cbiAgICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyBub2RlIGlzIG51bGwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGVzID0gdGhpcy5xdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gICAgdmFsdWUgPSB2YWx1ZUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZShub2Rlcywgbm9taW5hbFZhbHVlKTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke25vZGVzUXVlcnlTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk5vZGVzUXVlcnlcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIk5vZGVzUXVlcnkiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJxdWVyeSIsImdldFZhcmlhYmxlIiwiZ2V0UXVlcnkiLCJldmFsdWF0ZSIsInZhbHVlIiwibm9kZXNRdWVyeVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUiLCJpc05vbWluYWxWYWx1ZVR5cGUiLCJ2YWx1ZVN0cmluZyIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsIm5vbWluYWxWYWx1ZSIsImdldE5vZGUiLCJub2RlcyIsImV4ZWN1dGUiLCJ2YWx1ZUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZSIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFBOzs7Z0NBUndCO2tFQUVGOzBCQUVDOzJCQUNpQjt1QkFDTTs7Ozs7O01BRTlDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsbUJBQW1CQyx1QkFBTztJQUNwRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsS0FBSyxDQUFFO1FBQzlELEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtJQUNmO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0YsUUFBUTtJQUN0QjtJQUVBRyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNGLEtBQUs7SUFDbkI7SUFFQUcsU0FBU1IsT0FBTyxFQUFFO1FBQ2hCLElBQUlTO1FBRUosTUFBTUMsbUJBQW1CLElBQUksQ0FBQ0MsU0FBUyxJQUFLLEdBQUc7UUFFL0NYLFFBQVFZLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixpQkFBaUIsYUFBYSxDQUFDO1FBRWhFLElBQUksSUFBSSxDQUFDTCxLQUFLLEtBQUssTUFBTTtZQUN2QixNQUFNUSxVQUFVLENBQUMscUJBQXFCLEVBQUVILGlCQUFpQiwrQ0FBK0MsQ0FBQyxFQUNuR0ksWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUFMLFFBQVEsSUFBSSxDQUFDTCxRQUFRLENBQUNJLFFBQVEsQ0FBQ1I7UUFFL0IsTUFBTWlCLFlBQVlSLE1BQU1TLE9BQU8sSUFDekJDLDRCQUE0QkYsVUFBVUcsa0JBQWtCO1FBRTlELElBQUksQ0FBQ0QsMkJBQTJCO1lBQzlCLE1BQU1FLGNBQWNaLE1BQU1FLFNBQVMsSUFDN0JFLFVBQVUsQ0FBQyxLQUFLLEVBQUVRLFlBQVksV0FBVyxFQUFFSixVQUFVLGtCQUFrQixFQUFFSyxrQ0FBdUIsQ0FBQyxFQUFFLENBQUMsRUFDcEdSLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBLElBQUlaO1FBRUosTUFBTXFCLGlCQUFpQmQsTUFBTWUsaUJBQWlCLElBQ3hDQyxlQUFlRixnQkFBaUIsR0FBRztRQUV6Q3JCLE9BQU91QixhQUFhQyxPQUFPO1FBRTNCLElBQUl4QixTQUFTLE1BQU07WUFDakIsTUFBTW1CLGNBQWNaLE1BQU1FLFNBQVMsSUFDN0JFLFVBQVUsQ0FBQyxLQUFLLEVBQUVRLFlBQVksdUJBQXVCLENBQUMsRUFDdERQLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBLE1BQU1hLFFBQVEsSUFBSSxDQUFDdEIsS0FBSyxDQUFDdUIsT0FBTyxDQUFDMUI7UUFFakNPLFFBQVFvQixJQUFBQSxvQ0FBNkIsRUFBQ0YsT0FBT0Y7UUFFN0MsTUFBTUosY0FBY1osTUFBTUUsU0FBUztRQUVuQ1gsUUFBUThCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFcEIsaUJBQWlCLGVBQWUsRUFBRVcsWUFBWSxFQUFFLENBQUM7UUFFcEYsT0FBT1o7SUFDVDtJQUVBLE9BQU9zQixPQUFPLGFBQWE7QUFDN0IifQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L25vZGVzUXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBOb2Rlc1F1ZXJ5IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHF1ZXJ5KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLnF1ZXJ5ID0gcXVlcnk7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFF1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5O1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IG5vZGVzUXVlcnlTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtub2Rlc1F1ZXJ5U3RyaW5nfScgZnVuY3Rpb24uLi5gKTtcblxuICAgIGlmICh0aGlzLnF1ZXJ5ID09PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYENhbm5vdCBldmFsdWF0ZSB0aGUgJyR7bm9kZXNRdWVyeVN0cmluZ30nIGZ1bmN0aW9uIGJlY2F1c2UgaXRzIGV4cHJlc3Npb24gaXMgbWFsZm9ybWVkLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgdmFsdWUgPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUgPSB2YWx1ZVR5cGUuaXNOb21pbmFsVmFsdWVUeXBlKCk7XG5cbiAgICBpZiAoIXZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7Tk9NSU5BTF9WQUxVRV9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGxldCBub2RlO1xuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlOyAgLy8vXG5cbiAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKTtcblxuICAgIGlmIChub2RlID09PSBudWxsKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzIG5vZGUgaXMgbnVsbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGVzID0gdGhpcy5xdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gICAgdmFsdWUgPSB2YWx1ZUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZShub2Rlcywgbm9taW5hbFZhbHVlKTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke25vZGVzUXVlcnlTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk5vZGVzUXVlcnlcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIk5vZGVzUXVlcnkiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJxdWVyeSIsImdldFZhcmlhYmxlIiwiZ2V0UXVlcnkiLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwidmFsdWUiLCJub2Rlc1F1ZXJ5U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSIsImlzTm9taW5hbFZhbHVlVHlwZSIsInZhbHVlU3RyaW5nIiwiTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibm9taW5hbFZhbHVlIiwiZ2V0Tm9kZSIsIm5vZGVzIiwiZXhlY3V0ZSIsInZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OztnQ0FSd0I7a0VBRUY7MEJBRUM7MkJBQ2lCO3VCQUNNOzs7Ozs7TUFFOUMsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxtQkFBbUJDLHVCQUFPO0lBQ3BELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxLQUFLLENBQUU7UUFDOUQsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO0lBQ2Y7SUFFQUMsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDRixRQUFRO0lBQ3RCO0lBRUFHLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0YsS0FBSztJQUNuQjtJQUVBRyxTQUFTUixPQUFPLEVBQUVTLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQy9CLElBQUlDO1FBRUosTUFBTUMsbUJBQW1CLElBQUksQ0FBQ0MsU0FBUyxJQUFLLEdBQUc7UUFFL0NiLFFBQVFjLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixpQkFBaUIsYUFBYSxDQUFDO1FBRWhFLElBQUksSUFBSSxDQUFDUCxLQUFLLEtBQUssTUFBTTtZQUN2QixNQUFNVSxVQUFVLENBQUMscUJBQXFCLEVBQUVILGlCQUFpQiwrQ0FBK0MsQ0FBQyxFQUNuR0ksWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPTixLQUFLTztRQUNkO1FBRUFMLFFBQVEsSUFBSSxDQUFDUCxRQUFRLENBQUNJLFFBQVEsQ0FBQ1I7UUFFL0IsTUFBTW1CLFlBQVlSLE1BQU1TLE9BQU8sSUFDekJDLDRCQUE0QkYsVUFBVUcsa0JBQWtCO1FBRTlELElBQUksQ0FBQ0QsMkJBQTJCO1lBQzlCLE1BQU1FLGNBQWNaLE1BQU1FLFNBQVMsSUFDN0JFLFVBQVUsQ0FBQyxLQUFLLEVBQUVRLFlBQVksV0FBVyxFQUFFSixVQUFVLGtCQUFrQixFQUFFSyxrQ0FBdUIsQ0FBQyxFQUFFLENBQUMsRUFDcEdSLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsT0FBT04sS0FBS087UUFDZDtRQUVBLElBQUlkO1FBRUosTUFBTXVCLGlCQUFpQmQsTUFBTWUsaUJBQWlCLElBQ3hDQyxlQUFlRixnQkFBaUIsR0FBRztRQUV6Q3ZCLE9BQU95QixhQUFhQyxPQUFPO1FBRTNCLElBQUkxQixTQUFTLE1BQU07WUFDakIsTUFBTXFCLGNBQWNaLE1BQU1FLFNBQVMsSUFDN0JFLFVBQVUsQ0FBQyxLQUFLLEVBQUVRLFlBQVksdUJBQXVCLENBQUMsRUFDdERQLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsT0FBT04sS0FBS087UUFDZDtRQUVBLE1BQU1hLFFBQVEsSUFBSSxDQUFDeEIsS0FBSyxDQUFDeUIsT0FBTyxDQUFDNUI7UUFFakNTLFFBQVFvQixJQUFBQSxvQ0FBNkIsRUFBQ0YsT0FBT0Y7UUFFN0MsTUFBTUosY0FBY1osTUFBTUUsU0FBUztRQUVuQ2IsUUFBUWdDLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFcEIsaUJBQWlCLGVBQWUsRUFBRVcsWUFBWSxFQUFFLENBQUM7UUFFcEYsT0FBT2IsUUFBUUM7SUFDakI7SUFFQSxPQUFPc0IsT0FBTyxhQUFhO0FBQzdCIn0=
@@ -28,17 +28,18 @@ const _default = (0, _elements.define)(class Parameter extends _occamlanguages.E
28
28
  getName() {
29
29
  return this.name;
30
30
  }
31
- compareValue(value, context) {
31
+ compareValue(value, context, back, forward) {
32
32
  const valueString = value.getString(), parameterString = this.getString(); ///
33
33
  context.trace(`Comparing the '${valueString}' value against the '${parameterString}' parameter...`);
34
34
  const valueType = value.getType(), typeEqualToValueType = this.type.isEqualTo(valueType);
35
35
  if (!typeEqualToValueType) {
36
36
  const typeString = ths.type.getString(), message = `The '${valueString}' value's '${valueType}' type is not equal to the '${parameterString}' parameter's '${typeString}' type.`, exception = _exception.default.fromMessage(message);
37
- throw exception;
37
+ return back(exception);
38
38
  }
39
39
  context.debug(`...comparing the '${valueString}' value against the '${parameterString}' parameter.`);
40
+ return forward();
40
41
  }
41
42
  static name = "Parameter";
42
43
  });
43
44
 
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUGFyYW1ldGVyIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbmFtZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBjb21wYXJlVmFsdWUodmFsdWUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgIHBhcmFtZXRlclN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSBhZ2FpbnN0IHRoZSAnJHtwYXJhbWV0ZXJTdHJpbmd9JyBwYXJhbWV0ZXIuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb1ZhbHVlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG8odmFsdWVUeXBlKTtcblxuICAgIGlmICghdHlwZUVxdWFsVG9WYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aHMudHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIGlzIG5vdCBlcXVhbCB0byB0aGUgJyR7cGFyYW1ldGVyU3RyaW5nfScgcGFyYW1ldGVyJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmluZyB0aGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSBhZ2FpbnN0IHRoZSAnJHtwYXJhbWV0ZXJTdHJpbmd9JyBwYXJhbWV0ZXIuYCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUGFyYW1ldGVyXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJQYXJhbWV0ZXIiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidHlwZSIsIm5hbWUiLCJnZXRUeXBlIiwiZ2V0TmFtZSIsImNvbXBhcmVWYWx1ZSIsInZhbHVlIiwidmFsdWVTdHJpbmciLCJnZXRTdHJpbmciLCJwYXJhbWV0ZXJTdHJpbmciLCJ0cmFjZSIsInZhbHVlVHlwZSIsInR5cGVFcXVhbFRvVmFsdWVUeXBlIiwiaXNFcXVhbFRvIiwidHlwZVN0cmluZyIsInRocyIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQUE7OztnQ0FOd0I7a0VBRUY7MEJBRUM7Ozs7OztNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGtCQUFrQkMsdUJBQU87SUFDbkQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLElBQUksQ0FBRTtRQUN6RCxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0YsSUFBSTtJQUNsQjtJQUVBRyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7SUFDbEI7SUFFQUcsYUFBYUMsS0FBSyxFQUFFVCxPQUFPLEVBQUU7UUFDM0IsTUFBTVUsY0FBY0QsTUFBTUUsU0FBUyxJQUM3QkMsa0JBQWtCLElBQUksQ0FBQ0QsU0FBUyxJQUFLLEdBQUc7UUFFOUNYLFFBQVFhLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUgsWUFBWSxxQkFBcUIsRUFBRUUsZ0JBQWdCLGNBQWMsQ0FBQztRQUVsRyxNQUFNRSxZQUFZTCxNQUFNSCxPQUFPLElBQ3pCUyx1QkFBdUIsSUFBSSxDQUFDWCxJQUFJLENBQUNZLFNBQVMsQ0FBQ0Y7UUFFakQsSUFBSSxDQUFDQyxzQkFBc0I7WUFDekIsTUFBTUUsYUFBYUMsSUFBSWQsSUFBSSxDQUFDTyxTQUFTLElBQy9CUSxVQUFVLENBQUMsS0FBSyxFQUFFVCxZQUFZLFdBQVcsRUFBRUksVUFBVSw0QkFBNEIsRUFBRUYsZ0JBQWdCLGVBQWUsRUFBRUssV0FBVyxPQUFPLENBQUMsRUFDdklHLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBcEIsUUFBUXVCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFYixZQUFZLHFCQUFxQixFQUFFRSxnQkFBZ0IsWUFBWSxDQUFDO0lBQ3JHO0lBRUEsT0FBT1AsT0FBTyxZQUFZO0FBQzVCIn0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUGFyYW1ldGVyIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbmFtZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBjb21wYXJlVmFsdWUodmFsdWUsIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgIHBhcmFtZXRlclN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSBhZ2FpbnN0IHRoZSAnJHtwYXJhbWV0ZXJTdHJpbmd9JyBwYXJhbWV0ZXIuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb1ZhbHVlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG8odmFsdWVUeXBlKTtcblxuICAgIGlmICghdHlwZUVxdWFsVG9WYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aHMudHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIGlzIG5vdCBlcXVhbCB0byB0aGUgJyR7cGFyYW1ldGVyU3RyaW5nfScgcGFyYW1ldGVyJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5jb21wYXJpbmcgdGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUgYWdhaW5zdCB0aGUgJyR7cGFyYW1ldGVyU3RyaW5nfScgcGFyYW1ldGVyLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJQYXJhbWV0ZXJcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlBhcmFtZXRlciIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0eXBlIiwibmFtZSIsImdldFR5cGUiLCJnZXROYW1lIiwiY29tcGFyZVZhbHVlIiwidmFsdWUiLCJiYWNrIiwiZm9yd2FyZCIsInZhbHVlU3RyaW5nIiwiZ2V0U3RyaW5nIiwicGFyYW1ldGVyU3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJ0eXBlRXF1YWxUb1ZhbHVlVHlwZSIsImlzRXF1YWxUbyIsInR5cGVTdHJpbmciLCJ0aHMiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7Z0NBTndCO2tFQUVGOzBCQUVDOzs7Ozs7TUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxrQkFBa0JDLHVCQUFPO0lBQ25ELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxJQUFJLENBQUU7UUFDekQsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7SUFDbEI7SUFFQUcsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDRixJQUFJO0lBQ2xCO0lBRUFHLGFBQWFDLEtBQUssRUFBRVQsT0FBTyxFQUFFVSxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUMxQyxNQUFNQyxjQUFjSCxNQUFNSSxTQUFTLElBQzdCQyxrQkFBa0IsSUFBSSxDQUFDRCxTQUFTLElBQUssR0FBRztRQUU5Q2IsUUFBUWUsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFSCxZQUFZLHFCQUFxQixFQUFFRSxnQkFBZ0IsY0FBYyxDQUFDO1FBRWxHLE1BQU1FLFlBQVlQLE1BQU1ILE9BQU8sSUFDekJXLHVCQUF1QixJQUFJLENBQUNiLElBQUksQ0FBQ2MsU0FBUyxDQUFDRjtRQUVqRCxJQUFJLENBQUNDLHNCQUFzQjtZQUN6QixNQUFNRSxhQUFhQyxJQUFJaEIsSUFBSSxDQUFDUyxTQUFTLElBQy9CUSxVQUFVLENBQUMsS0FBSyxFQUFFVCxZQUFZLFdBQVcsRUFBRUksVUFBVSw0QkFBNEIsRUFBRUYsZ0JBQWdCLGVBQWUsRUFBRUssV0FBVyxPQUFPLENBQUMsRUFDdklHLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsT0FBT1gsS0FBS1k7UUFDZDtRQUVBdEIsUUFBUXlCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFYixZQUFZLHFCQUFxQixFQUFFRSxnQkFBZ0IsWUFBWSxDQUFDO1FBRW5HLE9BQU9IO0lBQ1Q7SUFFQSxPQUFPTixPQUFPLFlBQVk7QUFDNUIifQ==
@@ -19,7 +19,7 @@ function _interop_require_default(obj) {
19
19
  default: obj
20
20
  };
21
21
  }
22
- const { breakPointToBreakPointJSON } = _occamlanguages.breakPointUtilities;
22
+ const { forEach } = _occamlanguages.continuationUtilities, { breakPointToBreakPointJSON } = _occamlanguages.breakPointUtilities;
23
23
  const _default = (0, _elements.define)(class Parameters extends _occamlanguages.Element {
24
24
  constructor(context, string, node, breakPoint, array){
25
25
  super(context, string, node, breakPoint);
@@ -36,24 +36,27 @@ const _default = (0, _elements.define)(class Parameters extends _occamlanguages.
36
36
  const parameter = this.array[index] || null;
37
37
  return parameter;
38
38
  }
39
- forEachParameter(callback) {
40
- this.array.forEach(callback);
39
+ forEachParameter(callback, back, forward) {
40
+ return forEach(this.array, callback, back, forward);
41
41
  }
42
- compareValues(values, context) {
42
+ compareValues(values, context, back, forward) {
43
43
  const valuesString = values.getString(), parametersString = this.getString(); ///
44
44
  context.trace(`Comparing the '${valuesString}' values against the '${parametersString}' parameters...`);
45
45
  const valuesLength = values.getLength(), parametersLength = this.getLength();
46
46
  if (valuesLength !== parametersLength) {
47
47
  const message = `The '${valuesString}' expressions and '${parametersString}' parameters are not of the same length.`, exception = _exception.default.fromMessage(message);
48
- throw exception;
48
+ return back(exception);
49
49
  }
50
- this.forEachParameter((parameter, index)=>{
51
- if (parameter !== null) {
52
- const value = values.getValue(index);
53
- parameter.compareValue(value, context);
50
+ return this.forEachParameter((parameter, back, forward, index)=>{
51
+ if (parameter === null) {
52
+ return forward();
54
53
  }
54
+ const value = values.getValue(index);
55
+ return parameter.compareValue(value, context, back, forward);
56
+ }, back, ()=>{
57
+ context.debug(`...compared the '${valuesString}' values against the '${parametersString}' parameters.`);
58
+ return forward();
55
59
  });
56
- context.debug(`...compared the '${valuesString}' values against the '${parametersString}' parameters.`);
57
60
  }
58
61
  toJSON() {
59
62
  const string = this.getString();
@@ -78,4 +81,4 @@ const _default = (0, _elements.define)(class Parameters extends _occamlanguages.
78
81
  }
79
82
  });
80
83
 
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZVBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgcGFyYW1ldGVyc0FycmF5RnJvbVBhcmFtZXRlcnNOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmNvbnN0IHsgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBQYXJhbWV0ZXJzIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5hcnJheS5sZW5ndGg7XG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0UGFyYW1ldGVyKGluZGV4KSB7XG4gICAgY29uc3QgcGFyYW1ldGVyID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDtcblxuICAgIHJldHVybiBwYXJhbWV0ZXI7XG4gIH1cblxuICBmb3JFYWNoUGFyYW1ldGVyKGNhbGxiYWNrKSB7IHRoaXMuYXJyYXkuZm9yRWFjaChjYWxsYmFjayk7IH1cblxuICBjb21wYXJlVmFsdWVzKHZhbHVlcywgY29udGV4dCkge1xuICAgIGNvbnN0IHZhbHVlc1N0cmluZyA9IHZhbHVlcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3ZhbHVlc1N0cmluZ30nIHZhbHVlcyBhZ2FpbnN0IHRoZSAnJHtwYXJhbWV0ZXJzU3RyaW5nfScgcGFyYW1ldGVycy4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzTGVuZ3RoID0gdmFsdWVzLmdldExlbmd0aCgpLFxuICAgICAgICAgIHBhcmFtZXRlcnNMZW5ndGggPSB0aGlzLmdldExlbmd0aCgpO1xuXG4gICAgaWYgKHZhbHVlc0xlbmd0aCAhPT0gcGFyYW1ldGVyc0xlbmd0aCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVzU3RyaW5nfScgZXhwcmVzc2lvbnMgYW5kICcke3BhcmFtZXRlcnNTdHJpbmd9JyBwYXJhbWV0ZXJzIGFyZSBub3Qgb2YgdGhlIHNhbWUgbGVuZ3RoLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLmZvckVhY2hQYXJhbWV0ZXIoKHBhcmFtZXRlciwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChwYXJhbWV0ZXIgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXMuZ2V0VmFsdWUoaW5kZXgpO1xuXG4gICAgICAgIHBhcmFtZXRlci5jb21wYXJlVmFsdWUodmFsdWUsIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke3ZhbHVlc1N0cmluZ30nIHZhbHVlcyBhZ2FpbnN0IHRoZSAnJHtwYXJhbWV0ZXJzU3RyaW5nfScgcGFyYW1ldGVycy5gKTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgYnJlYWtQb2ludFxuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJQYXJhbWV0ZXJzXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICByZXR1cm4gaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgcGFyYW1ldGVyc05vZGUgPSBpbnN0YW50aWF0ZVBhcmFtZXRlcnMoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgIG5vZGUgPSBwYXJhbWV0ZXJzTm9kZSwgIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzQXJyYXkgPSBwYXJhbWV0ZXJzQXJyYXlGcm9tUGFyYW1ldGVyc05vZGUocGFyYW1ldGVyc05vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgYXJyYXkgPSBwYXJhbWV0ZXJzQXJyYXk7IC8vL1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgY29uc3QgcGFyYW1ldGVycyA9IG5ldyBQYXJhbWV0ZXJzKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpO1xuXG4gICAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiUGFyYW1ldGVycyIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJhcnJheSIsImdldEFycmF5IiwiZ2V0TGVuZ3RoIiwibGVuZ3RoIiwiZ2V0UGFyYW1ldGVyIiwiaW5kZXgiLCJwYXJhbWV0ZXIiLCJmb3JFYWNoUGFyYW1ldGVyIiwiY2FsbGJhY2siLCJmb3JFYWNoIiwiY29tcGFyZVZhbHVlcyIsInZhbHVlcyIsInZhbHVlc1N0cmluZyIsImdldFN0cmluZyIsInBhcmFtZXRlcnNTdHJpbmciLCJ0cmFjZSIsInZhbHVlc0xlbmd0aCIsInBhcmFtZXRlcnNMZW5ndGgiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ2YWx1ZSIsImdldFZhbHVlIiwiY29tcGFyZVZhbHVlIiwiZGVidWciLCJ0b0pTT04iLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJwYXJhbWV0ZXJzTm9kZSIsImluc3RhbnRpYXRlUGFyYW1ldGVycyIsInBhcmFtZXRlcnNBcnJheSIsInBhcmFtZXRlcnNBcnJheUZyb21QYXJhbWV0ZXJzTm9kZSIsInBhcmFtZXRlcnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBQTs7O2dDQVg2QztrRUFFdkI7MEJBRUM7eUJBQ0s7NkJBQ1U7eUJBQ1k7Ozs7OztBQUVsRCxNQUFNLEVBQUVBLDBCQUEwQixFQUFFLEdBQUdD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
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlUGFyYW1ldGVycyB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBwYXJhbWV0ZXJzQXJyYXlGcm9tUGFyYW1ldGVyc05vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXMsXG4gICAgICB7IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUGFyYW1ldGVycyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbiAgfVxuXG4gIGdldEFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmFycmF5O1xuICB9XG5cbiAgZ2V0TGVuZ3RoKCkge1xuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuYXJyYXkubGVuZ3RoO1xuXG4gICAgcmV0dXJuIGxlbmd0aDtcbiAgfVxuXG4gIGdldFBhcmFtZXRlcihpbmRleCkge1xuICAgIGNvbnN0IHBhcmFtZXRlciA9IHRoaXMuYXJyYXlbaW5kZXhdIHx8IG51bGw7XG5cbiAgICByZXR1cm4gcGFyYW1ldGVyO1xuICB9XG5cbiAgZm9yRWFjaFBhcmFtZXRlcihjYWxsYmFjaywgYmFjaywgZm9yd2FyZCkge1xuICAgIHJldHVybiBmb3JFYWNoKHRoaXMuYXJyYXksIGNhbGxiYWNrLCBiYWNrLCBmb3J3YXJkKTtcbiAgfVxuXG4gIGNvbXBhcmVWYWx1ZXModmFsdWVzLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgdmFsdWVzU3RyaW5nID0gdmFsdWVzLmdldFN0cmluZygpLFxuICAgICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7dmFsdWVzU3RyaW5nfScgdmFsdWVzIGFnYWluc3QgdGhlICcke3BhcmFtZXRlcnNTdHJpbmd9JyBwYXJhbWV0ZXJzLi4uYCk7XG5cbiAgICBjb25zdCB2YWx1ZXNMZW5ndGggPSB2YWx1ZXMuZ2V0TGVuZ3RoKCksXG4gICAgICAgICAgcGFyYW1ldGVyc0xlbmd0aCA9IHRoaXMuZ2V0TGVuZ3RoKCk7XG5cbiAgICBpZiAodmFsdWVzTGVuZ3RoICE9PSBwYXJhbWV0ZXJzTGVuZ3RoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZXNTdHJpbmd9JyBleHByZXNzaW9ucyBhbmQgJyR7cGFyYW1ldGVyc1N0cmluZ30nIHBhcmFtZXRlcnMgYXJlIG5vdCBvZiB0aGUgc2FtZSBsZW5ndGguYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mb3JFYWNoUGFyYW1ldGVyKChwYXJhbWV0ZXIsIGJhY2ssIGZvcndhcmQsIGluZGV4KSA9PiB7XG4gICAgICBpZiAocGFyYW1ldGVyID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmb3J3YXJkKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzLmdldFZhbHVlKGluZGV4KTtcblxuICAgICAgcmV0dXJuIHBhcmFtZXRlci5jb21wYXJlVmFsdWUodmFsdWUsIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpO1xuICAgIH0sIGJhY2ssICgpID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHt2YWx1ZXNTdHJpbmd9JyB2YWx1ZXMgYWdhaW5zdCB0aGUgJyR7cGFyYW1ldGVyc1N0cmluZ30nIHBhcmFtZXRlcnMuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKCk7XG4gICAgfSk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHN0cmluZyxcbiAgICAgIGJyZWFrUG9pbnRcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUGFyYW1ldGVyc1wiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIHBhcmFtZXRlcnNOb2RlID0gaW5zdGFudGlhdGVQYXJhbWV0ZXJzKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBub2RlID0gcGFyYW1ldGVyc05vZGUsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsLFxuICAgICAgICAgICAgcGFyYW1ldGVyc0FycmF5ID0gcGFyYW1ldGVyc0FycmF5RnJvbVBhcmFtZXRlcnNOb2RlKHBhcmFtZXRlcnNOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIGFycmF5ID0gcGFyYW1ldGVyc0FycmF5OyAvLy9cblxuICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSBuZXcgUGFyYW1ldGVycyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KTtcblxuICAgICAgcmV0dXJuIHBhcmFtZXRlcnM7XG4gICAgfSwgY29udGV4dCk7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImZvckVhY2giLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJQYXJhbWV0ZXJzIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImFycmF5IiwiZ2V0QXJyYXkiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRQYXJhbWV0ZXIiLCJpbmRleCIsInBhcmFtZXRlciIsImZvckVhY2hQYXJhbWV0ZXIiLCJjYWxsYmFjayIsImJhY2siLCJmb3J3YXJkIiwiY29tcGFyZVZhbHVlcyIsInZhbHVlcyIsInZhbHVlc1N0cmluZyIsImdldFN0cmluZyIsInBhcmFtZXRlcnNTdHJpbmciLCJ0cmFjZSIsInZhbHVlc0xlbmd0aCIsInBhcmFtZXRlcnNMZW5ndGgiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ2YWx1ZSIsImdldFZhbHVlIiwiY29tcGFyZVZhbHVlIiwiZGVidWciLCJ0b0pTT04iLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJwYXJhbWV0ZXJzTm9kZSIsImluc3RhbnRpYXRlUGFyYW1ldGVycyIsInBhcmFtZXRlcnNBcnJheSIsInBhcmFtZXRlcnNBcnJheUZyb21QYXJhbWV0ZXJzTm9kZSIsInBhcmFtZXRlcnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7O2dDQVpvRTtrRUFFOUM7MEJBRUM7eUJBQ0s7NkJBQ1U7eUJBQ1k7Ozs7OztBQUVsRCxNQUFNLEVBQUVBLE9BQU8sRUFBRSxHQUFHQyxxQ0FBcUIsRUFDbkMsRUFBRUMsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTFELFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsbUJBQW1CQyx1QkFBTztJQUNwRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssQ0FBRTtRQUNwRCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtJQUNmO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0QsS0FBSztJQUNuQjtJQUVBRSxZQUFZO1FBQ1YsTUFBTUMsU0FBUyxJQUFJLENBQUNILEtBQUssQ0FBQ0csTUFBTTtRQUVoQyxPQUFPQTtJQUNUO0lBRUFDLGFBQWFDLEtBQUssRUFBRTtRQUNsQixNQUFNQyxZQUFZLElBQUksQ0FBQ04sS0FBSyxDQUFDSyxNQUFNLElBQUk7UUFFdkMsT0FBT0M7SUFDVDtJQUVBQyxpQkFBaUJDLFFBQVEsRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDeEMsT0FBT3JCLFFBQVEsSUFBSSxDQUFDVyxLQUFLLEVBQUVRLFVBQVVDLE1BQU1DO0lBQzdDO0lBRUFDLGNBQWNDLE1BQU0sRUFBRWhCLE9BQU8sRUFBRWEsSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDNUMsTUFBTUcsZUFBZUQsT0FBT0UsU0FBUyxJQUMvQkMsbUJBQW1CLElBQUksQ0FBQ0QsU0FBUyxJQUFJLEdBQUc7UUFFOUNsQixRQUFRb0IsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFSCxhQUFhLHNCQUFzQixFQUFFRSxpQkFBaUIsZUFBZSxDQUFDO1FBRXRHLE1BQU1FLGVBQWVMLE9BQU9WLFNBQVMsSUFDL0JnQixtQkFBbUIsSUFBSSxDQUFDaEIsU0FBUztRQUV2QyxJQUFJZSxpQkFBaUJDLGtCQUFrQjtZQUNyQyxNQUFNQyxVQUFVLENBQUMsS0FBSyxFQUFFTixhQUFhLG1CQUFtQixFQUFFRSxpQkFBaUIsd0NBQXdDLENBQUMsRUFDOUdLLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsT0FBT1YsS0FBS1c7UUFDZDtRQUVBLE9BQU8sSUFBSSxDQUFDYixnQkFBZ0IsQ0FBQyxDQUFDRCxXQUFXRyxNQUFNQyxTQUFTTDtZQUN0RCxJQUFJQyxjQUFjLE1BQU07Z0JBQ3RCLE9BQU9JO1lBQ1Q7WUFFQSxNQUFNYSxRQUFRWCxPQUFPWSxRQUFRLENBQUNuQjtZQUU5QixPQUFPQyxVQUFVbUIsWUFBWSxDQUFDRixPQUFPM0IsU0FBU2EsTUFBTUM7UUFDdEQsR0FBR0QsTUFBTTtZQUNQYixRQUFROEIsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUViLGFBQWEsc0JBQXNCLEVBQUVFLGlCQUFpQixhQUFhLENBQUM7WUFFdEcsT0FBT0w7UUFDVDtJQUNGO0lBRUFpQixTQUFTO1FBQ1AsTUFBTTlCLFNBQVMsSUFBSSxDQUFDaUIsU0FBUztRQUU3QixJQUFJZjtRQUVKQSxhQUFhLElBQUksQ0FBQzZCLGFBQWE7UUFFL0IsTUFBTUMsaUJBQWlCdEMsMkJBQTJCUTtRQUVsREEsYUFBYThCLGdCQUFpQixHQUFHO1FBRWpDLE1BQU1DLE9BQU87WUFDWGpDO1lBQ0FFO1FBQ0Y7UUFFQSxPQUFPK0I7SUFDVDtJQUVBLE9BQU9DLE9BQU8sYUFBYTtJQUUzQixPQUFPQyxTQUFTRixJQUFJLEVBQUVsQyxPQUFPLEVBQUU7UUFDN0IsT0FBT3FDLElBQUFBLG9CQUFXLEVBQUMsQ0FBQ3JDO1lBQ2xCLE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdpQyxNQUNiSSxpQkFBaUJDLElBQUFBLGtDQUFxQixFQUFDdEMsUUFBUUQsVUFDL0NFLE9BQU9vQyxnQkFDUG5DLGFBQWEsTUFDYnFDLGtCQUFrQkMsSUFBQUEsMENBQWlDLEVBQUNILGdCQUFnQnRDLFVBQ3BFSSxRQUFRb0MsaUJBQWlCLEdBQUc7WUFFbEN4QyxVQUFVO1lBRVYsTUFBTTBDLGFBQWEsSUFBSTVDLFdBQVdFLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDO1lBRXJFLE9BQU9zQztRQUNULEdBQUcxQztJQUNMO0FBQ0YifQ==
@@ -66,9 +66,9 @@ const _default = (0, _elements.define)(class Primitive extends _occamlanguages.E
66
66
  getValue() {
67
67
  return this.value;
68
68
  }
69
- evaluate(context) {
69
+ evaluate(context, back, forward) {
70
70
  const { Term } = _elements.default, primitive = this, term = Term.fromPrimitive(primitive, context);
71
- return term;
71
+ return forward(term);
72
72
  }
73
73
  isEqualTo(primitive) {
74
74
  let equalTo = false;
@@ -147,4 +147,4 @@ const _default = (0, _elements.define)(class Primitive extends _occamlanguages.E
147
147
  }
148
148
  });
149
149
 
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ByaW1pdGl2ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBJTlRFR0VSX1RZUEVfTkFNRSwgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5cbmNvbnN0IHsgbWF0Y2ggfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUHJpbWl0aXZlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgdmFsdWUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCB7IFRlcm0gfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIHByaW1pdGl2ZSA9IHRoaXMsXG4gICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVByaW1pdGl2ZShwcmltaXRpdmUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cblxuICBpc0VxdWFsVG8ocHJpbWl0aXZlKSB7XG4gICAgbGV0IGVxdWFsVG8gPSBmYWxzZTtcblxuICAgIGNvbnN0IHByaW1pdGl2ZVR5cGUgPSBwcmltaXRpdmUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHR5cGVFcXVhbFRvUHJpbWl0aXZlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG8ocHJpbWl0aXZlVHlwZSk7XG5cbiAgICBpZiAodHlwZUVxdWFsVG9QcmltaXRpdmVUeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHByaW1pdGl2ZS5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgdHlwZU5hbWUgPSB0aGlzLnR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICBzd2l0Y2ggKHR5cGVOYW1lKSB7XG4gICAgICAgIGNhc2UgTElTVF9UWVBFX05BTUU6IHtcbiAgICAgICAgICBjb25zdCBsaXN0QSA9IHRoaXMudmFsdWUsIC8vL1xuICAgICAgICAgICAgICAgIGxpc3RCID0gdmFsdWUsICAvLy9cbiAgICAgICAgICAgICAgICBtYXRjaGVzID0gbWF0Y2gobGlzdEEsIGxpc3RCLCAodmFsdWVBLCB2YWx1ZUIpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSB2YWx1ZUEuaXNFcXVhbFRvKHZhbHVlQik7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBTVFJJTkdfVFlQRV9OQU1FOiB7XG4gICAgICAgICAgY29uc3Qgc3RyaW5nTGl0ZXJhbEEgPSB0aGlzLnZhbHVlLCAvLy9cbiAgICAgICAgICAgICAgICBzdHJpbmdMaXRlcmFsQiA9IHZhbHVlOyAgLy8vXG5cbiAgICAgICAgICBpZiAoc3RyaW5nTGl0ZXJhbEEgPT09IHN0cmluZ0xpdGVyYWxCKSB7XG4gICAgICAgICAgICBlcXVhbFRvID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgQk9PTEVBTl9UWVBFX05BTUU6IHtcbiAgICAgICAgICBjb25zdCBib29sZWFuQSA9IHRoaXMudmFsdWUsIC8vL1xuICAgICAgICAgICAgICAgIGJvb2xlYW5CID0gdmFsdWU7ICAvLy9cblxuICAgICAgICAgIGlmIChib29sZWFuQSA9PT0gYm9vbGVhbkIpIHtcbiAgICAgICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBJTlRFR0VSX1RZUEVfTkFNRToge1xuICAgICAgICAgIGNvbnN0IGludGVnZXJBID0gdGhpcy52YWx1ZSwgLy8vXG4gICAgICAgICAgICAgICAgaW50ZWdlckIgPSB2YWx1ZTsgIC8vL1xuXG4gICAgICAgICAgaWYgKGludGVnZXJBID09PSBpbnRlZ2VyQikge1xuICAgICAgICAgICAgZXF1YWxUbyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FOiB7XG4gICAgICAgICAgY29uc3Qgbm9taW5hbFZhbHVlQSA9IHRoaXMudmFsdWUsIC8vL1xuICAgICAgICAgICAgICAgIG5vbWltYWxWYWx1ZUIgPSB2YWx1ZSwgIC8vL1xuICAgICAgICAgICAgICAgIG1hdGNoZXMgPSBub21pbmFsVmFsdWVBLm1hdGNoKG5vbWltYWxWYWx1ZUIpO1xuXG4gICAgICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUHJpbWl0aXZlXCI7XG5cbiAgc3RhdGljIGZyb21QcmltaXRpdmVWYWx1ZUFuZFR5cGUocHJpbWl0aXZlVmFsdWUsIHR5cGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAvLy9cbiAgICAgICAgICB0eXBlTmFtZSA9IHR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgbGV0IHN0cmluZztcblxuICAgIHN3aXRjaCAodHlwZU5hbWUpIHtcbiAgICAgIGNhc2UgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUU6IHtcbiAgICAgICAgY29uc3Qgbm9taW5hbFZhbHVlID0gdmFsdWU7ICAvLy9cblxuICAgICAgICBzdHJpbmcgPSBub21pbmFsVmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgc3RyaW5nID0gYCR7dmFsdWV9YDtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBub2RlID0gbnVsbCxcbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICBwcmltaXRpdmUgPSBuZXcgUHJpbWl0aXZlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgdmFsdWUpO1xuXG4gICAgcmV0dXJuIHByaW1pdGl2ZTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsibWF0Y2giLCJhcnJheVV0aWxpdGllcyIsImRlZmluZSIsIlByaW1pdGl2ZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0eXBlIiwidmFsdWUiLCJnZXRUeXBlIiwiZ2V0VmFsdWUiLCJldmFsdWF0ZSIsIlRlcm0iLCJlbGVtZW50cyIsInByaW1pdGl2ZSIsInRlcm0iLCJmcm9tUHJpbWl0aXZlIiwiaXNFcXVhbFRvIiwiZXF1YWxUbyIsInByaW1pdGl2ZVR5cGUiLCJ0eXBlRXF1YWxUb1ByaW1pdGl2ZVR5cGUiLCJ0eXBlTmFtZSIsImdldE5hbWUiLCJMSVNUX1RZUEVfTkFNRSIsImxpc3RBIiwibGlzdEIiLCJtYXRjaGVzIiwidmFsdWVBIiwidmFsdWVCIiwiU1RSSU5HX1RZUEVfTkFNRSIsInN0cmluZ0xpdGVyYWxBIiwic3RyaW5nTGl0ZXJhbEIiLCJCT09MRUFOX1RZUEVfTkFNRSIsImJvb2xlYW5BIiwiYm9vbGVhbkIiLCJJTlRFR0VSX1RZUEVfTkFNRSIsImludGVnZXJBIiwiaW50ZWdlckIiLCJOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSIsIm5vbWluYWxWYWx1ZUEiLCJub21pbWFsVmFsdWVCIiwibmFtZSIsImZyb21QcmltaXRpdmVWYWx1ZUFuZFR5cGUiLCJwcmltaXRpdmVWYWx1ZSIsIm5vbWluYWxWYWx1ZSIsImdldFN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUFBOzs7Z0NBVndCOzJCQUNPO2tFQUVWOzJCQUcyRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWhILE1BQU0sRUFBRUEsS0FBSyxFQUFFLEdBQUdDLHlCQUFjO01BRWhDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsa0JBQWtCQyx1QkFBTztJQUNuRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsS0FBSyxDQUFFO1FBQzFELEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxLQUFLLEdBQUdBO0lBQ2Y7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDRixJQUFJO0lBQ2xCO0lBRUFHLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0Ys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
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ByaW1pdGl2ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBJTlRFR0VSX1RZUEVfTkFNRSwgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5cbmNvbnN0IHsgbWF0Y2ggfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUHJpbWl0aXZlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgdmFsdWUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCB7IFRlcm0gfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIHByaW1pdGl2ZSA9IHRoaXMsXG4gICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVByaW1pdGl2ZShwcmltaXRpdmUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodGVybSk7XG4gIH1cblxuICBpc0VxdWFsVG8ocHJpbWl0aXZlKSB7XG4gICAgbGV0IGVxdWFsVG8gPSBmYWxzZTtcblxuICAgIGNvbnN0IHByaW1pdGl2ZVR5cGUgPSBwcmltaXRpdmUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHR5cGVFcXVhbFRvUHJpbWl0aXZlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG8ocHJpbWl0aXZlVHlwZSk7XG5cbiAgICBpZiAodHlwZUVxdWFsVG9QcmltaXRpdmVUeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHByaW1pdGl2ZS5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgdHlwZU5hbWUgPSB0aGlzLnR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICBzd2l0Y2ggKHR5cGVOYW1lKSB7XG4gICAgICAgIGNhc2UgTElTVF9UWVBFX05BTUU6IHtcbiAgICAgICAgICBjb25zdCBsaXN0QSA9IHRoaXMudmFsdWUsIC8vL1xuICAgICAgICAgICAgICAgIGxpc3RCID0gdmFsdWUsICAvLy9cbiAgICAgICAgICAgICAgICBtYXRjaGVzID0gbWF0Y2gobGlzdEEsIGxpc3RCLCAodmFsdWVBLCB2YWx1ZUIpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSB2YWx1ZUEuaXNFcXVhbFRvKHZhbHVlQik7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBTVFJJTkdfVFlQRV9OQU1FOiB7XG4gICAgICAgICAgY29uc3Qgc3RyaW5nTGl0ZXJhbEEgPSB0aGlzLnZhbHVlLCAvLy9cbiAgICAgICAgICAgICAgICBzdHJpbmdMaXRlcmFsQiA9IHZhbHVlOyAgLy8vXG5cbiAgICAgICAgICBpZiAoc3RyaW5nTGl0ZXJhbEEgPT09IHN0cmluZ0xpdGVyYWxCKSB7XG4gICAgICAgICAgICBlcXVhbFRvID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgQk9PTEVBTl9UWVBFX05BTUU6IHtcbiAgICAgICAgICBjb25zdCBib29sZWFuQSA9IHRoaXMudmFsdWUsIC8vL1xuICAgICAgICAgICAgICAgIGJvb2xlYW5CID0gdmFsdWU7ICAvLy9cblxuICAgICAgICAgIGlmIChib29sZWFuQSA9PT0gYm9vbGVhbkIpIHtcbiAgICAgICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBJTlRFR0VSX1RZUEVfTkFNRToge1xuICAgICAgICAgIGNvbnN0IGludGVnZXJBID0gdGhpcy52YWx1ZSwgLy8vXG4gICAgICAgICAgICAgICAgaW50ZWdlckIgPSB2YWx1ZTsgIC8vL1xuXG4gICAgICAgICAgaWYgKGludGVnZXJBID09PSBpbnRlZ2VyQikge1xuICAgICAgICAgICAgZXF1YWxUbyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FOiB7XG4gICAgICAgICAgY29uc3Qgbm9taW5hbFZhbHVlQSA9IHRoaXMudmFsdWUsIC8vL1xuICAgICAgICAgICAgICAgIG5vbWltYWxWYWx1ZUIgPSB2YWx1ZSwgIC8vL1xuICAgICAgICAgICAgICAgIG1hdGNoZXMgPSBub21pbmFsVmFsdWVBLm1hdGNoKG5vbWltYWxWYWx1ZUIpO1xuXG4gICAgICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUHJpbWl0aXZlXCI7XG5cbiAgc3RhdGljIGZyb21QcmltaXRpdmVWYWx1ZUFuZFR5cGUocHJpbWl0aXZlVmFsdWUsIHR5cGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAvLy9cbiAgICAgICAgICB0eXBlTmFtZSA9IHR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgbGV0IHN0cmluZztcblxuICAgIHN3aXRjaCAodHlwZU5hbWUpIHtcbiAgICAgIGNhc2UgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUU6IHtcbiAgICAgICAgY29uc3Qgbm9taW5hbFZhbHVlID0gdmFsdWU7ICAvLy9cblxuICAgICAgICBzdHJpbmcgPSBub21pbmFsVmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgc3RyaW5nID0gYCR7dmFsdWV9YDtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBub2RlID0gbnVsbCxcbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICBwcmltaXRpdmUgPSBuZXcgUHJpbWl0aXZlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgdmFsdWUpO1xuXG4gICAgcmV0dXJuIHByaW1pdGl2ZTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsibWF0Y2giLCJhcnJheVV0aWxpdGllcyIsImRlZmluZSIsIlByaW1pdGl2ZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0eXBlIiwidmFsdWUiLCJnZXRUeXBlIiwiZ2V0VmFsdWUiLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwiVGVybSIsImVsZW1lbnRzIiwicHJpbWl0aXZlIiwidGVybSIsImZyb21QcmltaXRpdmUiLCJpc0VxdWFsVG8iLCJlcXVhbFRvIiwicHJpbWl0aXZlVHlwZSIsInR5cGVFcXVhbFRvUHJpbWl0aXZlVHlwZSIsInR5cGVOYW1lIiwiZ2V0TmFtZSIsIkxJU1RfVFlQRV9OQU1FIiwibGlzdEEiLCJsaXN0QiIsIm1hdGNoZXMiLCJ2YWx1ZUEiLCJ2YWx1ZUIiLCJTVFJJTkdfVFlQRV9OQU1FIiwic3RyaW5nTGl0ZXJhbEEiLCJzdHJpbmdMaXRlcmFsQiIsIkJPT0xFQU5fVFlQRV9OQU1FIiwiYm9vbGVhbkEiLCJib29sZWFuQiIsIklOVEVHRVJfVFlQRV9OQU1FIiwiaW50ZWdlckEiLCJpbnRlZ2VyQiIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwibm9taW5hbFZhbHVlQSIsIm5vbWltYWxWYWx1ZUIiLCJuYW1lIiwiZnJvbVByaW1pdGl2ZVZhbHVlQW5kVHlwZSIsInByaW1pdGl2ZVZhbHVlIiwibm9taW5hbFZhbHVlIiwiZ2V0U3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQUE7OztnQ0FWd0I7MkJBQ087a0VBRVY7MkJBRzJGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFaEgsTUFBTSxFQUFFQSxLQUFLLEVBQUUsR0FBR0MseUJBQWM7TUFFaEMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxrQkFBa0JDLHVCQUFPO0lBQ25ELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxLQUFLLENBQUU7UUFDMUQsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNGLElB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
@@ -72,17 +72,18 @@ const _default = (0, _elements.define)(class Procedure extends _occamlanguages.E
72
72
  call = breakable(function(values, context, back, forward) {
73
73
  const procedureString = this.getString(); ///
74
74
  context.trace(`Calling the '${procedureString}' function...`);
75
- this.parameters.compareValues(values, context);
76
- this.guaranteeReturnBlock();
77
- const variables = (0, _parameters.variablesFromValuesAndParameters)(values, this.parameters, context);
78
- return this.returnBlock.evaluate(variables, context, back, (value)=>{
79
- const valueType = value.getType(), typeEqualToValueType = this.type.isEqualTo(valueType);
80
- if (!typeEqualToValueType) {
81
- const valueString = value.getString(), typeString = this.type.getString(), message = `The '${valueString}' value's '${typeString}' type is not equal to the '${procedureString}' function's '${typeString}' type.`, exception = _exception.default.fromMessage(message);
82
- throw exception;
83
- }
84
- context.debug(`...called the '${procedureString}' function.`);
85
- return forward(value);
75
+ return this.parameters.compareValues(values, context, back, ()=>{
76
+ this.guaranteeReturnBlock();
77
+ const variables = (0, _parameters.variablesFromValuesAndParameters)(values, this.parameters, context);
78
+ return this.returnBlock.evaluate(variables, context, back, (value)=>{
79
+ const valueType = value.getType(), typeEqualToValueType = this.type.isEqualTo(valueType);
80
+ if (!typeEqualToValueType) {
81
+ const valueString = value.getString(), typeString = this.type.getString(), message = `The '${valueString}' value's '${typeString}' type is not equal to the '${procedureString}' function's '${typeString}' type.`, exception = _exception.default.fromMessage(message);
82
+ return back(exception);
83
+ }
84
+ context.debug(`...called the '${procedureString}' function.`);
85
+ return forward(value);
86
+ });
86
87
  });
87
88
  });
88
89
  callNominally(nominalValues, back, forward) {
@@ -116,4 +117,4 @@ const _default = (0, _elements.define)(class Procedure extends _occamlanguages.E
116
117
  }
117
118
  });
118
119
 
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlc1wiO1xuaW1wb3J0IHsgcmV0dXJuQmxvY2tGcm9tUHJvY2VkdXJlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3BhcmFtZXRlcnNcIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgbGFiZWxGcm9tSlNPTiwgcGFyYW1ldGVyc0Zyb21KU09OLCB0eXBlVG9UeXBlSlNPTiwgbGFiZWxUb0xhYmVsSlNPTiwgcGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuY29uc3QgeyBicmVha2FibGUsIGJyZWFrUG9pbnRGcm9tSlNPTiwgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBQcm9jZWR1cmUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBsYWJlbCwgcGFyYW1ldGVycywgcmV0dXJuQmxvY2spIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLmxhYmVsID0gbGFiZWw7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycztcbiAgICB0aGlzLnJldHVybkJsb2NrID0gcmV0dXJuQmxvY2s7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRMYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbDtcbiAgfVxuXG4gIGdldFBhcmFtZXRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVycztcbiAgfVxuXG4gIGdldFJldHVybkJsb2NrKCkge1xuICAgIHJldHVybiB0aGlzLnJldHVybkJsb2NrO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHsgcmV0dXJuIHRoaXMubGFiZWwuZ2V0TmFtZSgpOyB9XG5cbiAgaXNCb29sZWFuKCkge1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmdldFR5cGUoKSxcbiAgICAgICAgICBib29sZWFuVHlwZSA9IHR5cGUuaXNCb29sZWFuVHlwZSgpLFxuICAgICAgICAgIGJvb2xlYW4gPSBib29sZWFuVHlwZTsgIC8vL1xuXG4gICAgcmV0dXJuIGJvb2xlYW47XG4gIH1cblxuICBnZXRSZXR1cm5TdGF0ZW1lbnQoKSB7IHJldHVybiB0aGlzLnJldHVybkJsb2NrLmdldFJldHVyblN0YXRlbWVudCgpOyB9XG5cbiAgY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkgeyByZXR1cm4gdGhpcy5sYWJlbC5jb21wYXJlUHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTsgfVxuXG4gIGd1YXJhbnRlZVJldHVybkJsb2NrKCkge1xuICAgIGlmICh0aGlzLnJldHVybkJsb2NrICE9IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb2NlZHVyZU5vZGUgPSBub2RlO1xuXG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrRnJvbVByb2NlZHVyZU5vZGUocHJvY2VkdXJlTm9kZSwgY29udGV4dCk7XG4gIH1cblxuICB2ZXJpZnkoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uLi4uYClcblxuICAgIGNvbnN0IHByb2NlZHVyZSA9IHRoaXM7IC8vL1xuXG4gICAgY29udGV4dC5hZGRQcm9jZWR1cmUocHJvY2VkdXJlKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbi5gKVxuXG4gICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCk7XG4gIH1cblxuICBjYWxsID0gYnJlYWthYmxlKGZ1bmN0aW9uICh2YWx1ZXMsIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDYWxsaW5nIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbi4uLmApO1xuXG4gICAgdGhpcy5wYXJhbWV0ZXJzLmNvbXBhcmVWYWx1ZXModmFsdWVzLCBjb250ZXh0KTtcblxuICAgIHRoaXMuZ3VhcmFudGVlUmV0dXJuQmxvY2soKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHZhcmlhYmxlc0Zyb21WYWx1ZXNBbmRQYXJhbWV0ZXJzKHZhbHVlcywgdGhpcy5wYXJhbWV0ZXJzLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB0aGlzLnJldHVybkJsb2NrLmV2YWx1YXRlKHZhcmlhYmxlcywgY29udGV4dCwgYmFjaywgKHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgICB0eXBlRXF1YWxUb1ZhbHVlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG8odmFsdWVUeXBlKTtcblxuICAgICAgaWYgKCF0eXBlRXF1YWxUb1ZhbHVlVHlwZSkge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgICB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IGVxdWFsIHRvIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbidzICcke3R5cGVTdHJpbmd9JyB0eXBlLmAsXG4gICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICB9XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNhbGxlZCB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgZnVuY3Rpb24uYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgY2FsbE5vbWluYWxseShub21pbmFsVmFsdWVzLCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENhbGxpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIG5vbWluYWxseS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzID0gdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMobm9taW5hbFZhbHVlcywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdGhpcy5jYWxsKHZhbHVlcywgY29udGV4dCwgYmFjaywgKHZhbHVlKSA9PiB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5jYWxsZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIG5vbWluYWxseS5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHR5cGVKU09OID0gdHlwZVRvVHlwZUpTT04odGhpcy50eXBlKSxcbiAgICAgICAgICBsYWJlbEpTT04gPSBsYWJlbFRvTGFiZWxKU09OKHRoaXMubGFiZWwpLFxuICAgICAgICAgIHBhcmFtZXRlcnNKU09OID0gcGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04odGhpcy5wYXJhbWV0ZXJzKSxcbiAgICAgICAgICBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBjb25zdCB0eXBlID0gdHlwZUpTT04sICAvLy9cbiAgICAgICAgICBsYWJlbCA9IGxhYmVsSlNPTiwgIC8vL1xuICAgICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICBicmVha1BvaW50LFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgcGFyYW1ldGVyc1xuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJQcm9jZWR1cmVcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgdHlwZSA9IHR5cGVGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBsYWJlbCA9IGxhYmVsRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgcGFyYW1ldGVycyA9IHBhcmFtZXRlcnNGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBwcm9jZWR1cmVOb2RlID0gY29udGV4dC5maW5kUHJvY2VkdXJlTm9kZShsYWJlbCksXG4gICAgICAgICAgcmV0dXJuQmxvY2sgPSBudWxsLCAvLy9cbiAgICAgICAgICBub2RlID0gcHJvY2VkdXJlTm9kZSwgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlID0gbmV3IFByb2NlZHVyZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIGxhYmVsLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jayk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJicmVha2FibGUiLCJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJQcm9jZWR1cmUiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidHlwZSIsImxhYmVsIiwicGFyYW1ldGVycyIsInJldHVybkJsb2NrIiwiZ2V0VHlwZSIsImdldExhYmVsIiwiZ2V0UGFyYW1ldGVycyIsImdldFJldHVybkJsb2NrIiwiZ2V0TmFtZSIsImlzQm9vbGVhbiIsImJvb2xlYW5UeXBlIiwiaXNCb29sZWFuVHlwZSIsImJvb2xlYW4iLCJnZXRSZXR1cm5TdGF0ZW1lbnQiLCJjb21wYXJlUHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJndWFyYW50ZWVSZXR1cm5CbG9jayIsImdldE5vZGUiLCJnZXRDb250ZXh0IiwicHJvY2VkdXJlTm9kZSIsInJldHVybkJsb2NrRnJvbVByb2NlZHVyZU5vZGUiLCJ2ZXJpZnkiLCJiYWNrIiwiZm9yd2FyZCIsInByb2NlZHVyZVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwicHJvY2VkdXJlIiwiYWRkUHJvY2VkdXJlIiwiZGVidWciLCJjYWxsIiwidmFsdWVzIiwiY29tcGFyZVZhbHVlcyIsInZhcmlhYmxlcyIsInZhcmlhYmxlc0Zyb21WYWx1ZXNBbmRQYXJhbWV0ZXJzIiwiZXZhbHVhdGUiLCJ2YWx1ZSIsInZhbHVlVHlwZSIsInR5cGVFcXVhbFRvVmFsdWVUeXBlIiwiaXNFcXVhbFRvIiwidmFsdWVTdHJpbmciLCJ0eXBlU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiY2FsbE5vbWluYWxseSIsIm5vbWluYWxWYWx1ZXMiLCJ2YWx1ZXNGcm9tTm9taW5hbFZhbHVlcyIsInRvSlNPTiIsInR5cGVKU09OIiwidHlwZVRvVHlwZUpTT04iLCJsYWJlbEpTT04iLCJsYWJlbFRvTGFiZWxKU09OIiwicGFyYW1ldGVyc0pTT04iLCJwYXJhbWV0ZXJzVG9QYXJhbWV0ZXJzSlNPTiIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJ0eXBlRnJvbUpTT04iLCJsYWJlbEZyb21KU09OIiwicGFyYW1ldGVyc0Zyb21KU09OIiwiZmluZFByb2NlZHVyZU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7O2dDQVo2QztrRUFFdkI7MEJBRUM7d0JBQ2lCO3lCQUNLOzRCQUNJO3NCQUM2RTs7Ozs7O0FBRTlILE1BQU0sRUFBRUEsU0FBUyxFQUFFQyxrQkFBa0IsRUFBRUMs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
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlc1wiO1xuaW1wb3J0IHsgcmV0dXJuQmxvY2tGcm9tUHJvY2VkdXJlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3BhcmFtZXRlcnNcIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgbGFiZWxGcm9tSlNPTiwgcGFyYW1ldGVyc0Zyb21KU09OLCB0eXBlVG9UeXBlSlNPTiwgbGFiZWxUb0xhYmVsSlNPTiwgcGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuY29uc3QgeyBicmVha2FibGUsIGJyZWFrUG9pbnRGcm9tSlNPTiwgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBQcm9jZWR1cmUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBsYWJlbCwgcGFyYW1ldGVycywgcmV0dXJuQmxvY2spIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLmxhYmVsID0gbGFiZWw7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycztcbiAgICB0aGlzLnJldHVybkJsb2NrID0gcmV0dXJuQmxvY2s7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRMYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbDtcbiAgfVxuXG4gIGdldFBhcmFtZXRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVycztcbiAgfVxuXG4gIGdldFJldHVybkJsb2NrKCkge1xuICAgIHJldHVybiB0aGlzLnJldHVybkJsb2NrO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHsgcmV0dXJuIHRoaXMubGFiZWwuZ2V0TmFtZSgpOyB9XG5cbiAgaXNCb29sZWFuKCkge1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmdldFR5cGUoKSxcbiAgICAgICAgICBib29sZWFuVHlwZSA9IHR5cGUuaXNCb29sZWFuVHlwZSgpLFxuICAgICAgICAgIGJvb2xlYW4gPSBib29sZWFuVHlwZTsgIC8vL1xuXG4gICAgcmV0dXJuIGJvb2xlYW47XG4gIH1cblxuICBnZXRSZXR1cm5TdGF0ZW1lbnQoKSB7IHJldHVybiB0aGlzLnJldHVybkJsb2NrLmdldFJldHVyblN0YXRlbWVudCgpOyB9XG5cbiAgY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkgeyByZXR1cm4gdGhpcy5sYWJlbC5jb21wYXJlUHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTsgfVxuXG4gIGd1YXJhbnRlZVJldHVybkJsb2NrKCkge1xuICAgIGlmICh0aGlzLnJldHVybkJsb2NrICE9IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb2NlZHVyZU5vZGUgPSBub2RlO1xuXG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrRnJvbVByb2NlZHVyZU5vZGUocHJvY2VkdXJlTm9kZSwgY29udGV4dCk7XG4gIH1cblxuICB2ZXJpZnkoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uLi4uYClcblxuICAgIGNvbnN0IHByb2NlZHVyZSA9IHRoaXM7IC8vL1xuXG4gICAgY29udGV4dC5hZGRQcm9jZWR1cmUocHJvY2VkdXJlKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbi5gKVxuXG4gICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCk7XG4gIH1cblxuICBjYWxsID0gYnJlYWthYmxlKGZ1bmN0aW9uICh2YWx1ZXMsIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDYWxsaW5nIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbi4uLmApO1xuXG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVycy5jb21wYXJlVmFsdWVzKHZhbHVlcywgY29udGV4dCwgYmFjaywgKCkgPT4ge1xuICAgICAgdGhpcy5ndWFyYW50ZWVSZXR1cm5CbG9jaygpO1xuXG4gICAgICBjb25zdCB2YXJpYWJsZXMgPSB2YXJpYWJsZXNGcm9tVmFsdWVzQW5kUGFyYW1ldGVycyh2YWx1ZXMsIHRoaXMucGFyYW1ldGVycywgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiB0aGlzLnJldHVybkJsb2NrLmV2YWx1YXRlKHZhcmlhYmxlcywgY29udGV4dCwgYmFjaywgKHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgdHlwZUVxdWFsVG9WYWx1ZVR5cGUgPSB0aGlzLnR5cGUuaXNFcXVhbFRvKHZhbHVlVHlwZSk7XG5cbiAgICAgICAgaWYgKCF0eXBlRXF1YWxUb1ZhbHVlVHlwZSkge1xuICAgICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IGVxdWFsIHRvIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbidzICcke3R5cGVTdHJpbmd9JyB0eXBlLmAsXG4gICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNhbGxlZCB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgZnVuY3Rpb24uYCk7XG5cbiAgICAgICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGNhbGxOb21pbmFsbHkobm9taW5hbFZhbHVlcywgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBwcm9jZWR1cmVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDYWxsaW5nIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbiBub21pbmFsbHkuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlcyA9IHZhbHVlc0Zyb21Ob21pbmFsVmFsdWVzKG5vbWluYWxWYWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHRoaXMuY2FsbCh2YWx1ZXMsIGNvbnRleHQsIGJhY2ssICh2YWx1ZSkgPT4ge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uY2FsbGVkIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbiBub21pbmFsbHkuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHR5cGVUb1R5cGVKU09OKHRoaXMudHlwZSksXG4gICAgICAgICAgbGFiZWxKU09OID0gbGFiZWxUb0xhYmVsSlNPTih0aGlzLmxhYmVsKSxcbiAgICAgICAgICBwYXJhbWV0ZXJzSlNPTiA9IHBhcmFtZXRlcnNUb1BhcmFtZXRlcnNKU09OKHRoaXMucGFyYW1ldGVycyksXG4gICAgICAgICAgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgY29uc3QgdHlwZSA9IHR5cGVKU09OLCAgLy8vXG4gICAgICAgICAgbGFiZWwgPSBsYWJlbEpTT04sICAvLy9cbiAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVyc0pTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgYnJlYWtQb2ludCxcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHBhcmFtZXRlcnNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUHJvY2VkdXJlXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgbGFiZWwgPSBsYWJlbEZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZSA9IGNvbnRleHQuZmluZFByb2NlZHVyZU5vZGUobGFiZWwpLFxuICAgICAgICAgIHJldHVybkJsb2NrID0gbnVsbCwgLy8vXG4gICAgICAgICAgbm9kZSA9IHByb2NlZHVyZU5vZGUsIC8vL1xuICAgICAgICAgIHByb2NlZHVyZSA9IG5ldyBQcm9jZWR1cmUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBsYWJlbCwgcGFyYW1ldGVycywgcmV0dXJuQmxvY2spO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiYnJlYWtQb2ludEZyb21KU09OIiwiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiUHJvY2VkdXJlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJsYWJlbCIsInBhcmFtZXRlcnMiLCJyZXR1cm5CbG9jayIsImdldFR5cGUiLCJnZXRMYWJlbCIsImdldFBhcmFtZXRlcnMiLCJnZXRSZXR1cm5CbG9jayIsImdldE5hbWUiLCJpc0Jvb2xlYW4iLCJib29sZWFuVHlwZSIsImlzQm9vbGVhblR5cGUiLCJib29sZWFuIiwiZ2V0UmV0dXJuU3RhdGVtZW50IiwiY29tcGFyZVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lIiwiZ3VhcmFudGVlUmV0dXJuQmxvY2siLCJnZXROb2RlIiwiZ2V0Q29udGV4dCIsInByb2NlZHVyZU5vZGUiLCJyZXR1cm5CbG9ja0Zyb21Qcm9jZWR1cmVOb2RlIiwidmVyaWZ5IiwiYmFjayIsImZvcndhcmQiLCJwcm9jZWR1cmVTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInByb2NlZHVyZSIsImFkZFByb2NlZHVyZSIsImRlYnVnIiwiY2FsbCIsInZhbHVlcyIsImNvbXBhcmVWYWx1ZXMiLCJ2YXJpYWJsZXMiLCJ2YXJpYWJsZXNGcm9tVmFsdWVzQW5kUGFyYW1ldGVycyIsImV2YWx1YXRlIiwidmFsdWUiLCJ2YWx1ZVR5cGUiLCJ0eXBlRXF1YWxUb1ZhbHVlVHlwZSIsImlzRXF1YWxUbyIsInZhbHVlU3RyaW5nIiwidHlwZVN0cmluZyIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImNhbGxOb21pbmFsbHkiLCJub21pbmFsVmFsdWVzIiwidmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMiLCJ0b0pTT04iLCJ0eXBlSlNPTiIsInR5cGVUb1R5cGVKU09OIiwibGFiZWxKU09OIiwibGFiZWxUb0xhYmVsSlNPTiIsInBhcmFtZXRlcnNKU09OIiwicGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04iLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwidHlwZUZyb21KU09OIiwibGFiZWxGcm9tSlNPTiIsInBhcmFtZXRlcnNGcm9tSlNPTiIsImZpbmRQcm9jZWR1cmVOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFjQTs7O2VBQUE7OztnQ0FaNkM7a0VBRXZCOzBCQUVDO3dCQUNpQjt5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
@@ -39,18 +39,20 @@ const _default = (0, _elements.define)(class ProcedureCall extends _occamlanguag
39
39
  const procedureName = this.getProcedureName(), procedurePresent = context.isProcedurePresentByProcedureName(procedureName);
40
40
  if (!procedurePresent) {
41
41
  const message = `The '${procedureCallString}' function is not present.'`, exception = _exception.default.fromMessage(message);
42
- throw exception;
42
+ return back(exception);
43
43
  }
44
- const procedure = context.findProcedureByProcedureName(procedureName), values = this.values.evaluate(context);
45
- return (0, _context.free)((context)=>{
46
- return procedure.call(values, context, back, (value)=>{
47
- const valueString = value.getString();
48
- context.debug(`...evaluated the '${procedureCallString}' function call as '${valueString}'.`);
49
- return forward(value);
50
- });
51
- }, context);
44
+ const procedure = context.findProcedureByProcedureName(procedureName);
45
+ return this.values.evaluate(context, back, (values)=>{
46
+ return (0, _context.free)((context)=>{
47
+ return procedure.call(values, context, back, (value)=>{
48
+ const valueString = value.getString();
49
+ context.debug(`...evaluated the '${procedureCallString}' function call as '${valueString}'.`);
50
+ return forward(value);
51
+ });
52
+ }, context);
53
+ });
52
54
  });
53
55
  static name = "ProcedureCall";
54
56
  });
55
57
 
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZUNhbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBmcmVlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBicmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBQcm9jZWR1cmVDYWxsIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgcmVmZXJlbmNlLCB2YWx1ZXMpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG4gICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XG4gIH1cblxuICBnZXRSZWZlcmVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0VmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZU5hbWUoKSB7IHJldHVybiB0aGlzLnJlZmVyZW5jZS5nZXRQcm9jZWR1cmVOYW1lKCk7IH1cblxuICBldmFsdWF0ZSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHByb2NlZHVyZUNhbGxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtwcm9jZWR1cmVDYWxsU3RyaW5nfScgZnVuY3Rpb24gY2FsbC4uLmApO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlTmFtZSA9IHRoaXMuZ2V0UHJvY2VkdXJlTmFtZSgpLFxuICAgICAgICAgIHByb2NlZHVyZVByZXNlbnQgPSBjb250ZXh0LmlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIGlmICghcHJvY2VkdXJlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7cHJvY2VkdXJlQ2FsbFN0cmluZ30nIGZ1bmN0aW9uIGlzIG5vdCBwcmVzZW50LidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJvY2VkdXJlID0gY29udGV4dC5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIHZhbHVlcyA9IHRoaXMudmFsdWVzLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZyZWUoKGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiBwcm9jZWR1cmUuY2FsbCh2YWx1ZXMsIGNvbnRleHQsIGJhY2ssICh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7cHJvY2VkdXJlQ2FsbFN0cmluZ30nIGZ1bmN0aW9uIGNhbGwgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgICAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfSk7XG5cbiAgc3RhdGljIG5hbWUgPSBcIlByb2NlZHVyZUNhbGxcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJQcm9jZWR1cmVDYWxsIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInJlZmVyZW5jZSIsInZhbHVlcyIsImdldFJlZmVyZW5jZSIsImdldFZhbHVlcyIsImdldFByb2NlZHVyZU5hbWUiLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwicHJvY2VkdXJlQ2FsbFN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwicHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZVByZXNlbnQiLCJpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJwcm9jZWR1cmUiLCJmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lIiwiZnJlZSIsImNhbGwiLCJ2YWx1ZSIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQUE7OztnQ0FUNkM7a0VBRXZCO3lCQUVEOzBCQUNFOzs7Ozs7QUFFdkIsTUFBTSxFQUFFQSxTQUFTLEVBQUUsR0FBR0MsbUNBQW1CO01BRXpDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsc0JBQXNCQyx1QkFBTztJQUN2RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxDQUFFO1FBQ2hFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtJQUNoQjtJQUVBQyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDRixNQUFNO0lBQ3BCO0lBRUFHLG1CQUFtQjtRQUFFLE9BQU8sSUFBSSxDQUFDSixTQUFTLENBQUNJLGdCQUFnQjtJQUFJO0lBRS9EQyxXQUFXZCxVQUFVLFNBQVVLLE9BQU8sRUFBRVUsSUFBSSxFQUFFQyxPQUFPO1FBQ25ELE1BQU1DLHNCQUFzQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRWxEYixRQUFRYyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsb0JBQW9CLGtCQUFrQixDQUFDO1FBRXhFLE1BQU1HLGdCQUFnQixJQUFJLENBQUNQLGdCQUFnQixJQUNyQ1EsbUJBQW1CaEIsUUFBUWlCLGlDQUFpQyxDQUFDRjtRQUVuRSxJQUFJLENBQUNDLGtCQUFrQjtZQUNyQixNQUFNRSxVQUFVLENBQUMsS0FBSyxFQUFFTixvQkFBb0IsMkJBQTJCLENBQUMsRUFDbEVPLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBLE1BQU1HLFlBQVl0QixRQUFRdUIsNEJBQTRCLENBQUNSLGdCQUNqRFYsU0FBUyxJQUFJLENBQUNBLE1BQU0sQ0FBQ0ksUUFBUSxDQUFDVDtRQUVwQyxPQUFPd0IsSUFBQUEsYUFBSSxFQUFDLENBQUN4QjtZQUNYLE9BQU9zQixVQUFVRyxJQUFJLENBQUNwQixRQUFRTCxTQUFTVSxNQUFNLENBQUNnQjtnQkFDNUMsTUFBTUMsY0FBY0QsTUFBTWIsU0FBUztnQkFFbkNiLFFBQVE0QixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRWhCLG9CQUFvQixvQkFBb0IsRUFBRWUsWUFBWSxFQUFFLENBQUM7Z0JBRTVGLE9BQU9oQixRQUFRZTtZQUNqQjtRQUNGLEdBQUcxQjtJQUNMLEdBQUc7SUFFSCxPQUFPNkIsT0FBTyxnQkFBZ0I7QUFDaEMifQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZUNhbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBmcmVlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBicmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBQcm9jZWR1cmVDYWxsIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgcmVmZXJlbmNlLCB2YWx1ZXMpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG4gICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XG4gIH1cblxuICBnZXRSZWZlcmVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0VmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZU5hbWUoKSB7IHJldHVybiB0aGlzLnJlZmVyZW5jZS5nZXRQcm9jZWR1cmVOYW1lKCk7IH1cblxuICBldmFsdWF0ZSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHByb2NlZHVyZUNhbGxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtwcm9jZWR1cmVDYWxsU3RyaW5nfScgZnVuY3Rpb24gY2FsbC4uLmApO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlTmFtZSA9IHRoaXMuZ2V0UHJvY2VkdXJlTmFtZSgpLFxuICAgICAgICAgIHByb2NlZHVyZVByZXNlbnQgPSBjb250ZXh0LmlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIGlmICghcHJvY2VkdXJlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7cHJvY2VkdXJlQ2FsbFN0cmluZ30nIGZ1bmN0aW9uIGlzIG5vdCBwcmVzZW50LidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHByb2NlZHVyZSA9IGNvbnRleHQuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiB0aGlzLnZhbHVlcy5ldmFsdWF0ZShjb250ZXh0LCBiYWNrLCAodmFsdWVzKSA9PiB7XG4gICAgICByZXR1cm4gZnJlZSgoY29udGV4dCkgPT4ge1xuICAgICAgICByZXR1cm4gcHJvY2VkdXJlLmNhbGwodmFsdWVzLCBjb250ZXh0LCBiYWNrLCAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtwcm9jZWR1cmVDYWxsU3RyaW5nfScgZnVuY3Rpb24gY2FsbCBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgICAgICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH0pO1xuICB9KTtcblxuICBzdGF0aWMgbmFtZSA9IFwiUHJvY2VkdXJlQ2FsbFwiO1xufSk7XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlByb2NlZHVyZUNhbGwiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwicmVmZXJlbmNlIiwidmFsdWVzIiwiZ2V0UmVmZXJlbmNlIiwiZ2V0VmFsdWVzIiwiZ2V0UHJvY2VkdXJlTmFtZSIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJwcm9jZWR1cmVDYWxsU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInByb2NlZHVyZSIsImZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUiLCJmcmVlIiwiY2FsbCIsInZhbHVlIiwidmFsdWVTdHJpbmciLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBQTs7O2dDQVQ2QztrRUFFdkI7eUJBRUQ7MEJBQ0U7Ozs7OztBQUV2QixNQUFNLEVBQUVBLFNBQVMsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFekMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxzQkFBc0JDLHVCQUFPO0lBQ3ZELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxNQUFNLENBQUU7UUFDaEUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO0lBQ2hCO0lBRUFDLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQ0YsU0FBUztJQUN2QjtJQUVBRyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNGLE1BQU07SUFDcEI7SUFFQUcsbUJBQW1CO1FBQUUsT0FBTyxJQUFJLENBQUNKLFNBQVMsQ0FBQ0ksZ0JBQWdCO0lBQUk7SUFFL0RDLFdBQVdkLFVBQVUsU0FBVUssT0FBTyxFQUFFVSxJQUFJLEVBQUVDLE9BQU87UUFDbkQsTUFBTUMsc0JBQXNCLElBQUksQ0FBQ0MsU0FBUyxJQUFLLEdBQUc7UUFFbERiLFFBQVFjLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixvQkFBb0Isa0JBQWtCLENBQUM7UUFFeEUsTUFBTUcsZ0JBQWdCLElBQUksQ0FBQ1AsZ0JBQWdCLElBQ3JDUSxtQkFBbUJoQixRQUFRaUIsaUNBQWlDLENBQUNGO1FBRW5FLElBQUksQ0FBQ0Msa0JBQWtCO1lBQ3JCLE1BQU1FLFVBQVUsQ0FBQyxLQUFLLEVBQUVOLG9CQUFvQiwyQkFBMkIsQ0FBQyxFQUNsRU8sWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPUixLQUFLUztRQUNkO1FBRUEsTUFBTUcsWUFBWXRCLFFBQVF1Qiw0QkFBNEIsQ0FBQ1I7UUFFdkQsT0FBTyxJQUFJLENBQUNWLE1BQU0sQ0FBQ0ksUUFBUSxDQUFDVCxTQUFTVSxNQUFNLENBQUNMO1lBQzFDLE9BQU9tQixJQUFBQSxhQUFJLEVBQUMsQ0FBQ3hCO2dCQUNYLE9BQU9zQixVQUFVRyxJQUFJLENBQUNwQixRQUFRTCxTQUFTVSxNQUFNLENBQUNnQjtvQkFDNUMsTUFBTUMsY0FBY0QsTUFBTWIsU0FBUztvQkFFbkNiLFFBQVE0QixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRWhCLG9CQUFvQixvQkFBb0IsRUFBRWUsWUFBWSxFQUFFLENBQUM7b0JBRTVGLE9BQU9oQixRQUFRZTtnQkFDakI7WUFDRixHQUFHMUI7UUFDTDtJQUNGLEdBQUc7SUFFSCxPQUFPNkIsT0FBTyxnQkFBZ0I7QUFDaEMifQ==
@@ -82,7 +82,7 @@ const _default = (0, _elements.define)(class Reduce extends _occamlanguages.Elem
82
82
  const value = this.variable.evaluate(context), valueType = value.getType(), valueTypeListType = valueType.isListType();
83
83
  if (!valueTypeListType) {
84
84
  const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.LIST_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
85
- throw exception;
85
+ return back(exception);
86
86
  }
87
87
  const primitiveValue = value.getPrimitiveValue(), nominalValues = primitiveValue, inivialValue = this.inivialValue.evaluate(context);
88
88
  return reduce(nominalValues, (currentValue, nominalValue, back, forward)=>{
@@ -93,7 +93,7 @@ const _default = (0, _elements.define)(class Reduce extends _occamlanguages.Elem
93
93
  value = (0, _value.valueFromNominalValue)(nominalValue);
94
94
  values.addValue(value);
95
95
  return this.anonymousProcedure.call(values, context, back, forward);
96
- }, inivialValue, (value)=>{
96
+ }, inivialValue, back, (value)=>{
97
97
  const valueString = value.getString();
98
98
  context.trace(`...evaluated the '${reduceString}' reduce as '${valueString}'.`);
99
99
  return forward(value);
@@ -102,4 +102,4 @@ const _default = (0, _elements.define)(class Reduce extends _occamlanguages.Elem
102
102
  static name = "Reduce";
103
103
  });
104
104
 
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3JlZHVjZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbU5vbWluYWxWYWx1ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuY29uc3QgeyByZWR1Y2UgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUmVkdWNlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIGluaXZpYWxWYWx1ZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLmluaXZpYWxWYWx1ZSA9IGluaXZpYWxWYWx1ZTtcbiAgICB0aGlzLmFub255bW91c1Byb2NlZHVyZSA9IGFub255bW91c1Byb2NlZHVyZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0SW5pdGlhbFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmluaXZpYWxWYWx1ZTtcbiAgfVxuXG4gIGdldEFub255bW91c1Byb2NlZHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hbm9ueW1vdXNQcm9jZWR1cmU7XG4gIH1cblxuICBldmFsdWF0ZSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHJlZHVjZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtyZWR1Y2VTdHJpbmd9JyByZWR1Y2UuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTGlzdFR5cGUgPSB2YWx1ZVR5cGUuaXNMaXN0VHlwZSgpO1xuXG4gICAgaWYgKCF2YWx1ZVR5cGVMaXN0VHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtMSVNUX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHZhbHVlLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlcyA9IHByaW1pdGl2ZVZhbHVlLCAvLy9cbiAgICAgICAgICBpbml2aWFsVmFsdWUgPSB0aGlzLmluaXZpYWxWYWx1ZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIHJldHVybiByZWR1Y2Uobm9taW5hbFZhbHVlcywgKGN1cnJlbnRWYWx1ZSwgbm9taW5hbFZhbHVlLCBiYWNrLCBmb3J3YXJkKSA9PiB7XG4gICAgICBsZXQgdmFsdWU7XG5cbiAgICAgIGNvbnN0IHsgVmFsdWVzIH0gPSBlbGVtZW50cztcblxuICAgICAgdmFsdWUgPSBjdXJyZW50VmFsdWU7IC8vL1xuXG4gICAgICBjb25zdCB2YWx1ZXMgPSBWYWx1ZXMuZnJvbVZhbHVlKHZhbHVlLCBjb250ZXh0KTtcblxuICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlKTtcblxuICAgICAgdmFsdWVzLmFkZFZhbHVlKHZhbHVlKTtcblxuICAgICAgcmV0dXJuIHRoaXMuYW5vbnltb3VzUHJvY2VkdXJlLmNhbGwodmFsdWVzLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9LCBpbml2aWFsVmFsdWUsICh2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgICAgY29udGV4dC50cmFjZShgLi4uZXZhbHVhdGVkIHRoZSAnJHtyZWR1Y2VTdHJpbmd9JyByZWR1Y2UgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBzdGF0aWMgbmFtZSA9IFwiUmVkdWNlXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJyZWR1Y2UiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJicmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiUmVkdWNlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiaW5pdmlhbFZhbHVlIiwiYW5vbnltb3VzUHJvY2VkdXJlIiwiZ2V0VmFyaWFibGUiLCJnZXRJbml0aWFsVmFsdWUiLCJnZXRBbm9ueW1vdXNQcm9jZWR1cmUiLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwicmVkdWNlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVMaXN0VHlwZSIsImlzTGlzdFR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJMSVNUX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsIm5vbWluYWxWYWx1ZXMiLCJjdXJyZW50VmFsdWUiLCJub21pbmFsVmFsdWUiLCJWYWx1ZXMiLCJlbGVtZW50cyIsInZhbHVlcyIsImZyb21WYWx1ZSIsInZhbHVlRnJvbU5vbWluYWxWYWx1ZSIsImFkZFZhbHVlIiwiY2FsbCIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7O2dDQVpvRTtrRUFFL0M7a0VBQ0M7MkJBR1M7dUJBQ087Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRDLE1BQU0sRUFBRUEsTUFBTSxFQUFFLEdBQUdDLHFDQUFxQixFQUNsQyxFQUFFQyxTQUFTLEVBQUUsR0FBR0MsbUNBQW1CO01BRXpDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsZUFBZUMsdUJBQU87SUFDaEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLFlBQVksRUFBRUMsa0JBQWtCLENBQUU7UUFDekYsS0FBSyxDQUFDTixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxZQUFZLEdBQUdBO1FBQ3BCLElBQUksQ0FBQ0Msa0JBQWtCLEdBQUdBO0lBQzVCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0gsUUFBUTtJQUN0QjtJQUVBSSxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUNILFlBQVk7SUFDMUI7SUFFQUksd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDSCxrQkFBa0I7SUFDaEM7SUFFQUksV0FBV2YsVUFBVSxTQUFVSyxPQUFPLEVBQUVXLElBQUksRUFBRUMsT0FBTztRQUNuRCxNQUFNQyxlQUFlLElBQUksQ0FBQ0MsU0FBUztRQUVuQ2QsUUFBUWUsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGFBQWEsV0FBVyxDQUFDO1FBRTFELE1BQU1HLFFBQVEsSUFBSSxDQUFDWixRQUFRLENBQUNNLFFBQVEsQ0FBQ1YsVUFDL0JpQixZQUFZRCxNQUFNRSxPQUFPLElBQ3pCQyxvQkFBb0JGLFVBQVVHLFVBQVU7UUFFOUMsSUFBSSxDQUFDRCxtQkFBbUI7WUFDdEIsTUFBTUUsY0FBY0wsTUFBTUYsU0FBUyxJQUM3QlEsVUFBVSxDQUFDLEtBQUssRUFBRUQsWUFBWSxXQUFXLEVBQUVKLFVBQVUsa0JBQWtCLEVBQUVNLHlCQUFjLENBQUMsRUFBRSxDQUFDLEVBQzNGQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE1BQU1FO1FBQ1I7UUFFQSxNQUFNRyxpQkFBaUJYLE1BQU1ZLGlCQUFpQixJQUN4Q0MsZ0JBQWdCRixnQkFDaEJ0QixlQUFlLElBQUksQ0FBQ0EsWUFBWSxDQUFDSyxRQUFRLENBQUNWO1FBRWhELE9BQU9QLE9BQU9vQyxlQUFlLENBQUNDLGNBQWNDLGNBQWNwQixNQUFNQztZQUM5RCxJQUFJSTtZQUVKLE1BQU0sRUFBRWdCLE1BQU0sRUFBRSxHQUFHQyxpQkFBUTtZQUUzQmpCLFFBQVFjLGNBQWMsR0FBRztZQUV6QixNQUFNSSxTQUFTRixPQUFPRyxTQUFTLENBQUNuQixPQUFPaEI7WUFFdkNnQixRQUFRb0IsSUFBQUEsNEJBQXFCLEVBQUNMO1lBRTlCRyxPQUFPRyxRQUFRLENBQUNyQjtZQUVoQixPQUFPLElBQUksQ0FBQ1Ysa0JBQWtCLENBQUNnQyxJQUFJLENBQUNKLFFBQVFsQyxTQUFTVyxNQUFNQztRQUM3RCxHQUFHUCxjQUFjLENBQUNXO1lBQ2hCLE1BQU1LLGNBQWNMLE1BQU1GLFNBQVM7WUFFbkNkLFFBQVFlLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFRixhQUFhLGFBQWEsRUFBRVEsWUFBWSxFQUFFLENBQUM7WUFFOUUsT0FBT1QsUUFBUUk7UUFDakI7SUFDRixHQUFHO0lBRUgsT0FBT3VCLE9BQU8sU0FBUztBQUN6QiJ9
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3JlZHVjZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbU5vbWluYWxWYWx1ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuY29uc3QgeyByZWR1Y2UgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUmVkdWNlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIGluaXZpYWxWYWx1ZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLmluaXZpYWxWYWx1ZSA9IGluaXZpYWxWYWx1ZTtcbiAgICB0aGlzLmFub255bW91c1Byb2NlZHVyZSA9IGFub255bW91c1Byb2NlZHVyZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0SW5pdGlhbFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmluaXZpYWxWYWx1ZTtcbiAgfVxuXG4gIGdldEFub255bW91c1Byb2NlZHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hbm9ueW1vdXNQcm9jZWR1cmU7XG4gIH1cblxuICBldmFsdWF0ZSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHJlZHVjZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtyZWR1Y2VTdHJpbmd9JyByZWR1Y2UuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTGlzdFR5cGUgPSB2YWx1ZVR5cGUuaXNMaXN0VHlwZSgpO1xuXG4gICAgaWYgKCF2YWx1ZVR5cGVMaXN0VHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtMSVNUX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZXMgPSBwcmltaXRpdmVWYWx1ZSwgLy8vXG4gICAgICAgICAgaW5pdmlhbFZhbHVlID0gdGhpcy5pbml2aWFsVmFsdWUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICByZXR1cm4gcmVkdWNlKG5vbWluYWxWYWx1ZXMsIChjdXJyZW50VmFsdWUsIG5vbWluYWxWYWx1ZSwgYmFjaywgZm9yd2FyZCkgPT4ge1xuICAgICAgbGV0IHZhbHVlO1xuXG4gICAgICBjb25zdCB7IFZhbHVlcyB9ID0gZWxlbWVudHM7XG5cbiAgICAgIHZhbHVlID0gY3VycmVudFZhbHVlOyAvLy9cblxuICAgICAgY29uc3QgdmFsdWVzID0gVmFsdWVzLmZyb21WYWx1ZSh2YWx1ZSwgY29udGV4dCk7XG5cbiAgICAgIHZhbHVlID0gdmFsdWVGcm9tTm9taW5hbFZhbHVlKG5vbWluYWxWYWx1ZSk7XG5cbiAgICAgIHZhbHVlcy5hZGRWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIHJldHVybiB0aGlzLmFub255bW91c1Byb2NlZHVyZS5jYWxsKHZhbHVlcywgY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSwgaW5pdmlhbFZhbHVlLCBiYWNrLCAodmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYC4uLmV2YWx1YXRlZCB0aGUgJyR7cmVkdWNlU3RyaW5nfScgcmVkdWNlIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgc3RhdGljIG5hbWUgPSBcIlJlZHVjZVwiO1xufSk7XG4iXSwibmFtZXMiOlsicmVkdWNlIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlJlZHVjZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsImluaXZpYWxWYWx1ZSIsImFub255bW91c1Byb2NlZHVyZSIsImdldFZhcmlhYmxlIiwiZ2V0SW5pdGlhbFZhbHVlIiwiZ2V0QW5vbnltb3VzUHJvY2VkdXJlIiwiZXZhbHVhdGUiLCJiYWNrIiwiZm9yd2FyZCIsInJlZHVjZVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWUiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTGlzdFR5cGUiLCJpc0xpc3RUeXBlIiwidmFsdWVTdHJpbmciLCJtZXNzYWdlIiwiTElTVF9UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInByaW1pdGl2ZVZhbHVlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJub21pbmFsVmFsdWVzIiwiY3VycmVudFZhbHVlIiwibm9taW5hbFZhbHVlIiwiVmFsdWVzIiwiZWxlbWVudHMiLCJ2YWx1ZXMiLCJmcm9tVmFsdWUiLCJ2YWx1ZUZyb21Ob21pbmFsVmFsdWUiLCJhZGRWYWx1ZSIsImNhbGwiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFjQTs7O2VBQUE7OztnQ0Fab0U7a0VBRS9DO2tFQUNDOzJCQUdTO3VCQUNPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV0QyxNQUFNLEVBQUVBLE1BQU0sRUFBRSxHQUFHQyxxQ0FBcUIsRUFDbEMsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLG1DQUFtQjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGVBQWVDLHVCQUFPO0lBQ2hELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxZQUFZLEVBQUVDLGtCQUFrQixDQUFFO1FBQ3pGLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTtRQUNwQixJQUFJLENBQUNDLGtCQUFrQixHQUFHQTtJQUM1QjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNILFFBQVE7SUFDdEI7SUFFQUksa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDSCxZQUFZO0lBQzFCO0lBRUFJLHdCQUF3QjtRQUN0QixPQUFPLElBQUksQ0FBQ0gsa0JBQWtCO0lBQ2hDO0lBRUFJLFdBQVdmLFVBQVUsU0FBVUssT0FBTyxFQUFFVyxJQUFJLEVBQUVDLE9BQU87UUFDbkQsTUFBTUMsZUFBZSxJQUFJLENBQUNDLFNBQVM7UUFFbkNkLFFBQVFlLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixhQUFhLFdBQVcsQ0FBQztRQUUxRCxNQUFNRyxRQUFRLElBQUksQ0FBQ1osUUFBUSxDQUFDTSxRQUFRLENBQUNWLFVBQy9CaUIsWUFBWUQsTUFBTUUsT0FBTyxJQUN6QkMsb0JBQW9CRixVQUFVRyxVQUFVO1FBRTlDLElBQUksQ0FBQ0QsbUJBQW1CO1lBQ3RCLE1BQU1FLGNBQWNMLE1BQU1GLFNBQVMsSUFDN0JRLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFlBQVksV0FBVyxFQUFFSixVQUFVLGtCQUFrQixFQUFFTSx5QkFBYyxDQUFDLEVBQUUsQ0FBQyxFQUMzRkMsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxPQUFPWCxLQUFLYTtRQUNkO1FBRUEsTUFBTUcsaUJBQWlCWCxNQUFNWSxpQkFBaUIsSUFDeENDLGdCQUFnQkYsZ0JBQ2hCdEIsZUFBZSxJQUFJLENBQUNBLFlBQVksQ0FBQ0ssUUFBUSxDQUFDVjtRQUVoRCxPQUFPUCxPQUFPb0MsZUFBZSxDQUFDQyxjQUFjQyxjQUFjcEIsTUFBTUM7WUFDOUQsSUFBSUk7WUFFSixNQUFNLEVBQUVnQixNQUFNLEVBQUUsR0FBR0MsaUJBQVE7WUFFM0JqQixRQUFRYyxjQUFjLEdBQUc7WUFFekIsTUFBTUksU0FBU0YsT0FBT0csU0FBUyxDQUFDbkIsT0FBT2hCO1lBRXZDZ0IsUUFBUW9CLElBQUFBLDRCQUFxQixFQUFDTDtZQUU5QkcsT0FBT0csUUFBUSxDQUFDckI7WUFFaEIsT0FBTyxJQUFJLENBQUNWLGtCQUFrQixDQUFDZ0MsSUFBSSxDQUFDSixRQUFRbEMsU0FBU1csTUFBTUM7UUFDN0QsR0FBR1AsY0FBY00sTUFBTSxDQUFDSztZQUN0QixNQUFNSyxjQUFjTCxNQUFNRixTQUFTO1lBRW5DZCxRQUFRZSxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRUYsYUFBYSxhQUFhLEVBQUVRLFlBQVksRUFBRSxDQUFDO1lBRTlFLE9BQU9ULFFBQVFJO1FBQ2pCO0lBQ0YsR0FBRztJQUVILE9BQU91QixPQUFPLFNBQVM7QUFDekIifQ==
@@ -39,7 +39,7 @@ const _default = (0, _elements.define)(class ReturnBlock extends _occamlanguages
39
39
  context.trace(`Evaluating the '${returnBlockString}' return block...`);
40
40
  if (this.nonsensical) {
41
41
  const message = `The return block is nonsensical.`, exception = _exception.default.fromMessage(message);
42
- throw exception;
42
+ return back(exception);
43
43
  }
44
44
  return (0, _context.confine)((context)=>{
45
45
  return this.evaluateStatements(context, back, ()=>{
@@ -62,4 +62,4 @@ const _default = (0, _elements.define)(class ReturnBlock extends _occamlanguages
62
62
  static name = "ReturnBlock";
63
63
  });
64
64
 
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3JldHVybkJsb2NrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGNvbmZpbmUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBSZXR1cm5CbG9jayBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudHMsIG5vbnNlbnNpY2FsLCByZXR1cm5TdGF0ZW1lbnQpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5zdGF0ZW1lbnRzID0gc3RhdGVtZW50cztcbiAgICB0aGlzLm5vbnNlbnNpY2FsID0gbm9uc2Vuc2ljYWw7XG4gICAgdGhpcy5yZXR1cm5TdGF0ZW1lbnQgPSByZXR1cm5TdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudHM7XG4gIH1cblxuICBpc05vbnNlbnNpY2FsKCkge1xuICAgIHJldHVybiB0aGlzLm5vbnNlbnNpY2FsO1xuICB9XG5cbiAgZ2V0UmV0dXJuU3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnJldHVyblN0YXRlbWVudDtcbiAgfVxuXG4gIGV2YWx1YXRlKHZhcmlhYmxlcywgY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHJldHVybkJsb2NrU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtyZXR1cm5CbG9ja1N0cmluZ30nIHJldHVybiBibG9jay4uLmApO1xuXG4gICAgaWYgKHRoaXMubm9uc2Vuc2ljYWwpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlIHJldHVybiBibG9jayBpcyBub25zZW5zaWNhbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpbmUoKGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmV2YWx1YXRlU3RhdGVtZW50cyhjb250ZXh0LCBiYWNrLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5yZXR1cm5TdGF0ZW1lbnQuZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtyZXR1cm5CbG9ja1N0cmluZ30nIHJldHVybiBibG9jayBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH0sIHZhcmlhYmxlcywgY29udGV4dCk7XG4gIH1cblxuICBldmFsdWF0ZVN0YXRlbWVudHMoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHJldHVybkJsb2NrU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtyZXR1cm5CbG9ja1N0cmluZ30nIHJldHVybiBibG9jaydzIHN0YXRlbWVudHMuLi5gKTtcblxuICAgIHJldHVybiBmb3JFYWNoKHRoaXMuc3RhdGVtZW50cywgKHN0YXRlbWVudCwgYmFjaywgZm9yd2FyZCkgPT4ge1xuICAgICAgcmV0dXJuIHN0YXRlbWVudC5ldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9LCBiYWNrLCAoKSA9PiB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3JldHVybkJsb2NrU3RyaW5nfScgcmV0dXJuIGJsb2NrJ3Mgc3RhdGVtZW50cy5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJSZXR1cm5CbG9ja1wiO1xufSk7XG4iXSwibmFtZXMiOlsiZm9yRWFjaCIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIlJldHVybkJsb2NrIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInN0YXRlbWVudHMiLCJub25zZW5zaWNhbCIsInJldHVyblN0YXRlbWVudCIsImdldFN0YXRlbWVudHMiLCJpc05vbnNlbnNpY2FsIiwiZ2V0UmV0dXJuU3RhdGVtZW50IiwiZXZhbHVhdGUiLCJ2YXJpYWJsZXMiLCJiYWNrIiwiZm9yd2FyZCIsInJldHVybkJsb2NrU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJjb25maW5lIiwiZXZhbHVhdGVTdGF0ZW1lbnRzIiwidmFsdWUiLCJ2YWx1ZVN0cmluZyIsImRlYnVnIiwic3RhdGVtZW50IiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFBOzs7Z0NBVCtDO2tFQUV6QjswQkFFQzt5QkFDQzs7Ozs7O0FBRXhCLE1BQU0sRUFBRUEsT0FBTyxFQUFFLEdBQUdDLHFDQUFxQjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG9CQUFvQkMsdUJBQU87SUFDckQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsRUFBRUMsZUFBZSxDQUFFO1FBQ3ZGLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLGVBQWUsR0FBR0E7SUFDekI7SUFFQUMsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNILFVBQVU7SUFDeEI7SUFFQUksZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNILFdBQVc7SUFDekI7SUFFQUkscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDSCxlQUFlO0lBQzdCO0lBRUFJLFNBQVNDLFNBQVMsRUFBRVgsT0FBTyxFQUFFWSxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUMxQyxNQUFNQyxvQkFBb0IsSUFBSSxDQUFDQyxTQUFTLElBQUksR0FBRztRQUUvQ2YsUUFBUWdCLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixrQkFBa0IsaUJBQWlCLENBQUM7UUFFckUsSUFBSSxJQUFJLENBQUNULFdBQVcsRUFBRTtZQUNwQixNQUFNWSxVQUFVLENBQUMsZ0NBQWdDLENBQUMsRUFDNUNDLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBLE9BQU9HLElBQUFBLGdCQUFPLEVBQUMsQ0FBQ3JCO1lBQ2QsT0FBTyxJQUFJLENBQUNzQixrQkFBa0IsQ0FBQ3RCLFNBQVNZLE1BQU07Z0JBQzVDLE1BQU1XLFFBQVEsSUFBSSxDQUFDakIsZUFBZSxDQUFDSSxRQUFRLENBQUNWLFVBQ3RDd0IsY0FBY0QsTUFBTVIsU0FBUztnQkFFbkNmLFFBQVF5QixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRVgsa0JBQWtCLG1CQUFtQixFQUFFVSxZQUFZLEVBQUUsQ0FBQztnQkFFekYsT0FBT1gsUUFBUVU7WUFDakI7UUFDRixHQUFHWixXQUFXWDtJQUNoQjtJQUVBc0IsbUJBQW1CdEIsT0FBTyxFQUFFWSxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUN6QyxNQUFNQyxvQkFBb0IsSUFBSSxDQUFDQyxTQUFTLElBQUksR0FBRztRQUUvQ2YsUUFBUWdCLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixrQkFBa0IsOEJBQThCLENBQUM7UUFFbEYsT0FBT25CLFFBQVEsSUFBSSxDQUFDUyxVQUFVLEVBQUUsQ0FBQ3NCLFdBQVdkLE1BQU1DO1lBQ2hELE9BQU9hLFVBQVVoQixRQUFRLENBQUNWLFNBQVNZLE1BQU1DO1FBQzNDLEdBQUdELE1BQU07WUFDUFosUUFBUXlCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFWCxrQkFBa0IsNEJBQTRCLENBQUM7WUFFbEYsT0FBT0Q7UUFDVDtJQUNGO0lBRUEsT0FBT2MsT0FBTyxjQUFjO0FBQzlCIn0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3JldHVybkJsb2NrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGNvbmZpbmUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBSZXR1cm5CbG9jayBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudHMsIG5vbnNlbnNpY2FsLCByZXR1cm5TdGF0ZW1lbnQpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5zdGF0ZW1lbnRzID0gc3RhdGVtZW50cztcbiAgICB0aGlzLm5vbnNlbnNpY2FsID0gbm9uc2Vuc2ljYWw7XG4gICAgdGhpcy5yZXR1cm5TdGF0ZW1lbnQgPSByZXR1cm5TdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudHM7XG4gIH1cblxuICBpc05vbnNlbnNpY2FsKCkge1xuICAgIHJldHVybiB0aGlzLm5vbnNlbnNpY2FsO1xuICB9XG5cbiAgZ2V0UmV0dXJuU3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnJldHVyblN0YXRlbWVudDtcbiAgfVxuXG4gIGV2YWx1YXRlKHZhcmlhYmxlcywgY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHJldHVybkJsb2NrU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtyZXR1cm5CbG9ja1N0cmluZ30nIHJldHVybiBibG9jay4uLmApO1xuXG4gICAgaWYgKHRoaXMubm9uc2Vuc2ljYWwpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlIHJldHVybiBibG9jayBpcyBub25zZW5zaWNhbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBjb25maW5lKChjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5ldmFsdWF0ZVN0YXRlbWVudHMoY29udGV4dCwgYmFjaywgKCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmV0dXJuU3RhdGVtZW50LmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7cmV0dXJuQmxvY2tTdHJpbmd9JyByZXR1cm4gYmxvY2sgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgICAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9LCB2YXJpYWJsZXMsIGNvbnRleHQpO1xuICB9XG5cbiAgZXZhbHVhdGVTdGF0ZW1lbnRzKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCByZXR1cm5CbG9ja1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7cmV0dXJuQmxvY2tTdHJpbmd9JyByZXR1cm4gYmxvY2sncyBzdGF0ZW1lbnRzLi4uYCk7XG5cbiAgICByZXR1cm4gZm9yRWFjaCh0aGlzLnN0YXRlbWVudHMsIChzdGF0ZW1lbnQsIGJhY2ssIGZvcndhcmQpID0+IHtcbiAgICAgIHJldHVybiBzdGF0ZW1lbnQuZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSwgYmFjaywgKCkgPT4ge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtyZXR1cm5CbG9ja1N0cmluZ30nIHJldHVybiBibG9jaydzIHN0YXRlbWVudHMuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKCk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUmV0dXJuQmxvY2tcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImZvckVhY2giLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJkZWZpbmUiLCJSZXR1cm5CbG9jayIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJzdGF0ZW1lbnRzIiwibm9uc2Vuc2ljYWwiLCJyZXR1cm5TdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnRzIiwiaXNOb25zZW5zaWNhbCIsImdldFJldHVyblN0YXRlbWVudCIsImV2YWx1YXRlIiwidmFyaWFibGVzIiwiYmFjayIsImZvcndhcmQiLCJyZXR1cm5CbG9ja1N0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiY29uZmluZSIsImV2YWx1YXRlU3RhdGVtZW50cyIsInZhbHVlIiwidmFsdWVTdHJpbmciLCJkZWJ1ZyIsInN0YXRlbWVudCIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBQTs7O2dDQVQrQztrRUFFekI7MEJBRUM7eUJBQ0M7Ozs7OztBQUV4QixNQUFNLEVBQUVBLE9BQU8sRUFBRSxHQUFHQyxxQ0FBcUI7TUFFekMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxvQkFBb0JDLHVCQUFPO0lBQ3JELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFQyxXQUFXLEVBQUVDLGVBQWUsQ0FBRTtRQUN2RixLQUFLLENBQUNOLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxlQUFlLEdBQUdBO0lBQ3pCO0lBRUFDLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDSCxVQUFVO0lBQ3hCO0lBRUFJLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDSCxXQUFXO0lBQ3pCO0lBRUFJLHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQ0gsZUFBZTtJQUM3QjtJQUVBSSxTQUFTQyxTQUFTLEVBQUVYLE9BQU8sRUFBRVksSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDMUMsTUFBTUMsb0JBQW9CLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFL0NmLFFBQVFnQixLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsa0JBQWtCLGlCQUFpQixDQUFDO1FBRXJFLElBQUksSUFBSSxDQUFDVCxXQUFXLEVBQUU7WUFDcEIsTUFBTVksVUFBVSxDQUFDLGdDQUFnQyxDQUFDLEVBQzVDQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE9BQU9MLEtBQUtNO1FBQ2Q7UUFFQSxPQUFPRyxJQUFBQSxnQkFBTyxFQUFDLENBQUNyQjtZQUNkLE9BQU8sSUFBSSxDQUFDc0Isa0JBQWtCLENBQUN0QixTQUFTWSxNQUFNO2dCQUM1QyxNQUFNVyxRQUFRLElBQUksQ0FBQ2pCLGVBQWUsQ0FBQ0ksUUFBUSxDQUFDVixVQUN0Q3dCLGNBQWNELE1BQU1SLFNBQVM7Z0JBRW5DZixRQUFReUIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVYLGtCQUFrQixtQkFBbUIsRUFBRVUsWUFBWSxFQUFFLENBQUM7Z0JBRXpGLE9BQU9YLFFBQVFVO1lBQ2pCO1FBQ0YsR0FBR1osV0FBV1g7SUFDaEI7SUFFQXNCLG1CQUFtQnRCLE9BQU8sRUFBRVksSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDekMsTUFBTUMsb0JBQW9CLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFL0NmLFFBQVFnQixLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsa0JBQWtCLDhCQUE4QixDQUFDO1FBRWxGLE9BQU9uQixRQUFRLElBQUksQ0FBQ1MsVUFBVSxFQUFFLENBQUNzQixXQUFXZCxNQUFNQztZQUNoRCxPQUFPYSxVQUFVaEIsUUFBUSxDQUFDVixTQUFTWSxNQUFNQztRQUMzQyxHQUFHRCxNQUFNO1lBQ1BaLFFBQVF5QixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRVgsa0JBQWtCLDRCQUE0QixDQUFDO1lBRWxGLE9BQU9EO1FBQ1Q7SUFDRjtJQUVBLE9BQU9jLE9BQU8sY0FBYztBQUM5QiJ9
@@ -18,16 +18,16 @@ const _default = (0, _elements.define)(class ReturnStatement extends _occamlangu
18
18
  getExpression() {
19
19
  return this.value;
20
20
  }
21
- evaluate(context) {
21
+ evaluate(context, back, forward) {
22
22
  let value;
23
23
  const returnStatementString = this.getString(); ///
24
24
  context.trace(`Evaluating the '${returnStatementString}' return statement...`);
25
25
  value = this.value.evaluate(context);
26
26
  const valueString = value.getString();
27
27
  context.debug(`...evaluated the '${returnStatementString}' return statement as '${valueString}'.`);
28
- return value;
28
+ return forward(value);
29
29
  }
30
30
  static name = "ReturnStatement";
31
31
  });
32
32
 
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3JldHVyblN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBSZXR1cm5TdGF0ZW1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YWx1ZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBnZXRFeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IHJldHVyblN0YXRlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3JldHVyblN0YXRlbWVudFN0cmluZ30nIHJldHVybiBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIHZhbHVlID0gdGhpcy52YWx1ZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3JldHVyblN0YXRlbWVudFN0cmluZ30nIHJldHVybiBzdGF0ZW1lbnQgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJSZXR1cm5TdGF0ZW1lbnRcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlJldHVyblN0YXRlbWVudCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YWx1ZSIsImdldEV4cHJlc3Npb24iLCJldmFsdWF0ZSIsInJldHVyblN0YXRlbWVudFN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWVTdHJpbmciLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBQTs7O2dDQUp3QjswQkFFRDtNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLHdCQUF3QkMsdUJBQU87SUFDekQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLENBQUU7UUFDcEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0QsS0FBSztJQUNuQjtJQUVBRSxTQUFTTixPQUFPLEVBQUU7UUFDaEIsSUFBSUk7UUFFSixNQUFNRyx3QkFBd0IsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUVwRFIsUUFBUVMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLHNCQUFzQixxQkFBcUIsQ0FBQztRQUU3RUgsUUFBUSxJQUFJLENBQUNBLEtBQUssQ0FBQ0UsUUFBUSxDQUFDTjtRQUU1QixNQUFNVSxjQUFjTixNQUFNSSxTQUFTO1FBRW5DUixRQUFRVyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRUosc0JBQXNCLHVCQUF1QixFQUFFRyxZQUFZLEVBQUUsQ0FBQztRQUVqRyxPQUFPTjtJQUNUO0lBRUEsT0FBT1EsT0FBTyxrQkFBa0I7QUFDbEMifQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3JldHVyblN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBSZXR1cm5TdGF0ZW1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YWx1ZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBnZXRFeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IHJldHVyblN0YXRlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3JldHVyblN0YXRlbWVudFN0cmluZ30nIHJldHVybiBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIHZhbHVlID0gdGhpcy52YWx1ZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3JldHVyblN0YXRlbWVudFN0cmluZ30nIHJldHVybiBzdGF0ZW1lbnQgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJSZXR1cm5TdGF0ZW1lbnRcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlJldHVyblN0YXRlbWVudCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YWx1ZSIsImdldEV4cHJlc3Npb24iLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwicmV0dXJuU3RhdGVtZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVN0cmluZyIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7Z0NBSndCOzBCQUVEO01BRXZCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsd0JBQXdCQyx1QkFBTztJQUN6RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssQ0FBRTtRQUNwRCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtJQUNmO0lBRUFDLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDRCxLQUFLO0lBQ25CO0lBRUFFLFNBQVNOLE9BQU8sRUFBRU8sSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDL0IsSUFBSUo7UUFFSixNQUFNSyx3QkFBd0IsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUVwRFYsUUFBUVcsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLHNCQUFzQixxQkFBcUIsQ0FBQztRQUU3RUwsUUFBUSxJQUFJLENBQUNBLEtBQUssQ0FBQ0UsUUFBUSxDQUFDTjtRQUU1QixNQUFNWSxjQUFjUixNQUFNTSxTQUFTO1FBRW5DVixRQUFRYSxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRUosc0JBQXNCLHVCQUF1QixFQUFFRyxZQUFZLEVBQUUsQ0FBQztRQUVqRyxPQUFPSixRQUFRSjtJQUNqQjtJQUVBLE9BQU9VLE9BQU8sa0JBQWtCO0FBQ2xDIn0=
@@ -78,7 +78,7 @@ const _default = (0, _elements.define)(class Some extends _occamlanguages.Elemen
78
78
  const value = this.variable.evaluate(context), valueType = value.getType(), valueTypeListType = valueType.isListType();
79
79
  if (!valueTypeListType) {
80
80
  const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.LIST_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
81
- throw exception;
81
+ return back(exception);
82
82
  }
83
83
  const primitiveValue = value.getPrimitiveValue(), nominalValues = primitiveValue; ///
84
84
  return some(nominalValues, (nominalValue, back, forward)=>{
@@ -87,7 +87,7 @@ const _default = (0, _elements.define)(class Some extends _occamlanguages.Elemen
87
87
  const valueType = value.getType(), valueTypeBooleanType = valueType.isBooleanType();
88
88
  if (!valueTypeBooleanType) {
89
89
  const valueString = value.getString(), message = `The '${valueString}' value's type is '${valueType}' when it should be of type '${_typeNames.BOOLEAN_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
90
- throw exception;
90
+ return back(exception);
91
91
  }
92
92
  const primitiveValue = value.getPrimitiveValue(), boolean = primitiveValue; ///
93
93
  return forward(boolean);
@@ -101,4 +101,4 @@ const _default = (0, _elements.define)(class Some extends _occamlanguages.Elemen
101
101
  static name = "Some";
102
102
  });
103
103
 
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3NvbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiwgdmFsdWVGcm9tTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5jb25zdCB7IHNvbWUgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgU29tZSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMuYW5vbnltb3VzUHJvY2VkdXJlID0gYW5vbnltb3VzUHJvY2VkdXJlO1xuICB9XG5cbiAgZ2V0VmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGU7XG4gIH1cblxuICBnZXRBbm9ueW1vdXNQcm9jZWR1cmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYW5vbnltb3VzUHJvY2VkdXJlO1xuICB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBzb21lU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3NvbWVTdHJpbmd9JyBzb21lLi4uYCk7XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlVHlwZUxpc3RUeXBlID0gdmFsdWVUeXBlLmlzTGlzdFR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlTGlzdFR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZXMgPSBwcmltaXRpdmVWYWx1ZTsgLy8vXG5cbiAgICByZXR1cm4gc29tZShub21pbmFsVmFsdWVzLCAobm9taW5hbFZhbHVlLCBiYWNrLCBmb3J3YXJkKSA9PiB7XG4gICAgICBjb25zdCB7IFZhbHVlcyB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbU5vbWluYWxWYWx1ZShub21pbmFsVmFsdWUpLFxuICAgICAgICAgICAgdmFsdWVzID0gVmFsdWVzLmZyb21WYWx1ZSh2YWx1ZSwgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmFub255bW91c1Byb2NlZHVyZS5jYWxsKHZhbHVlcywgY29udGV4dCwgYmFjaywgKHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgdmFsdWVUeXBlQm9vbGVhblR5cGUgPSB2YWx1ZVR5cGUuaXNCb29sZWFuVHlwZSgpO1xuXG4gICAgICAgIGlmICghdmFsdWVUeXBlQm9vbGVhblR5cGUpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyB0eXBlIGlzICcke3ZhbHVlVHlwZX0nIHdoZW4gaXQgc2hvdWxkIGJlIG9mIHR5cGUgJyR7Qk9PTEVBTl9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICAgICAgYm9vbGVhbiA9IHByaW1pdGl2ZVZhbHVlOyAvLy9cblxuICAgICAgICByZXR1cm4gZm9yd2FyZChib29sZWFuKTtcbiAgICAgIH0pO1xuICAgIH0sIChib29sZWFuKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCksXG4gICAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGAuLi5ldmFsdWF0ZWQgdGhlICcke3NvbWVTdHJpbmd9JyBzb21lIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgc3RhdGljIG5hbWUgPSBcIlNvbWVcIjtcbn0pO1xuIl0sIm5hbWVzIjpbInNvbWUiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJicmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiU29tZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsImFub255bW91c1Byb2NlZHVyZSIsImdldFZhcmlhYmxlIiwiZ2V0QW5vbnltb3VzUHJvY2VkdXJlIiwiZXZhbHVhdGUiLCJiYWNrIiwiZm9yd2FyZCIsInNvbWVTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZUxpc3RUeXBlIiwiaXNMaXN0VHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIkxJU1RfVFlQRV9OQU1FIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibm9taW5hbFZhbHVlcyIsIm5vbWluYWxWYWx1ZSIsIlZhbHVlcyIsImVsZW1lbnRzIiwidmFsdWVGcm9tTm9taW5hbFZhbHVlIiwidmFsdWVzIiwiZnJvbVZhbHVlIiwiY2FsbCIsInZhbHVlVHlwZUJvb2xlYW5UeXBlIiwiaXNCb29sZWFuVHlwZSIsIkJPT0xFQU5fVFlQRV9OQU1FIiwiYm9vbGVhbiIsInZhbHVlRnJvbUJvb2xlYW4iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFjQTs7O2VBQUE7OztnQ0Fab0U7a0VBRS9DO2tFQUNDOzJCQUc0Qjt1QkFDTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFeEQsTUFBTSxFQUFFQSxJ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
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3NvbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiwgdmFsdWVGcm9tTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5jb25zdCB7IHNvbWUgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgU29tZSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMuYW5vbnltb3VzUHJvY2VkdXJlID0gYW5vbnltb3VzUHJvY2VkdXJlO1xuICB9XG5cbiAgZ2V0VmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGU7XG4gIH1cblxuICBnZXRBbm9ueW1vdXNQcm9jZWR1cmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYW5vbnltb3VzUHJvY2VkdXJlO1xuICB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBzb21lU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3NvbWVTdHJpbmd9JyBzb21lLi4uYCk7XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlVHlwZUxpc3RUeXBlID0gdmFsdWVUeXBlLmlzTGlzdFR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlTGlzdFR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWVzID0gcHJpbWl0aXZlVmFsdWU7IC8vL1xuXG4gICAgcmV0dXJuIHNvbWUobm9taW5hbFZhbHVlcywgKG5vbWluYWxWYWx1ZSwgYmFjaywgZm9yd2FyZCkgPT4ge1xuICAgICAgY29uc3QgeyBWYWx1ZXMgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlKSxcbiAgICAgICAgICAgIHZhbHVlcyA9IFZhbHVlcy5mcm9tVmFsdWUodmFsdWUsIGNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gdGhpcy5hbm9ueW1vdXNQcm9jZWR1cmUuY2FsbCh2YWx1ZXMsIGNvbnRleHQsIGJhY2ssICh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgIHZhbHVlVHlwZUJvb2xlYW5UeXBlID0gdmFsdWVUeXBlLmlzQm9vbGVhblR5cGUoKTtcblxuICAgICAgICBpZiAoIXZhbHVlVHlwZUJvb2xlYW5UeXBlKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgdHlwZSBpcyAnJHt2YWx1ZVR5cGV9JyB3aGVuIGl0IHNob3VsZCBiZSBvZiB0eXBlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgICAgICBib29sZWFuID0gcHJpbWl0aXZlVmFsdWU7IC8vL1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKGJvb2xlYW4pO1xuICAgICAgfSk7XG4gICAgfSwgKGJvb2xlYW4pID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSxcbiAgICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYC4uLmV2YWx1YXRlZCB0aGUgJyR7c29tZVN0cmluZ30nIHNvbWUgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBzdGF0aWMgbmFtZSA9IFwiU29tZVwiO1xufSk7XG4iXSwibmFtZXMiOlsic29tZSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJTb21lIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiYW5vbnltb3VzUHJvY2VkdXJlIiwiZ2V0VmFyaWFibGUiLCJnZXRBbm9ueW1vdXNQcm9jZWR1cmUiLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwic29tZVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWUiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTGlzdFR5cGUiLCJpc0xpc3RUeXBlIiwidmFsdWVTdHJpbmciLCJtZXNzYWdlIiwiTElTVF9UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInByaW1pdGl2ZVZhbHVlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJub21pbmFsVmFsdWVzIiwibm9taW5hbFZhbHVlIiwiVmFsdWVzIiwiZWxlbWVudHMiLCJ2YWx1ZUZyb21Ob21pbmFsVmFsdWUiLCJ2YWx1ZXMiLCJmcm9tVmFsdWUiLCJjYWxsIiwidmFsdWVUeXBlQm9vbGVhblR5cGUiLCJpc0Jvb2xlYW5UeXBlIiwiQk9PTEVBTl9UWVBFX05BTUUiLCJib29sZWFuIiwidmFsdWVGcm9tQm9vbGVhbiIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7O2dDQVpvRTtrRUFFL0M7a0VBQ0M7MkJBRzRCO3VCQUNNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV4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