greybel-interpreter 1.3.2 → 1.3.4

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.
package/dist/index.d.ts CHANGED
@@ -42,3 +42,4 @@ export { default as CustomNil } from './types/nil';
42
42
  export { default as CustomNumber } from './types/number';
43
43
  export { default as CustomString, CustomStringIterator } from './types/string';
44
44
  export { default as Path } from './utils/path';
45
+ export { default as deepEqual } from './utils/deep-equal';
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Noop = exports.NewInstance = exports.NegatedBinary = exports.MapOperation = exports.Literal = exports.List = exports.Include = exports.Import = exports.IfStatement = exports.Clause = exports.FunctionOpertion = exports.For = exports.StringProcessorHandler = exports.NumberProcessorHandler = exports.MapProcessorHandler = exports.ListProcessorHandler = exports.handleString = exports.handleNumber = exports.handleMap = exports.handleList = exports.handleBoolean = exports.handle = exports.GenericProcessorHandler = exports.Evaluate = exports.DebuggerStatement = exports.Continue = exports.Chunk = exports.Call = exports.Break = exports.Block = exports.Assign = exports.IntrinsicsContainer = exports.Interpreter = exports.HandlerContainer = exports.ResourceHandler = exports.DefaultResourceHandler = exports.OutputHandler = exports.DefaultOutputHandler = exports.ErrorHandler = exports.DefaultErrorHandler = exports.CPSContext = exports.CPS = exports.Scope = exports.ProcessState = exports.OperationContext = exports.LoopState = exports.FunctionState = exports.Debugger = exports.ContextType = exports.ContextState = void 0;
7
- exports.Path = exports.CustomStringIterator = exports.CustomString = exports.CustomNumber = exports.CustomNil = exports.CustomMapIterator = exports.CustomMap = exports.CustomListIterator = exports.CustomList = exports.CustomInterfaceIterator = exports.CustomInterface = exports.CustomValueWithIntrinsics = exports.CustomValue = exports.CustomObject = exports.CustomFunction = exports.Argument = exports.Defaults = exports.CustomBoolean = exports.While = exports.Return = exports.ResolveResult = exports.Resolve = exports.OperationSegment = exports.IndexSegment = exports.IdentifierSegment = exports.Reference = exports.Operation = exports.Not = void 0;
7
+ exports.deepEqual = exports.Path = exports.CustomStringIterator = exports.CustomString = exports.CustomNumber = exports.CustomNil = exports.CustomMapIterator = exports.CustomMap = exports.CustomListIterator = exports.CustomList = exports.CustomInterfaceIterator = exports.CustomInterface = exports.CustomValueWithIntrinsics = exports.CustomValue = exports.CustomObject = exports.CustomFunction = exports.Argument = exports.Defaults = exports.CustomBoolean = exports.While = exports.Return = exports.ResolveResult = exports.Resolve = exports.OperationSegment = exports.IndexSegment = exports.IdentifierSegment = exports.Reference = exports.Operation = exports.Not = void 0;
8
8
  var context_1 = require("./context");
9
9
  Object.defineProperty(exports, "ContextState", { enumerable: true, get: function () { return context_1.ContextState; } });
10
10
  Object.defineProperty(exports, "ContextType", { enumerable: true, get: function () { return context_1.ContextType; } });
