@goplasmatic/datalogic 4.0.7 → 4.0.8

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/README.md CHANGED
@@ -19,15 +19,15 @@ import init, { evaluate, CompiledRule } from '@goplasmatic/datalogic';
19
19
  await init();
20
20
 
21
21
  // Simple evaluation
22
- const result = evaluate('{"==": [1, 1]}', '{}');
22
+ const result = evaluate('{"==": [1, 1]}', '{}', false);
23
23
  console.log(result); // "true"
24
24
 
25
25
  // With data
26
- const result2 = evaluate('{"var": "user.age"}', '{"user": {"age": 25}}');
26
+ const result2 = evaluate('{"var": "user.age"}', '{"user": {"age": 25}}', false);
27
27
  console.log(result2); // "25"
28
28
 
29
29
  // Compiled rule for repeated evaluation (better performance)
30
- const rule = new CompiledRule('{"+": [{"var": "a"}, {"var": "b"}]}');
30
+ const rule = new CompiledRule('{"+": [{"var": "a"}, {"var": "b"}]}', false);
31
31
  console.log(rule.evaluate('{"a": 1, "b": 2}')); // "3"
32
32
  console.log(rule.evaluate('{"a": 10, "b": 20}')); // "30"
33
33
  ```
@@ -45,7 +45,7 @@ async function run() {
45
45
  await init();
46
46
 
47
47
  // Now you can use evaluate and CompiledRule
48
- const result = evaluate('{"and": [true, {"var": "active"}]}', '{"active": true}');
48
+ const result = evaluate('{"and": [true, {"var": "active"}]}', '{"active": true}', false);
49
49
  console.log(result); // "true"
50
50
  }
51
51
 
@@ -60,11 +60,11 @@ run();
60
60
  import { evaluate, CompiledRule } from '@goplasmatic/datalogic';
61
61
 
62
62
  // No init() needed for Node.js
63
- const result = evaluate('{"==": [1, 1]}', '{}');
63
+ const result = evaluate('{"==": [1, 1]}', '{}', false);
64
64
  console.log(result); // "true"
65
65
 
66
66
  // Compiled rule
67
- const rule = new CompiledRule('{"if": [{"var": "premium"}, "VIP", "Standard"]}');
67
+ const rule = new CompiledRule('{"if": [{"var": "premium"}, "VIP", "Standard"]}', false);
68
68
  console.log(rule.evaluate('{"premium": true}')); // "\"VIP\""
69
69
  console.log(rule.evaluate('{"premium": false}')); // "\"Standard\""
70
70
  ```
@@ -77,7 +77,7 @@ import init, { evaluate, CompiledRule } from '@goplasmatic/datalogic';
77
77
  // For bundlers, you may need to initialize
78
78
  await init();
79
79
 
80
- const result = evaluate('{">=": [{"var": "score"}, 80]}', '{"score": 85}');
80
+ const result = evaluate('{">=": [{"var": "score"}, 80]}', '{"score": 85}', false);
81
81
  console.log(result); // "true"
82
82
  ```
83
83
 
@@ -98,31 +98,37 @@ import { evaluate } from '@goplasmatic/datalogic/nodejs';
98
98
 
99
99
  ## API Reference
100
100
 
101
- ### `evaluate(logic: string, data: string): string`
101
+ ### `evaluate(logic: string, data: string, preserve_structure: boolean): string`
102
102
 
103
103
  Evaluate a JSONLogic expression against data.
104
104
 
105
105
  **Parameters:**
106
106
  - `logic` - JSON string containing the JSONLogic expression
107
107
  - `data` - JSON string containing the data to evaluate against
108
+ - `preserve_structure` - If `true`, preserves object structure for JSON templates with embedded JSONLogic (templating mode)
108
109
 
109
110
  **Returns:** JSON string result
110
111
 
111
112
  **Throws:** Error string on invalid JSON or evaluation error
112
113
 
113
114
  ```javascript
114
- evaluate('{"==": [{"var": "x"}, 5]}', '{"x": 5}'); // "true"
115
- evaluate('{"+": [1, 2, 3]}', '{}'); // "6"
116
- evaluate('{"map": [[1,2,3], {"+": [{"var": ""}, 1]}]}', '{}'); // "[2,3,4]"
115
+ evaluate('{"==": [{"var": "x"}, 5]}', '{"x": 5}', false); // "true"
116
+ evaluate('{"+": [1, 2, 3]}', '{}', false); // "6"
117
+ evaluate('{"map": [[1,2,3], {"+": [{"var": ""}, 1]}]}', '{}', false); // "[2,3,4]"
118
+
119
+ // With preserve_structure for templating
120
+ evaluate('{"name": {"var": "user"}, "active": true}', '{"user": "Alice"}', true);
121
+ // '{"name":"Alice","active":true}'
117
122
  ```
118
123
 
119
- ### `evaluate_with_trace(logic: string, data: string): string`
124
+ ### `evaluate_with_trace(logic: string, data: string, preserve_structure: boolean): string`
120
125
 
121
126
  Evaluate with execution trace for debugging. Returns detailed step-by-step information about how the expression was evaluated.
122
127
 
123
128
  **Parameters:**
124
129
  - `logic` - JSON string containing the JSONLogic expression
125
130
  - `data` - JSON string containing the data to evaluate against
131
+ - `preserve_structure` - If `true`, preserves object structure for JSON templates with embedded JSONLogic (templating mode)
126
132
 
127
133
  **Returns:** JSON string containing `TracedResult` with:
128
134
  - `result` - The evaluation result
@@ -130,7 +136,7 @@ Evaluate with execution trace for debugging. Returns detailed step-by-step infor
130
136
  - `steps` - Array of execution steps with context and intermediate results
131
137
 
132
138
  ```javascript
