mol_vary 0.0.69 → 0.0.70
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/node.js +48 -46
- package/node.js.map +1 -1
- package/node.mjs +48 -46
- package/node.test.js +48 -46
- package/node.test.js.map +1 -1
- package/package.json +1 -1
- package/web.js +48 -46
- package/web.js.map +1 -1
- package/web.mjs +48 -46
package/node.js
CHANGED
|
@@ -2548,8 +2548,8 @@ var $;
|
|
|
2548
2548
|
if (stack.includes(val))
|
|
2549
2549
|
$mol_fail(new Error('Cyclic refs', { cause: { stack, val } }));
|
|
2550
2550
|
stack.push(val);
|
|
2551
|
-
for (
|
|
2552
|
-
dump(
|
|
2551
|
+
for (let i = 0; i < val.length; ++i)
|
|
2552
|
+
dump(val[i]);
|
|
2553
2553
|
if (stack.at(-1) !== val)
|
|
2554
2554
|
$mol_fail(new Error('Broken stack', { cause: { stack, val } }));
|
|
2555
2555
|
stack.pop();
|
|
@@ -2569,65 +2569,67 @@ var $;
|
|
|
2569
2569
|
const offset = offsets.get(val);
|
|
2570
2570
|
if (offset !== undefined)
|
|
2571
2571
|
return dump_unum($mol_vary_tip.link, offset);
|
|
2572
|
-
const
|
|
2572
|
+
const { 0: keys, 1: vals } = this.lean_find(val)?.(val) ?? [shape(val), Object.values(val)];
|
|
2573
2573
|
dump_unum($mol_vary_tip.tupl, vals.length);
|
|
2574
2574
|
acquire((vals.length + 1) * 9);
|
|
2575
2575
|
dump_list(keys);
|
|
2576
2576
|
if (stack.includes(val))
|
|
2577
2577
|
$mol_fail(new Error('Cyclic refs', { cause: { stack, val } }));
|
|
2578
2578
|
stack.push(val);
|
|
2579
|
-
for (
|
|
2580
|
-
dump(
|
|
2579
|
+
for (let i = 0; i < vals.length; ++i)
|
|
2580
|
+
dump(vals[i]);
|
|
2581
2581
|
if (stack.at(-1) !== val)
|
|
2582
2582
|
$mol_fail(new Error('Broken stack', { cause: { stack, val } }));
|
|
2583
2583
|
stack.pop();
|
|
2584
2584
|
offsets.set(val, offsets.size);
|
|
2585
2585
|
};
|
|
2586
|
-
const
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2586
|
+
const dumpers = {
|
|
2587
|
+
undefined: () => {
|
|
2588
|
+
this.array[pos++] = $mol_vary_spec.both;
|
|
2589
|
+
capacity -= 8;
|
|
2590
|
+
},
|
|
2591
|
+
boolean: val => {
|
|
2592
|
+
this.array[pos++] = val ? $mol_vary_spec.true : $mol_vary_spec.fake;
|
|
2593
|
+
capacity -= 8;
|
|
2594
|
+
},
|
|
2595
|
+
number: val => {
|
|
2596
|
+
if (!Number.isInteger(val))
|
|
2597
|
+
dump_float(val);
|
|
2598
|
+
else
|
|
2599
|
+
dumpers.bigint(val);
|
|
2600
|
+
},
|
|
2601
|
+
bigint: val => {
|
|
2602
|
+
if (val < 0) {
|
|
2603
|
+
dump_snum(val);
|
|
2601
2604
|
}
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
dump_snum(val);
|
|
2605
|
-
}
|
|
2606
|
-
else {
|
|
2607
|
-
dump_unum($mol_vary_tip.uint, val);
|
|
2608
|
-
}
|
|
2609
|
-
return;
|
|
2605
|
+
else {
|
|
2606
|
+
dump_unum($mol_vary_tip.uint, val);
|
|
2610
2607
|
}
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
if (ArrayBuffer.isView(val))
|
|
2618
|
-
return dump_buffer(val);
|
|
2619
|
-
if (Array.isArray(val))
|
|
2620
|
-
return dump_list(val);
|
|
2621
|
-
return dump_object(val);
|
|
2608
|
+
},
|
|
2609
|
+
string: val => dump_string(val),
|
|
2610
|
+
object: val => {
|
|
2611
|
+
if (!val) {
|
|
2612
|
+
capacity -= 8;
|
|
2613
|
+
return this.array[pos++] = $mol_vary_spec.none;
|
|
2622
2614
|
}
|
|
2615
|
+
if (Array.isArray(val))
|
|
2616
|
+
return dump_list(val);
|
|
2617
|
+
if (ArrayBuffer.isView(val))
|
|
2618
|
+
return dump_buffer(val);
|
|
2619
|
+
return dump_object(val);
|
|
2623
2620
|
}
|
|
2624
|
-
$mol_fail(new Error(`Unsupported type`));
|
|
2625
2621
|
};
|
|
2626
|
-
|
|
2622
|
+
const dump = (val) => {
|
|
2623
|
+
const dumper = dumpers[typeof val];
|
|
2624
|
+
if (!dumper)
|
|
2625
|
+
$mol_fail(new Error(`Unsupported type`));
|
|
2626
|
+
dumper(val);
|
|
2627
|
+
};
|
|
2628
|
+
for (let i = 0; i < data.length; ++i) {
|
|
2627
2629
|
capacity += 9;
|
|
2628
|
-
dump(
|
|
2630
|
+
dump(data[i]);
|
|
2629
2631
|
if (stack.length)
|
|
2630
|
-
$mol_fail(new Error('Stack underflow', { cause: { stack, item } }));
|
|
2632
|
+
$mol_fail(new Error('Stack underflow', { cause: { stack, item: data[i] } }));
|
|
2631
2633
|
offsets.clear();
|
|
2632
2634
|
}
|
|
2633
2635
|
if (pos !== capacity)
|
|
@@ -2832,12 +2834,12 @@ var $;
|
|
|
2832
2834
|
}
|
|
2833
2835
|
rich_node(keys) {
|
|
2834
2836
|
let node = this.rich_index;
|
|
2835
|
-
for (
|
|
2836
|
-
let sub = node.get(
|
|
2837
|
+
for (let i = 0; i < keys.length; ++i) {
|
|
2838
|
+
let sub = node.get(keys[i]);
|
|
2837
2839
|
if (sub)
|
|
2838
2840
|
node = sub;
|
|
2839
2841
|
else
|
|
2840
|
-
node.set(
|
|
2842
|
+
node.set(keys[i], node = new Map);
|
|
2841
2843
|
}
|
|
2842
2844
|
return node;
|
|
2843
2845
|
}
|