@@ -127,3 +127,5 @@ Object.defineProperty(exports, "CustomString", { enumerable: true, get: function
127
127
  Object.defineProperty(exports, "CustomStringIterator", { enumerable: true, get: function () { return string_1.CustomStringIterator; } });
128
128
  var path_1 = require("./utils/path");
129
129
  Object.defineProperty(exports, "Path", { enumerable: true, get: function () { return __importDefault(path_1).default; } });
130
+ var deep_equal_1 = require("./utils/deep-equal");
131
+ Object.defineProperty(exports, "deepEqual", { enumerable: true, get: function () { return __importDefault(deep_equal_1).default; } });
@@ -65,6 +65,7 @@ var map_1 = __importDefault(require("../types/map"));
65
65
  var nil_1 = __importDefault(require("../types/nil"));
66
66
  var number_1 = __importDefault(require("../types/number"));
67
67
  var string_1 = __importDefault(require("../types/string"));
68
+ var deep_equal_1 = __importDefault(require("../utils/deep-equal"));
68
69
  var operation_1 = __importDefault(require("./operation"));
69
70
  exports.GenericProcessorHandler = (_b = {},
70
71
  _b[greyscript_core_1.Operator.And] = function (a, b) { return new boolean_1.default(a.toTruthy() && b.toTruthy()); },
@@ -140,7 +141,7 @@ exports.ListProcessorHandler = (_e = {},
140
141
  return new boolean_1.default(left.value.length >= right.value.length);
141
142
  },
142
143
  _e[greyscript_core_1.Operator.Equal] = function (left, right) {
143
- return new boolean_1.default(left.value === right.value);
144
+ return new boolean_1.default((0, deep_equal_1.default)(left, right));
144
145
  },
145
146
  _e[greyscript_core_1.Operator.LessThanOrEqual] = function (left, right) {
146
147
  return new boolean_1.default(left.value.length <= right.value.length);
@@ -163,7 +164,7 @@ exports.MapProcessorHandler = (_f = {},
163
164
  return new boolean_1.default(left.value.size >= right.value.size);
164
165
  },
165
166
  _f[greyscript_core_1.Operator.Equal] = function (left, right) {
166
- return new boolean_1.default(left.value === right.value);
167
+ return new boolean_1.default((0, deep_equal_1.default)(left, right));
167
168
  },
168
169
  _f[greyscript_core_1.Operator.LessThanOrEqual] = function (left, right) {
169
170
  return new boolean_1.default(left.value.size <= right.value.size);
package/dist/types/map.js CHANGED
@@ -52,13 +52,14 @@ var default_1 = __importDefault(require("./default"));
52
52
  var generics_1 = require("./generics");
53
53
  var nil_1 = __importDefault(require("./nil"));
54
54
  var string_1 = __importDefault(require("./string"));
55
+ var deep_equal_1 = __importDefault(require("../utils/deep-equal"));
55
56
  exports.CLASS_ID_PROPERTY = new string_1.default('classID');
56
57
  var getValue = function (map, mapKey) {
57
58
  var e_1, _a;
58
59
  try {
59
- for (var _b = __values(map.value), _c = _b.next(); !_c.done; _c = _b.next()) {
60
+ for (var _b = __values(map.value.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
60
61
  var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
61
- if (key.value === mapKey.value) {
62
+ if ((0, deep_equal_1.default)(key, mapKey)) {
62
63
  return value;
63
64
  }
64
65
  }
@@ -78,7 +79,7 @@ var hasValue = function (map, mapKey) {
78
79
  try {
79
80
  for (var _b = __values(map.value.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {
80
81
  var key = _c.value;
81
- if (key.value === mapKey.value) {
82
+ if ((0, deep_equal_1.default)(key, mapKey)) {
82
83
  return true;
83
84
  }
84
85
  }
@@ -98,7 +99,7 @@ var setValue = function (map, mapKey, mapValue) {
98
99
  try {
99
100
  for (var _b = __values(map.value.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {
100
101
  var key = _c.value;
101
- if (key.value === mapKey.value) {
102
+ if ((0, deep_equal_1.default)(key, mapKey)) {
102
103
  map.value.set(key, mapValue);
103
104
  return;
104
105
  }
@@ -0,0 +1 @@
1
+ export default function equal(a: any, b: any, maxDepth?: number): boolean;
@@ -0,0 +1,67 @@
1
+ 'use strict';
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var generics_1 = require("../types/generics");
18
+ var list_1 = __importDefault(require("../types/list"));
19
+ var map_1 = __importDefault(require("../types/map"));
20
+ function equalInner(a, b, maxDepth, depth) {
21
+ var e_1, _a;
22
+ if (depth === void 0) { depth = 0; }
23
+ if (maxDepth <= depth)
24
+ return a === b;
25
+ if (a.value === b.value)
26
+ return true;
27
+ if (a && b && a instanceof generics_1.CustomObject && b instanceof generics_1.CustomObject) {
28
+ if (a.constructor !== b.constructor)
29
+ return false;
30
+ if (a instanceof list_1.default && b instanceof list_1.default) {
31
+ var length = a.value.length;
32
+ if (length !== b.value.length)
33
+ return false;
34
+ for (var i = length; i-- !== 0;)
35
+ if (!equalInner(a.value[i], b.value[i], maxDepth, depth + 1))
36
+ return false;
37
+ return true;
38
+ }
39
+ if (a instanceof map_1.default && b instanceof map_1.default) {
40
+ if (a.value.size !== b.value.size)
41
+ return false;
42
+ try {
43
+ for (var _b = __values(a.value.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {
44
+ var i = _c.value;
45
+ if (!b.has(i) || !equalInner(a.get(i), b.get(i), maxDepth, depth + 1))
46
+ return false;
47
+ }
48
+ }
49
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
50
+ finally {
51
+ try {
52
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
53
+ }
54
+ finally { if (e_1) throw e_1.error; }
55
+ }
56
+ return true;
57
+ }
58
+ return false;
59
+ }
60
+ // true if both NaN, false otherwise
61
+ return a.value === NaN && b.value === NaN;
62
+ }
63
+ function equal(a, b, maxDepth) {
64
+ if (maxDepth === void 0) { maxDepth = 2; }
65
+ return equalInner(a, b, maxDepth);
66
+ }
67
+ exports.default = equal;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "greybel-interpreter",
3
- "version": "1.3.2",
3
+ "version": "1.3.4",
4
4
  "description": "Interpreter",
5
5
  "main": "dist/index",
6
6
  "typings": "dist/index",
@@ -48,8 +48,8 @@
48
48
  "typescript": "^4.5.4"
49
49
  },
50
50
  "dependencies": {
51
- "greybel-core": "^0.4.8",
52
- "greyscript-core": "^0.4.3"
51
+ "greybel-core": "^0.4.9",
52
+ "greyscript-core": "^0.4.4"
53
53
  },
54
54
  "keywords": [
55
55
  "greyscript",