133
- const trace = evaluate_with_trace('{"and": [true, {"var": "x"}]}', '{"x": true}');
139
+ const trace = evaluate_with_trace('{"and": [true, {"var": "x"}]}', '{"x": true}', false);
134
140
  console.log(JSON.parse(trace));
135
141
  // {
136
142
  // "result": true,
@@ -143,12 +149,16 @@ console.log(JSON.parse(trace));
143
149
 
144
150
  A compiled JSONLogic rule for repeated evaluation. Pre-compiling rules provides better performance when evaluating the same logic against different data.
145
151
 
146
- #### `new CompiledRule(logic: string)`
152
+ #### `new CompiledRule(logic: string, preserve_structure: boolean)`
147
153
 
148
154
  Create a new compiled rule.
149
155
 
156
+ **Parameters:**
157
+ - `logic` - JSON string containing the JSONLogic expression
158
+ - `preserve_structure` - If `true`, preserves object structure for JSON templates with embedded JSONLogic (templating mode)
159
+
150
160
  ```javascript
151
- const rule = new CompiledRule('{">=": [{"var": "age"}, 18]}');
161
+ const rule = new CompiledRule('{">=": [{"var": "age"}, 18]}', false);
152
162
  ```
153
163
 
154
164
  #### `evaluate(data: string): string`
@@ -206,7 +216,7 @@ rustup target add wasm32-unknown-unknown
206
216
  ### Build
207
217
 
208
218
  ```bash
209
- cd datalogic-wasm
219
+ cd wasm
210
220
  ./build.sh
211
221
  ```
212
222
 
@@ -226,8 +236,13 @@ wasm-pack test --headless --firefox
226
236
 
227
237
  Apache-2.0
228
238
 
239
+ ## Documentation
240
+
241
+ For complete documentation including advanced usage, framework integration, and API details, see the [full documentation](https://goplasmatic.github.io/datalogic-rs/javascript/installation.html).
242
+
229
243
  ## Links
230
244
 
231
245
  - [GitHub Repository](https://github.com/GoPlasmatic/datalogic-rs)
246
+ - [Full Documentation](https://goplasmatic.github.io/datalogic-rs/)
247
+ - [Online Playground](https://goplasmatic.github.io/datalogic-rs/playground/)
232
248
  - [JSONLogic Specification](https://jsonlogic.com/)
233
- - [Documentation](https://goplasmatic.github.io/datalogic-rs/)
@@ -3,6 +3,21 @@ export function __wbg_set_wasm(val) {
3
3
  wasm = val;
4
4
  }
5
5
 
6
+ function addHeapObject(obj) {
7
+ if (heap_next === heap.length) heap.push(heap.length + 1);
8
+ const idx = heap_next;
9
+ heap_next = heap[idx];
10
+
11
+ heap[idx] = obj;
12
+ return idx;
13
+ }
14
+
15
+ function dropObject(idx) {
16
+ if (idx < 132) return;
17
+ heap[idx] = heap_next;
18
+ heap_next = idx;
19
+ }
20
+
6
21
  let cachedDataViewMemory0 = null;
7
22
  function getDataViewMemory0() {
8
23
  if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
@@ -24,6 +39,13 @@ function getUint8ArrayMemory0() {
24
39
  return cachedUint8ArrayMemory0;
25
40
  }
26
41
 
42
+ function getObject(idx) { return heap[idx]; }
43
+
44
+ let heap = new Array(128).fill(undefined);
45
+ heap.push(undefined, null, true, false);
46
+
47
+ let heap_next = heap.length;
48
+
27
49
  function passStringToWasm0(arg, malloc, realloc) {
28
50
  if (realloc === undefined) {
29
51
  const buf = cachedTextEncoder.encode(arg);
@@ -61,10 +83,10 @@ function passStringToWasm0(arg, malloc, realloc) {
61
83
  return ptr;
62
84
  }
63
85
 
64
- function takeFromExternrefTable0(idx) {
65
- const value = wasm.__wbindgen_externrefs.get(idx);
66
- wasm.__externref_table_dealloc(idx);
67
- return value;
86
+ function takeObject(idx) {
87
+ const ret = getObject(idx);
88
+ dropObject(idx);
89
+ return ret;
68
90
  }
69
91
 
70
92
  let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
@@ -127,15 +149,23 @@ export class CompiledRule {
127
149
  * @param {boolean} preserve_structure
128
150
  */
129
151
  constructor(logic, preserve_structure) {
130
- const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
131
- const len0 = WASM_VECTOR_LEN;
132
- const ret = wasm.compiledrule_new(ptr0, len0, preserve_structure);
133
- if (ret[2]) {
134
- throw takeFromExternrefTable0(ret[1]);
152
+ try {
153
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
154
+ const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
155
+ const len0 = WASM_VECTOR_LEN;
156
+ wasm.compiledrule_new(retptr, ptr0, len0, preserve_structure);
157
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
158
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
159
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
160
+ if (r2) {
161
+ throw takeObject(r1);
162
+ }
163
+ this.__wbg_ptr = r0 >>> 0;
164
+ CompiledRuleFinalization.register(this, this.__wbg_ptr, this);
165
+ return this;
166
+ } finally {
167
+ wasm.__wbindgen_add_to_stack_pointer(16);
135
168
  }
136
- this.__wbg_ptr = ret[0] >>> 0;
137
- CompiledRuleFinalization.register(this, this.__wbg_ptr, this);
138
- return this;
139
169
  }
140
170
  /**
141
171
  * Evaluate the compiled rule against data.
@@ -152,20 +182,26 @@ export class CompiledRule {
152
182
  let deferred3_0;
153
183
  let deferred3_1;
154
184
  try {
155
- const ptr0 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
185
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
186
+ const ptr0 = passStringToWasm0(data, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
156
187
  const len0 = WASM_VECTOR_LEN;
157
- const ret = wasm.compiledrule_evaluate(this.__wbg_ptr, ptr0, len0);
158
- var ptr2 = ret[0];
159
- var len2 = ret[1];
160
- if (ret[3]) {
188
+ wasm.compiledrule_evaluate(retptr, this.__wbg_ptr, ptr0, len0);
189
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
190
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
191
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
192
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
193
+ var ptr2 = r0;
194
+ var len2 = r1;
195
+ if (r3) {
161
196
  ptr2 = 0; len2 = 0;
162
- throw takeFromExternrefTable0(ret[2]);
197
+ throw takeObject(r2);
163
198
  }
164
199
  deferred3_0 = ptr2;
165
200
  deferred3_1 = len2;
166
201
  return getStringFromWasm0(ptr2, len2);
167
202
  } finally {
168
- wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
203
+ wasm.__wbindgen_add_to_stack_pointer(16);
204
+ wasm.__wbindgen_export(deferred3_0, deferred3_1, 1);
169
205
  }
170
206
  }
171
207
  }
@@ -190,22 +226,28 @@ export function evaluate(logic, data, preserve_structure) {
190
226
  let deferred4_0;
191
227
  let deferred4_1;
192
228
  try {
193
- const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
229
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
230
+ const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
194
231
  const len0 = WASM_VECTOR_LEN;
195
- const ptr1 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
232
+ const ptr1 = passStringToWasm0(data, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
196
233
  const len1 = WASM_VECTOR_LEN;
197
- const ret = wasm.evaluate(ptr0, len0, ptr1, len1, preserve_structure);
198
- var ptr3 = ret[0];
199
- var len3 = ret[1];
200
- if (ret[3]) {
234
+ wasm.evaluate(retptr, ptr0, len0, ptr1, len1, preserve_structure);
235
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
236
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
237
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
238
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
239
+ var ptr3 = r0;
240
+ var len3 = r1;
241
+ if (r3) {
201
242
  ptr3 = 0; len3 = 0;
202
- throw takeFromExternrefTable0(ret[2]);
243
+ throw takeObject(r2);
203
244
  }
204
245
  deferred4_0 = ptr3;
205
246
  deferred4_1 = len3;
206
247
  return getStringFromWasm0(ptr3, len3);
207
248
  } finally {
208
- wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
249
+ wasm.__wbindgen_add_to_stack_pointer(16);
250
+ wasm.__wbindgen_export(deferred4_0, deferred4_1, 1);
209
251
  }
210
252
  }
211
253
 
@@ -247,22 +289,28 @@ export function evaluate_with_trace(logic, data, preserve_structure) {
247
289
  let deferred4_0;
248
290
  let deferred4_1;
249
291
  try {
250
- const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
292
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
293
+ const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
251
294
  const len0 = WASM_VECTOR_LEN;
252
- const ptr1 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
295
+ const ptr1 = passStringToWasm0(data, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
253
296
  const len1 = WASM_VECTOR_LEN;
254
- const ret = wasm.evaluate_with_trace(ptr0, len0, ptr1, len1, preserve_structure);
255
- var ptr3 = ret[0];
256
- var len3 = ret[1];
257
- if (ret[3]) {
297
+ wasm.evaluate_with_trace(retptr, ptr0, len0, ptr1, len1, preserve_structure);
298
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
299
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
300
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
301
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
302
+ var ptr3 = r0;
303
+ var len3 = r1;
304
+ if (r3) {
258
305
  ptr3 = 0; len3 = 0;
259
- throw takeFromExternrefTable0(ret[2]);
306
+ throw takeObject(r2);
260
307
  }
261
308
  deferred4_0 = ptr3;
262
309
  deferred4_1 = len3;
263
310
  return getStringFromWasm0(ptr3, len3);
264
311
  } finally {
265
- wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
312
+ wasm.__wbindgen_add_to_stack_pointer(16);
313
+ wasm.__wbindgen_export(deferred4_0, deferred4_1, 1);
266
314
  }
267
315
  }
268
316
 
@@ -282,18 +330,28 @@ export function __wbg_error_7534b8e9a36f1ab4(arg0, arg1) {
282
330
  deferred0_1 = arg1;
283
331
  console.error(getStringFromWasm0(arg0, arg1));
284
332
  } finally {
285
- wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
333
+ wasm.__wbindgen_export(deferred0_0, deferred0_1, 1);
286
334
  }
287
335
  };
288
336
 
337
+ export function __wbg_getTime_ad1e9878a735af08(arg0) {
338
+ const ret = getObject(arg0).getTime();
339
+ return ret;
340
+ };
341
+
342
+ export function __wbg_new_0_23cedd11d9b40c9d() {
343
+ const ret = new Date();
344
+ return addHeapObject(ret);
345
+ };
346
+
289
347
  export function __wbg_new_8a6f238a6ece86ea() {
290
348
  const ret = new Error();
291
- return ret;
349
+ return addHeapObject(ret);
292
350
  };
293
351
 
294
352
  export function __wbg_stack_0ed75d68575b0f3c(arg0, arg1) {
295
- const ret = arg1.stack;
296
- const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
353
+ const ret = getObject(arg1).stack;
354
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
297
355
  const len1 = WASM_VECTOR_LEN;
298
356
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
299
357
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
@@ -302,15 +360,9 @@ export function __wbg_stack_0ed75d68575b0f3c(arg0, arg1) {
302
360
  export function __wbindgen_cast_2241b6af4c4b2941(arg0, arg1) {
303
361
  // Cast intrinsic for `Ref(String) -> Externref`.
304
362
  const ret = getStringFromWasm0(arg0, arg1);
305
- return ret;
363
+ return addHeapObject(ret);
306
364
  };
307
365
 
308
- export function __wbindgen_init_externref_table() {
309
- const table = wasm.__wbindgen_externrefs;
310
- const offset = table.grow(4);
311
- table.set(0, undefined);
312
- table.set(offset + 0, undefined);
313
- table.set(offset + 1, null);
314
- table.set(offset + 2, true);
315
- table.set(offset + 3, false);
366
+ export function __wbindgen_object_drop_ref(arg0) {
367
+ takeObject(arg0);
316
368
  };
Binary file
@@ -2,14 +2,13 @@
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const __wbg_compiledrule_free: (a: number, b: number) => void;
5
- export const compiledrule_evaluate: (a: number, b: number, c: number) => [number, number, number, number];
6
- export const compiledrule_new: (a: number, b: number, c: number) => [number, number, number];
7
- export const evaluate: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
8
- export const evaluate_with_trace: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
5
+ export const compiledrule_evaluate: (a: number, b: number, c: number, d: number) => void;
6
+ export const compiledrule_new: (a: number, b: number, c: number, d: number) => void;
7
+ export const evaluate: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
8
+ export const evaluate_with_trace: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
9
9
  export const init: () => void;
10
- export const __wbindgen_free: (a: number, b: number, c: number) => void;
11
- export const __wbindgen_malloc: (a: number, b: number) => number;
12
- export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
13
- export const __wbindgen_externrefs: WebAssembly.Table;
14
- export const __externref_table_dealloc: (a: number) => void;
10
+ export const __wbindgen_export: (a: number, b: number, c: number) => void;
11
+ export const __wbindgen_export2: (a: number, b: number) => number;
12
+ export const __wbindgen_export3: (a: number, b: number, c: number, d: number) => number;
13
+ export const __wbindgen_add_to_stack_pointer: (a: number) => number;
15
14
  export const __wbindgen_start: () => void;
@@ -2,6 +2,21 @@
2
2
  let imports = {};
3
3
  imports['__wbindgen_placeholder__'] = module.exports;
4
4
 
5
+ function addHeapObject(obj) {
6
+ if (heap_next === heap.length) heap.push(heap.length + 1);
7
+ const idx = heap_next;
8
+ heap_next = heap[idx];
9
+
10
+ heap[idx] = obj;
11
+ return idx;
12
+ }
13
+
14
+ function dropObject(idx) {
15
+ if (idx < 132) return;
16
+ heap[idx] = heap_next;
17
+ heap_next = idx;
18
+ }
19
+
5
20
  let cachedDataViewMemory0 = null;
6
21
  function getDataViewMemory0() {
7
22
  if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
@@ -23,6 +38,13 @@ function getUint8ArrayMemory0() {
23
38
  return cachedUint8ArrayMemory0;
24
39
  }
25
40
 
41
+ function getObject(idx) { return heap[idx]; }
42
+
43
+ let heap = new Array(128).fill(undefined);
44
+ heap.push(undefined, null, true, false);
45
+
46
+ let heap_next = heap.length;
47
+
26
48
  function passStringToWasm0(arg, malloc, realloc) {
27
49
  if (realloc === undefined) {
28
50
  const buf = cachedTextEncoder.encode(arg);
@@ -60,10 +82,10 @@ function passStringToWasm0(arg, malloc, realloc) {
60
82
  return ptr;
61
83
  }
62
84
 
63
- function takeFromExternrefTable0(idx) {
64
- const value = wasm.__wbindgen_externrefs.get(idx);
65
- wasm.__externref_table_dealloc(idx);
66
- return value;
85
+ function takeObject(idx) {
86
+ const ret = getObject(idx);
87
+ dropObject(idx);
88
+ return ret;
67
89
  }
68
90
 
69
91
  let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
@@ -118,15 +140,23 @@ class CompiledRule {
118
140
  * @param {boolean} preserve_structure
119
141
  */
120
142
  constructor(logic, preserve_structure) {
121
- const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
122
- const len0 = WASM_VECTOR_LEN;
123
- const ret = wasm.compiledrule_new(ptr0, len0, preserve_structure);
124
- if (ret[2]) {
125
- throw takeFromExternrefTable0(ret[1]);
143
+ try {
144
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
145
+ const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
146
+ const len0 = WASM_VECTOR_LEN;
147
+ wasm.compiledrule_new(retptr, ptr0, len0, preserve_structure);
148
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
149
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
150
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
151
+ if (r2) {
152
+ throw takeObject(r1);
153
+ }
154
+ this.__wbg_ptr = r0 >>> 0;
155
+ CompiledRuleFinalization.register(this, this.__wbg_ptr, this);
156
+ return this;
157
+ } finally {
158
+ wasm.__wbindgen_add_to_stack_pointer(16);
126
159
  }
127
- this.__wbg_ptr = ret[0] >>> 0;
128
- CompiledRuleFinalization.register(this, this.__wbg_ptr, this);
129
- return this;
130
160
  }
131
161
  /**
132
162
  * Evaluate the compiled rule against data.
@@ -143,20 +173,26 @@ class CompiledRule {
143
173
  let deferred3_0;
144
174
  let deferred3_1;
145
175
  try {
146
- const ptr0 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
176
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
177
+ const ptr0 = passStringToWasm0(data, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
147
178
  const len0 = WASM_VECTOR_LEN;
148
- const ret = wasm.compiledrule_evaluate(this.__wbg_ptr, ptr0, len0);
149
- var ptr2 = ret[0];
150
- var len2 = ret[1];
151
- if (ret[3]) {
179
+ wasm.compiledrule_evaluate(retptr, this.__wbg_ptr, ptr0, len0);
180
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
181
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
182
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
183
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
184
+ var ptr2 = r0;
185
+ var len2 = r1;
186
+ if (r3) {
152
187
  ptr2 = 0; len2 = 0;
153
- throw takeFromExternrefTable0(ret[2]);
188
+ throw takeObject(r2);
154
189
  }
155
190
  deferred3_0 = ptr2;
156
191
  deferred3_1 = len2;
157
192
  return getStringFromWasm0(ptr2, len2);
158
193
  } finally {
159
- wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
194
+ wasm.__wbindgen_add_to_stack_pointer(16);
195
+ wasm.__wbindgen_export(deferred3_0, deferred3_1, 1);
160
196
  }
161
197
  }
162
198
  }
@@ -182,22 +218,28 @@ function evaluate(logic, data, preserve_structure) {
182
218
  let deferred4_0;
183
219
  let deferred4_1;
184
220
  try {
185
- const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
221
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
222
+ const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
186
223
  const len0 = WASM_VECTOR_LEN;
187
- const ptr1 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
224
+ const ptr1 = passStringToWasm0(data, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
188
225
  const len1 = WASM_VECTOR_LEN;
189
- const ret = wasm.evaluate(ptr0, len0, ptr1, len1, preserve_structure);
190
- var ptr3 = ret[0];
191
- var len3 = ret[1];
192
- if (ret[3]) {
226
+ wasm.evaluate(retptr, ptr0, len0, ptr1, len1, preserve_structure);
227
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
228
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
229
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
230
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
231
+ var ptr3 = r0;
232
+ var len3 = r1;
233
+ if (r3) {
193
234
  ptr3 = 0; len3 = 0;
194
- throw takeFromExternrefTable0(ret[2]);
235
+ throw takeObject(r2);
195
236
  }
196
237
  deferred4_0 = ptr3;
197
238
  deferred4_1 = len3;
198
239
  return getStringFromWasm0(ptr3, len3);
199
240
  } finally {
200
- wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
241
+ wasm.__wbindgen_add_to_stack_pointer(16);
242
+ wasm.__wbindgen_export(deferred4_0, deferred4_1, 1);
201
243
  }
202
244
  }
203
245
  exports.evaluate = evaluate;
@@ -240,22 +282,28 @@ function evaluate_with_trace(logic, data, preserve_structure) {
240
282
  let deferred4_0;
241
283
  let deferred4_1;
242
284
  try {
243
- const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
285
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
286
+ const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
244
287
  const len0 = WASM_VECTOR_LEN;
245
- const ptr1 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
288
+ const ptr1 = passStringToWasm0(data, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
246
289
  const len1 = WASM_VECTOR_LEN;
247
- const ret = wasm.evaluate_with_trace(ptr0, len0, ptr1, len1, preserve_structure);
248
- var ptr3 = ret[0];
249
- var len3 = ret[1];
250
- if (ret[3]) {
290
+ wasm.evaluate_with_trace(retptr, ptr0, len0, ptr1, len1, preserve_structure);
291
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
292
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
293
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
294
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
295
+ var ptr3 = r0;
296
+ var len3 = r1;
297
+ if (r3) {
251
298
  ptr3 = 0; len3 = 0;
252
- throw takeFromExternrefTable0(ret[2]);
299
+ throw takeObject(r2);
253
300
  }
254
301
  deferred4_0 = ptr3;
255
302
  deferred4_1 = len3;
256
303
  return getStringFromWasm0(ptr3, len3);
257
304
  } finally {
258
- wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
305
+ wasm.__wbindgen_add_to_stack_pointer(16);
306
+ wasm.__wbindgen_export(deferred4_0, deferred4_1, 1);
259
307
  }
260
308
  }
261
309
  exports.evaluate_with_trace = evaluate_with_trace;
@@ -277,18 +325,28 @@ exports.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) {
277
325
  deferred0_1 = arg1;
278
326
  console.error(getStringFromWasm0(arg0, arg1));
279
327
  } finally {
280
- wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
328
+ wasm.__wbindgen_export(deferred0_0, deferred0_1, 1);
281
329
  }
282
330
  };
283
331
 
332
+ exports.__wbg_getTime_ad1e9878a735af08 = function(arg0) {
333
+ const ret = getObject(arg0).getTime();
334
+ return ret;
335
+ };
336
+
337
+ exports.__wbg_new_0_23cedd11d9b40c9d = function() {
338
+ const ret = new Date();
339
+ return addHeapObject(ret);
340
+ };
341
+
284
342
  exports.__wbg_new_8a6f238a6ece86ea = function() {
285
343
  const ret = new Error();
286
- return ret;
344
+ return addHeapObject(ret);
287
345
  };
288
346
 
289
347
  exports.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) {
290
- const ret = arg1.stack;
291
- const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
348
+ const ret = getObject(arg1).stack;
349
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
292
350
  const len1 = WASM_VECTOR_LEN;
293
351
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
294
352
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
@@ -297,17 +355,11 @@ exports.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) {
297
355
  exports.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {
298
356
  // Cast intrinsic for `Ref(String) -> Externref`.
299
357
  const ret = getStringFromWasm0(arg0, arg1);
300
- return ret;
358
+ return addHeapObject(ret);
301
359
  };
302
360
 
303
- exports.__wbindgen_init_externref_table = function() {
304
- const table = wasm.__wbindgen_externrefs;
305
- const offset = table.grow(4);
306
- table.set(0, undefined);
307
- table.set(offset + 0, undefined);
308
- table.set(offset + 1, null);
309
- table.set(offset + 2, true);
310
- table.set(offset + 3, false);
361
+ exports.__wbindgen_object_drop_ref = function(arg0) {
362
+ takeObject(arg0);
311
363
  };
312
364
 
313
365
  const wasmPath = `${__dirname}/datalogic_wasm_bg.wasm`;
Binary file
@@ -2,14 +2,13 @@
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const __wbg_compiledrule_free: (a: number, b: number) => void;
5
- export const compiledrule_evaluate: (a: number, b: number, c: number) => [number, number, number, number];
6
- export const compiledrule_new: (a: number, b: number, c: number) => [number, number, number];
7
- export const evaluate: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
8
- export const evaluate_with_trace: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
5
+ export const compiledrule_evaluate: (a: number, b: number, c: number, d: number) => void;
6
+ export const compiledrule_new: (a: number, b: number, c: number, d: number) => void;
7
+ export const evaluate: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
8
+ export const evaluate_with_trace: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
9
9
  export const init: () => void;
10
- export const __wbindgen_free: (a: number, b: number, c: number) => void;
11
- export const __wbindgen_malloc: (a: number, b: number) => number;
12
- export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
13
- export const __wbindgen_externrefs: WebAssembly.Table;
14
- export const __externref_table_dealloc: (a: number) => void;
10
+ export const __wbindgen_export: (a: number, b: number, c: number) => void;
11
+ export const __wbindgen_export2: (a: number, b: number) => number;
12
+ export const __wbindgen_export3: (a: number, b: number, c: number, d: number) => number;
13
+ export const __wbindgen_add_to_stack_pointer: (a: number) => number;
15
14
  export const __wbindgen_start: () => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goplasmatic/datalogic",
3
- "version": "4.0.7",
3
+ "version": "4.0.8",
4
4
  "description": "High-performance JSONLogic engine for JavaScript/TypeScript - WebAssembly powered",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -76,16 +76,15 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
76
76
  export interface InitOutput {
77
77
  readonly memory: WebAssembly.Memory;
78
78
  readonly __wbg_compiledrule_free: (a: number, b: number) => void;
79
- readonly compiledrule_evaluate: (a: number, b: number, c: number) => [number, number, number, number];
80
- readonly compiledrule_new: (a: number, b: number, c: number) => [number, number, number];
81
- readonly evaluate: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
82
- readonly evaluate_with_trace: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
79
+ readonly compiledrule_evaluate: (a: number, b: number, c: number, d: number) => void;
80
+ readonly compiledrule_new: (a: number, b: number, c: number, d: number) => void;
81
+ readonly evaluate: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
82
+ readonly evaluate_with_trace: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
83
83
  readonly init: () => void;
84
- readonly __wbindgen_free: (a: number, b: number, c: number) => void;
85
- readonly __wbindgen_malloc: (a: number, b: number) => number;
86
- readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
87
- readonly __wbindgen_externrefs: WebAssembly.Table;
88
- readonly __externref_table_dealloc: (a: number) => void;
84
+ readonly __wbindgen_export: (a: number, b: number, c: number) => void;
85
+ readonly __wbindgen_export2: (a: number, b: number) => number;
86
+ readonly __wbindgen_export3: (a: number, b: number, c: number, d: number) => number;
87
+ readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
89
88
  readonly __wbindgen_start: () => void;
90
89
  }
91
90
 
@@ -1,5 +1,20 @@
1
1
  let wasm;
2
2
 
3
+ function addHeapObject(obj) {
4
+ if (heap_next === heap.length) heap.push(heap.length + 1);
5
+ const idx = heap_next;
6
+ heap_next = heap[idx];
7
+
8
+ heap[idx] = obj;
9
+ return idx;
10
+ }
11
+
12
+ function dropObject(idx) {
13
+ if (idx < 132) return;
14
+ heap[idx] = heap_next;
15
+ heap_next = idx;
16
+ }
17
+
3
18
  let cachedDataViewMemory0 = null;
4
19
  function getDataViewMemory0() {
5
20
  if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
@@ -21,6 +36,13 @@ function getUint8ArrayMemory0() {
21
36
  return cachedUint8ArrayMemory0;
22
37
  }
23
38
 
39
+ function getObject(idx) { return heap[idx]; }
40
+
41
+ let heap = new Array(128).fill(undefined);
42
+ heap.push(undefined, null, true, false);
43
+
44
+ let heap_next = heap.length;
45
+
24
46
  function passStringToWasm0(arg, malloc, realloc) {
25
47
  if (realloc === undefined) {
26
48
  const buf = cachedTextEncoder.encode(arg);
@@ -58,10 +80,10 @@ function passStringToWasm0(arg, malloc, realloc) {
58
80
  return ptr;
59
81
  }
60
82
 
61
- function takeFromExternrefTable0(idx) {
62
- const value = wasm.__wbindgen_externrefs.get(idx);
63
- wasm.__externref_table_dealloc(idx);
64
- return value;
83
+ function takeObject(idx) {
84
+ const ret = getObject(idx);
85
+ dropObject(idx);
86
+ return ret;
65
87
  }
66
88
 
67
89
  let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
@@ -124,15 +146,23 @@ export class CompiledRule {
124
146
  * @param {boolean} preserve_structure
125
147
  */
126
148
  constructor(logic, preserve_structure) {
127
- const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
128
- const len0 = WASM_VECTOR_LEN;
129
- const ret = wasm.compiledrule_new(ptr0, len0, preserve_structure);
130
- if (ret[2]) {
131
- throw takeFromExternrefTable0(ret[1]);
149
+ try {
150
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
151
+ const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
152
+ const len0 = WASM_VECTOR_LEN;
153
+ wasm.compiledrule_new(retptr, ptr0, len0, preserve_structure);
154
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
155
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
156
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
157
+ if (r2) {
158
+ throw takeObject(r1);
159
+ }
160
+ this.__wbg_ptr = r0 >>> 0;
161
+ CompiledRuleFinalization.register(this, this.__wbg_ptr, this);
162
+ return this;
163
+ } finally {
164
+ wasm.__wbindgen_add_to_stack_pointer(16);
132
165
  }
133
- this.__wbg_ptr = ret[0] >>> 0;
134
- CompiledRuleFinalization.register(this, this.__wbg_ptr, this);
135
- return this;
136
166
  }
137
167
  /**
138
168
  * Evaluate the compiled rule against data.
@@ -149,20 +179,26 @@ export class CompiledRule {
149
179
  let deferred3_0;
150
180
  let deferred3_1;
151
181
  try {
152
- const ptr0 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
182
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
183
+ const ptr0 = passStringToWasm0(data, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
153
184
  const len0 = WASM_VECTOR_LEN;
154
- const ret = wasm.compiledrule_evaluate(this.__wbg_ptr, ptr0, len0);
155
- var ptr2 = ret[0];
156
- var len2 = ret[1];
157
- if (ret[3]) {
185
+ wasm.compiledrule_evaluate(retptr, this.__wbg_ptr, ptr0, len0);
186
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
187
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
188
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
189
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
190
+ var ptr2 = r0;
191
+ var len2 = r1;
192
+ if (r3) {
158
193
  ptr2 = 0; len2 = 0;
159
- throw takeFromExternrefTable0(ret[2]);
194
+ throw takeObject(r2);
160
195
  }
161
196
  deferred3_0 = ptr2;
162
197
  deferred3_1 = len2;
163
198
  return getStringFromWasm0(ptr2, len2);
164
199
  } finally {
165
- wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
200
+ wasm.__wbindgen_add_to_stack_pointer(16);
201
+ wasm.__wbindgen_export(deferred3_0, deferred3_1, 1);
166
202
  }
167
203
  }
168
204
  }
@@ -187,22 +223,28 @@ export function evaluate(logic, data, preserve_structure) {
187
223
  let deferred4_0;
188
224
  let deferred4_1;
189
225
  try {
190
- const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
226
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
227
+ const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
191
228
  const len0 = WASM_VECTOR_LEN;
192
- const ptr1 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
229
+ const ptr1 = passStringToWasm0(data, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
193
230
  const len1 = WASM_VECTOR_LEN;
194
- const ret = wasm.evaluate(ptr0, len0, ptr1, len1, preserve_structure);
195
- var ptr3 = ret[0];
196
- var len3 = ret[1];
197
- if (ret[3]) {
231
+ wasm.evaluate(retptr, ptr0, len0, ptr1, len1, preserve_structure);
232
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
233
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
234
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
235
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
236
+ var ptr3 = r0;
237
+ var len3 = r1;
238
+ if (r3) {
198
239
  ptr3 = 0; len3 = 0;
199
- throw takeFromExternrefTable0(ret[2]);
240
+ throw takeObject(r2);
200
241
  }
201
242
  deferred4_0 = ptr3;
202
243
  deferred4_1 = len3;
203
244
  return getStringFromWasm0(ptr3, len3);
204
245
  } finally {
205
- wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
246
+ wasm.__wbindgen_add_to_stack_pointer(16);
247
+ wasm.__wbindgen_export(deferred4_0, deferred4_1, 1);
206
248
  }
207
249
  }
208
250
 
@@ -244,22 +286,28 @@ export function evaluate_with_trace(logic, data, preserve_structure) {
244
286
  let deferred4_0;
245
287
  let deferred4_1;
246
288
  try {
247
- const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
289
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
290
+ const ptr0 = passStringToWasm0(logic, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
248
291
  const len0 = WASM_VECTOR_LEN;
249
- const ptr1 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
292
+ const ptr1 = passStringToWasm0(data, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
250
293
  const len1 = WASM_VECTOR_LEN;
251
- const ret = wasm.evaluate_with_trace(ptr0, len0, ptr1, len1, preserve_structure);
252
- var ptr3 = ret[0];
253
- var len3 = ret[1];
254
- if (ret[3]) {
294
+ wasm.evaluate_with_trace(retptr, ptr0, len0, ptr1, len1, preserve_structure);
295
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
296
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
297
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
298
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
299
+ var ptr3 = r0;
300
+ var len3 = r1;
301
+ if (r3) {
255
302
  ptr3 = 0; len3 = 0;
256
- throw takeFromExternrefTable0(ret[2]);
303
+ throw takeObject(r2);
257
304
  }
258
305
  deferred4_0 = ptr3;
259
306
  deferred4_1 = len3;
260
307
  return getStringFromWasm0(ptr3, len3);
261
308
  } finally {
262
- wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
309
+ wasm.__wbindgen_add_to_stack_pointer(16);
310
+ wasm.__wbindgen_export(deferred4_0, deferred4_1, 1);
263
311
  }
264
312
  }
265
313
 
@@ -313,16 +361,24 @@ function __wbg_get_imports() {
313
361
  deferred0_1 = arg1;
314
362
  console.error(getStringFromWasm0(arg0, arg1));
315
363
  } finally {
316
- wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
364
+ wasm.__wbindgen_export(deferred0_0, deferred0_1, 1);
317
365
  }
318
366
  };
367
+ imports.wbg.__wbg_getTime_ad1e9878a735af08 = function(arg0) {
368
+ const ret = getObject(arg0).getTime();
369
+ return ret;
370
+ };
371
+ imports.wbg.__wbg_new_0_23cedd11d9b40c9d = function() {
372
+ const ret = new Date();
373
+ return addHeapObject(ret);
374
+ };
319
375
  imports.wbg.__wbg_new_8a6f238a6ece86ea = function() {
320
376
  const ret = new Error();
321
- return ret;
377
+ return addHeapObject(ret);
322
378
  };
323
379
  imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) {
324
- const ret = arg1.stack;
325
- const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
380
+ const ret = getObject(arg1).stack;
381
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
326
382
  const len1 = WASM_VECTOR_LEN;
327
383
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
328
384
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
@@ -330,16 +386,10 @@ function __wbg_get_imports() {
330
386
  imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {
331
387
  // Cast intrinsic for `Ref(String) -> Externref`.
332
388
  const ret = getStringFromWasm0(arg0, arg1);
333
- return ret;
389
+ return addHeapObject(ret);
334
390
  };
335
- imports.wbg.__wbindgen_init_externref_table = function() {
336
- const table = wasm.__wbindgen_externrefs;
337
- const offset = table.grow(4);
338
- table.set(0, undefined);
339
- table.set(offset + 0, undefined);
340
- table.set(offset + 1, null);
341
- table.set(offset + 2, true);
342
- table.set(offset + 3, false);
391
+ imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
392
+ takeObject(arg0);
343
393
  };
344
394
 
345
395
  return imports;
Binary file
@@ -2,14 +2,13 @@
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const __wbg_compiledrule_free: (a: number, b: number) => void;
5
- export const compiledrule_evaluate: (a: number, b: number, c: number) => [number, number, number, number];
6
- export const compiledrule_new: (a: number, b: number, c: number) => [number, number, number];
7
- export const evaluate: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
8
- export const evaluate_with_trace: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
5
+ export const compiledrule_evaluate: (a: number, b: number, c: number, d: number) => void;
6
+ export const compiledrule_new: (a: number, b: number, c: number, d: number) => void;
7
+ export const evaluate: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
8
+ export const evaluate_with_trace: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
9
9
  export const init: () => void;
10
- export const __wbindgen_free: (a: number, b: number, c: number) => void;
11
- export const __wbindgen_malloc: (a: number, b: number) => number;
12
- export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
13
- export const __wbindgen_externrefs: WebAssembly.Table;
14
- export const __externref_table_dealloc: (a: number) => void;
10
+ export const __wbindgen_export: (a: number, b: number, c: number) => void;
11
+ export const __wbindgen_export2: (a: number, b: number) => number;
12
+ export const __wbindgen_export3: (a: number, b: number, c: number, d: number) => number;
13
+ export const __wbindgen_add_to_stack_pointer: (a: number) => number;
15
14
  export const __wbindgen_start: () => void;