mol_vary 0.0.50 → 0.0.52
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 +1 -1
- package/node.deps.json +1 -1
- package/node.js +12 -7
- package/node.js.map +1 -1
- package/node.mjs +12 -7
- package/node.test.js +82 -76
- package/node.test.js.map +1 -1
- package/package.json +1 -1
- package/web.deps.json +1 -1
- package/web.js +12 -7
- package/web.js.map +1 -1
- package/web.mjs +12 -7
- package/web.test.js +70 -69
- package/web.test.js.map +1 -1
package/node.mjs
CHANGED
|
@@ -37,7 +37,7 @@ var $;
|
|
|
37
37
|
num = minus ? -num - 1n : num;
|
|
38
38
|
const bytes = [];
|
|
39
39
|
do {
|
|
40
|
-
let byte = minus ^ Number(num
|
|
40
|
+
let byte = minus ^ Number(num & 255n);
|
|
41
41
|
bytes.push(byte);
|
|
42
42
|
if (num >>= 8n)
|
|
43
43
|
continue;
|
|
@@ -2380,7 +2380,7 @@ var $;
|
|
|
2380
2380
|
buffer = new DataView(this.array.buffer);
|
|
2381
2381
|
pack(data) {
|
|
2382
2382
|
let pos = 0;
|
|
2383
|
-
let capacity =
|
|
2383
|
+
let capacity = 0;
|
|
2384
2384
|
const offsets = new Map();
|
|
2385
2385
|
const stack = [];
|
|
2386
2386
|
const acquire = (size) => {
|
|
@@ -2474,11 +2474,12 @@ var $;
|
|
|
2474
2474
|
};
|
|
2475
2475
|
const dump_bint = (val) => {
|
|
2476
2476
|
const buf = $mol_bigint_encode(val);
|
|
2477
|
-
if (buf.byteLength >
|
|
2477
|
+
if (buf.byteLength > (2 ** 16 + 8))
|
|
2478
2478
|
$mol_fail(new Error('Number too high', { cause: { val } }));
|
|
2479
|
-
acquire(buf.byteLength -
|
|
2479
|
+
acquire(buf.byteLength - 6);
|
|
2480
2480
|
this.array[pos++] = -$mol_vary_len.LA;
|
|
2481
|
-
this.
|
|
2481
|
+
this.buffer.setUint16(pos, buf.byteLength - 9, true);
|
|
2482
|
+
pos += 2;
|
|
2482
2483
|
this.array.set(buf, pos);
|
|
2483
2484
|
pos += buf.byteLength;
|
|
2484
2485
|
};
|
|
@@ -2623,6 +2624,7 @@ var $;
|
|
|
2623
2624
|
$mol_fail(new Error(`Unsupported type`));
|
|
2624
2625
|
};
|
|
2625
2626
|
for (const item of data) {
|
|
2627
|
+
capacity += 9;
|
|
2626
2628
|
dump(item);
|
|
2627
2629
|
if (stack.length)
|
|
2628
2630
|
$mol_fail(new Error('Stack underflow', { cause: { stack, item } }));
|
|
@@ -2689,7 +2691,8 @@ var $;
|
|
|
2689
2691
|
pos += 8;
|
|
2690
2692
|
}
|
|
2691
2693
|
else if (num === -$mol_vary_len.LA) {
|
|
2692
|
-
const len = buffer.
|
|
2694
|
+
const len = buffer.getUint16(pos, true) + 9;
|
|
2695
|
+
pos += 2;
|
|
2693
2696
|
res = $mol_bigint_decode(new Uint8Array(buffer.buffer, buffer.byteOffset + pos, len));
|
|
2694
2697
|
pos += len;
|
|
2695
2698
|
}
|
|
@@ -2811,8 +2814,10 @@ var $;
|
|
|
2811
2814
|
}
|
|
2812
2815
|
};
|
|
2813
2816
|
const result = [];
|
|
2814
|
-
while (pos < array.byteLength)
|
|
2817
|
+
while (pos < array.byteLength) {
|
|
2815
2818
|
result.push(read_vary());
|
|
2819
|
+
stream.length = 0;
|
|
2820
|
+
}
|
|
2816
2821
|
return result;
|
|
2817
2822
|
}
|
|
2818
2823
|
rich_index = new Map([
|
package/node.test.js
CHANGED
|
@@ -28,7 +28,7 @@ var $;
|
|
|
28
28
|
num = minus ? -num - 1n : num;
|
|
29
29
|
const bytes = [];
|
|
30
30
|
do {
|
|
31
|
-
let byte = minus ^ Number(num
|
|
31
|
+
let byte = minus ^ Number(num & 255n);
|
|
32
32
|
bytes.push(byte);
|
|
33
33
|
if (num >>= 8n)
|
|
34
34
|
continue;
|
|
@@ -2371,7 +2371,7 @@ var $;
|
|
|
2371
2371
|
buffer = new DataView(this.array.buffer);
|
|
2372
2372
|
pack(data) {
|
|
2373
2373
|
let pos = 0;
|
|
2374
|
-
let capacity =
|
|
2374
|
+
let capacity = 0;
|
|
2375
2375
|
const offsets = new Map();
|
|
2376
2376
|
const stack = [];
|
|
2377
2377
|
const acquire = (size) => {
|
|
@@ -2465,11 +2465,12 @@ var $;
|
|
|
2465
2465
|
};
|
|
2466
2466
|
const dump_bint = (val) => {
|
|
2467
2467
|
const buf = $mol_bigint_encode(val);
|
|
2468
|
-
if (buf.byteLength >
|
|
2468
|
+
if (buf.byteLength > (2 ** 16 + 8))
|
|
2469
2469
|
$mol_fail(new Error('Number too high', { cause: { val } }));
|
|
2470
|
-
acquire(buf.byteLength -
|
|
2470
|
+
acquire(buf.byteLength - 6);
|
|
2471
2471
|
this.array[pos++] = -$mol_vary_len.LA;
|
|
2472
|
-
this.
|
|
2472
|
+
this.buffer.setUint16(pos, buf.byteLength - 9, true);
|
|
2473
|
+
pos += 2;
|
|
2473
2474
|
this.array.set(buf, pos);
|
|
2474
2475
|
pos += buf.byteLength;
|
|
2475
2476
|
};
|
|
@@ -2614,6 +2615,7 @@ var $;
|
|
|
2614
2615
|
$mol_fail(new Error(`Unsupported type`));
|
|
2615
2616
|
};
|
|
2616
2617
|
for (const item of data) {
|
|
2618
|
+
capacity += 9;
|
|
2617
2619
|
dump(item);
|
|
2618
2620
|
if (stack.length)
|
|
2619
2621
|
$mol_fail(new Error('Stack underflow', { cause: { stack, item } }));
|
|
@@ -2680,7 +2682,8 @@ var $;
|
|
|
2680
2682
|
pos += 8;
|
|
2681
2683
|
}
|
|
2682
2684
|
else if (num === -$mol_vary_len.LA) {
|
|
2683
|
-
const len = buffer.
|
|
2685
|
+
const len = buffer.getUint16(pos, true) + 9;
|
|
2686
|
+
pos += 2;
|
|
2684
2687
|
res = $mol_bigint_decode(new Uint8Array(buffer.buffer, buffer.byteOffset + pos, len));
|
|
2685
2688
|
pos += len;
|
|
2686
2689
|
}
|
|
@@ -2802,8 +2805,10 @@ var $;
|
|
|
2802
2805
|
}
|
|
2803
2806
|
};
|
|
2804
2807
|
const result = [];
|
|
2805
|
-
while (pos < array.byteLength)
|
|
2808
|
+
while (pos < array.byteLength) {
|
|
2806
2809
|
result.push(read_vary());
|
|
2810
|
+
stream.length = 0;
|
|
2811
|
+
}
|
|
2807
2812
|
return result;
|
|
2808
2813
|
}
|
|
2809
2814
|
rich_index = new Map([
|
|
@@ -4933,131 +4938,126 @@ var $;
|
|
|
4933
4938
|
const { L1, L2, L4, L8, LA } = $mol_vary_len;
|
|
4934
4939
|
const str = $mol_charset_encode;
|
|
4935
4940
|
function check(vary, ideal, Vary = $mol_vary) {
|
|
4936
|
-
const pack = Vary.pack(
|
|
4937
|
-
$mol_assert_equal(Vary.take(pack),
|
|
4941
|
+
const pack = Vary.pack(vary);
|
|
4942
|
+
$mol_assert_equal(Vary.take(pack), vary);
|
|
4938
4943
|
$mol_assert_equal(pack, new Uint8Array(ideal));
|
|
4939
4944
|
}
|
|
4940
4945
|
$mol_test({
|
|
4941
4946
|
"vary pack logical"($) {
|
|
4942
|
-
check(null, [spec | none]);
|
|
4943
|
-
check(true, [$mol_vary_spec.true]);
|
|
4944
|
-
check(false, [$mol_vary_spec.fake]);
|
|
4945
|
-
check(undefined, [spec | both]);
|
|
4947
|
+
check([null], [spec | none]);
|
|
4948
|
+
check([true], [$mol_vary_spec.true]);
|
|
4949
|
+
check([false], [$mol_vary_spec.fake]);
|
|
4950
|
+
check([undefined], [spec | both]);
|
|
4946
4951
|
},
|
|
4947
4952
|
"vary pack uint0"($) {
|
|
4948
|
-
check(0, [0]);
|
|
4949
|
-
check(27, [27]);
|
|
4953
|
+
check([0], [0]);
|
|
4954
|
+
check([27], [27]);
|
|
4950
4955
|
},
|
|
4951
4956
|
"vary pack uint1"($) {
|
|
4952
|
-
check(28, [uint | L1, 28]);
|
|
4953
|
-
check(255, [uint | L1, 255]);
|
|
4957
|
+
check([28], [uint | L1, 28]);
|
|
4958
|
+
check([255], [uint | L1, 255]);
|
|
4954
4959
|
},
|
|
4955
4960
|
"vary pack uint2"($) {
|
|
4956
|
-
check(256, [uint | L2, 0, 1]);
|
|
4957
|
-
check(256 ** 2 - 1, [uint | L2, 255, 255]);
|
|
4961
|
+
check([256], [uint | L2, 0, 1]);
|
|
4962
|
+
check([256 ** 2 - 1], [uint | L2, 255, 255]);
|
|
4958
4963
|
},
|
|
4959
4964
|
"vary pack uint4"($) {
|
|
4960
|
-
check(256 ** 2, [uint | L4, 0, 0, 1, 0]);
|
|
4961
|
-
check(256 ** 4 - 1, [uint | L4, 255, 255, 255, 255]);
|
|
4965
|
+
check([256 ** 2], [uint | L4, 0, 0, 1, 0]);
|
|
4966
|
+
check([256 ** 4 - 1], [uint | L4, 255, 255, 255, 255]);
|
|
4962
4967
|
},
|
|
4963
4968
|
"vary pack uint8"($) {
|
|
4964
|
-
check(256 ** 4, [uint | L8, 0, 0, 0, 0, 1, 0, 0, 0]);
|
|
4965
|
-
check(Number.MAX_SAFE_INTEGER, [uint | L8, 255, 255, 255, 255, 255, 255, 31, 0]);
|
|
4966
|
-
check(256n ** 8n - 1n, [uint | L8, 255, 255, 255, 255, 255, 255, 255, 255]);
|
|
4967
|
-
},
|
|
4968
|
-
"vary pack with wrong size"($) {
|
|
4969
|
-
$mol_assert_equal($mol_vary.take(new Uint8Array([])), []);
|
|
4970
|
-
$mol_assert_equal($mol_vary.take(new Uint8Array([uint | 7])), [7]);
|
|
4971
|
-
$mol_assert_equal($mol_vary.take(new Uint8Array([uint | 7, uint | 7])), [7, 7]);
|
|
4969
|
+
check([256 ** 4], [uint | L8, 0, 0, 0, 0, 1, 0, 0, 0]);
|
|
4970
|
+
check([Number.MAX_SAFE_INTEGER], [uint | L8, 255, 255, 255, 255, 255, 255, 31, 0]);
|
|
4971
|
+
check([256n ** 8n - 1n], [uint | L8, 255, 255, 255, 255, 255, 255, 255, 255]);
|
|
4972
4972
|
},
|
|
4973
4973
|
"vary pack sint0"($) {
|
|
4974
|
-
check(-1, [-1]);
|
|
4975
|
-
check(-27, [-27]);
|
|
4974
|
+
check([-1], [-1]);
|
|
4975
|
+
check([-27], [-27]);
|
|
4976
4976
|
},
|
|
4977
4977
|
"vary pack sint1"($) {
|
|
4978
|
-
check(-28, [sint | -L1, -28]);
|
|
4979
|
-
check(-256 / 2, [sint | -L1, 128]);
|
|
4978
|
+
check([-28,], [sint | -L1, -28]);
|
|
4979
|
+
check([-256 / 2], [sint | -L1, 128]);
|
|
4980
4980
|
},
|
|
4981
4981
|
"vary pack sint2"($) {
|
|
4982
|
-
check(-256 / 2 - 1, [sint | -L2, 127, 255]);
|
|
4983
|
-
check(-(256 ** 2) / 2, [sint | -L2, 0, 128]);
|
|
4982
|
+
check([-256 / 2 - 1], [sint | -L2, 127, 255]);
|
|
4983
|
+
check([-(256 ** 2) / 2], [sint | -L2, 0, 128]);
|
|
4984
4984
|
},
|
|
4985
4985
|
"vary pack sint4"($) {
|
|
4986
|
-
check(-(256 ** 2) / 2 - 1, [sint | -L4, 255, 127, 255, 255]);
|
|
4987
|
-
check(-(256 ** 4) / 2, [sint | -L4, 0, 0, 0, 128]);
|
|
4986
|
+
check([-(256 ** 2) / 2 - 1], [sint | -L4, 255, 127, 255, 255]);
|
|
4987
|
+
check([-(256 ** 4) / 2], [sint | -L4, 0, 0, 0, 128]);
|
|
4988
4988
|
},
|
|
4989
4989
|
"vary pack sint8"($) {
|
|
4990
|
-
check(-(256 ** 4) / 2 - 1, [sint | -L8, 255, 255, 255, 127, 255, 255, 255, 255]);
|
|
4991
|
-
check(Number.MIN_SAFE_INTEGER, [sint | -L8, 1, 0, 0, 0, 0, 0, 224, 255]);
|
|
4992
|
-
check(-(
|
|
4990
|
+
check([-(256 ** 4) / 2 - 1], [sint | -L8, 255, 255, 255, 127, 255, 255, 255, 255]);
|
|
4991
|
+
check([Number.MIN_SAFE_INTEGER], [sint | -L8, 1, 0, 0, 0, 0, 0, 224, 255]);
|
|
4992
|
+
check([-(2n ** 63n)], [sint | -L8, 0, 0, 0, 0, 0, 0, 0, 128]);
|
|
4993
4993
|
},
|
|
4994
4994
|
"vary pack bigint"($) {
|
|
4995
|
-
check(2n ** 64n, [sint | -LA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
|
|
4996
|
-
check(2n **
|
|
4997
|
-
check(-1n - 2n ** 64n, [sint | -LA, 0, 255, 255, 255, 255, 255, 255, 255, 255, 254]);
|
|
4998
|
-
check(-1n - 2n **
|
|
4995
|
+
check([2n ** 64n], [sint | -LA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
|
|
4996
|
+
check([2n ** 2111n], [sint | -LA, 0, 1, ...Array.from({ length: 263 }, () => 0), 128, 0]);
|
|
4997
|
+
check([-1n - 2n ** 64n], [sint | -LA, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 254]);
|
|
4998
|
+
check([-1n - 2n ** 2111n], [sint | -LA, 0, 1, ...Array.from({ length: 263 }, () => 255), -129, 255]);
|
|
4999
4999
|
},
|
|
5000
5000
|
"vary pack float"($) {
|
|
5001
|
-
check(1.5, [fp64, ...new Uint8Array(new Float64Array([1.5]).buffer)]);
|
|
5001
|
+
check([1.5], [fp64, ...new Uint8Array(new Float64Array([1.5]).buffer)]);
|
|
5002
5002
|
},
|
|
5003
5003
|
"vary pack list"($) {
|
|
5004
|
-
check([1, 2, 3], [list | 3, 1, 2, 3]);
|
|
5005
|
-
check([[], [1], [2, 3]], [list | 3, list | 0, list | 1, 1, list | 2, 2, 3]);
|
|
5004
|
+
check([[1, 2, 3]], [list | 3, 1, 2, 3]);
|
|
5005
|
+
check([[[], [1], [2, 3]]], [list | 3, list | 0, list | 1, 1, list | 2, 2, 3]);
|
|
5006
5006
|
},
|
|
5007
5007
|
"vary pack dedup list"($) {
|
|
5008
5008
|
const pair = [1, 2];
|
|
5009
|
-
check([pair, pair], [list | 2, list | 2, 1, 2, link | 0]);
|
|
5009
|
+
check([[pair, pair]], [list | 2, list | 2, 1, 2, link | 0]);
|
|
5010
5010
|
const seven = [7];
|
|
5011
5011
|
const box = [seven];
|
|
5012
|
-
check([box, box, seven], [list | 3, list | 1, list | 1, 7, link | 1, link | 0]);
|
|
5012
|
+
check([[box, box, seven]], [list | 3, list | 1, list | 1, 7, link | 1, link | 0]);
|
|
5013
5013
|
},
|
|
5014
5014
|
"vary pack cyclic list"($) {
|
|
5015
5015
|
const foo = [];
|
|
5016
5016
|
foo.push([foo]);
|
|
5017
|
-
$mol_assert_fail(() => $mol_vary.pack(foo), 'Cyclic refs');
|
|
5017
|
+
$mol_assert_fail(() => $mol_vary.pack([foo]), 'Cyclic refs');
|
|
5018
5018
|
},
|
|
5019
5019
|
"vary pack dedup uint"($) {
|
|
5020
|
-
check([28, 28], [list | 2, uint | L1, 28, link | 0]);
|
|
5021
|
-
check([2n ** 64n, 2n ** 64n], [list | 2, sint | -LA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, link | 0]);
|
|
5020
|
+
check([[28, 28]], [list | 2, uint | L1, 28, link | 0]);
|
|
5021
|
+
check([[2n ** 64n, 2n ** 64n]], [list | 2, sint | -LA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, link | 0]);
|
|
5022
5022
|
},
|
|
5023
5023
|
"vary pack dedup float"($) {
|
|
5024
|
-
check([1.5, 1.5], [list | 2, fp64, ...new Uint8Array(new Float64Array([1.5]).buffer), link | 0]);
|
|
5024
|
+
check([[1.5, 1.5]], [list | 2, fp64, ...new Uint8Array(new Float64Array([1.5]).buffer), link | 0]);
|
|
5025
5025
|
},
|
|
5026
5026
|
"vary pack text"($) {
|
|
5027
|
-
check('foo', [text | 3, ...str('foo')]);
|
|
5027
|
+
check(['foo'], [text | 3, ...str('foo')]);
|
|
5028
5028
|
const long = 'abcdefghijklmnopqrstuvwxyzЖЫ';
|
|
5029
|
-
check(long, [text | L1, 28, ...str(long)]);
|
|
5029
|
+
check([long], [text | L1, 28, ...str(long)]);
|
|
5030
5030
|
},
|
|
5031
5031
|
"vary pack dedup text"($) {
|
|
5032
|
-
check(["f", "f"], [list | 2, text | 1, ...str('f'), link | 0]);
|
|
5032
|
+
check([["f", "f"]], [list | 2, text | 1, ...str('f'), link | 0]);
|
|
5033
5033
|
},
|
|
5034
5034
|
"vary pack blob"($) {
|
|
5035
|
-
check(new Uint8Array([1, 255]), [blob | 2, uint | L1, 1, 255]);
|
|
5036
|
-
check(new Int8Array([-128, 127]), [blob | 2, sint | ~L1, -128, 127]);
|
|
5037
|
-
check(new Uint32Array([255]), [blob | 4, uint | L4, 255, 0, 0, 0]);
|
|
5038
|
-
check(new Int32Array([-128]), [blob | 4, sint | ~L4, -128, 255, 255, 255]);
|
|
5039
|
-
check(new BigUint64Array([255n]), [blob | 8, uint | L8, 255, 0, 0, 0, 0, 0, 0, 0]);
|
|
5040
|
-
check(new BigInt64Array([-128n]), [blob | 8, sint | ~L8, -128, 255, 255, 255, 255, 255, 255, 255]);
|
|
5041
|
-
check(new Float32Array([1.5]), [blob | 4, fp32, ...new Uint8Array(new Float32Array([1.5]).buffer)]);
|
|
5042
|
-
check(new Float64Array([1.5]), [blob | 8, fp64, ...new Uint8Array(new Float64Array([1.5]).buffer)]);
|
|
5035
|
+
check([new Uint8Array([1, 255])], [blob | 2, uint | L1, 1, 255]);
|
|
5036
|
+
check([new Int8Array([-128, 127])], [blob | 2, sint | ~L1, -128, 127]);
|
|
5037
|
+
check([new Uint32Array([255])], [blob | 4, uint | L4, 255, 0, 0, 0]);
|
|
5038
|
+
check([new Int32Array([-128])], [blob | 4, sint | ~L4, -128, 255, 255, 255]);
|
|
5039
|
+
check([new BigUint64Array([255n])], [blob | 8, uint | L8, 255, 0, 0, 0, 0, 0, 0, 0]);
|
|
5040
|
+
check([new BigInt64Array([-128n])], [blob | 8, sint | ~L8, -128, 255, 255, 255, 255, 255, 255, 255]);
|
|
5041
|
+
check([new Float32Array([1.5])], [blob | 4, fp32, ...new Uint8Array(new Float32Array([1.5]).buffer)]);
|
|
5042
|
+
check([new Float64Array([1.5])], [blob | 8, fp64, ...new Uint8Array(new Float64Array([1.5]).buffer)]);
|
|
5043
5043
|
},
|
|
5044
5044
|
"vary pack dedup blob"($) {
|
|
5045
5045
|
const part = new Uint8Array([1, 2]);
|
|
5046
|
-
check([part, part], [list | 2, blob | 2, uint | L1, 1, 2, link | 0]);
|
|
5046
|
+
check([[part, part]], [list | 2, blob | 2, uint | L1, 1, 2, link | 0]);
|
|
5047
5047
|
},
|
|
5048
5048
|
"vary pack struct"($) {
|
|
5049
|
-
check({ x: 1, y: 2 }, [tupl | 2, list | 2, text | 1, ...str('x'), text | 1, ...str('y'), 1, 2]);
|
|
5050
|
-
check({ x: {}, y: { a: 1 } }, [tupl | 2, list | 2, text | 1, ...str('x'), text | 1, ...str('y'), tupl | 0, list | 0, tupl | 1, list | 1, text | 1, ...str('a'), 1]);
|
|
5049
|
+
check([{ x: 1, y: 2 }], [tupl | 2, list | 2, text | 1, ...str('x'), text | 1, ...str('y'), 1, 2]);
|
|
5050
|
+
check([{ x: {}, y: { a: 1 } }], [tupl | 2, list | 2, text | 1, ...str('x'), text | 1, ...str('y'), tupl | 0, list | 0, tupl | 1, list | 1, text | 1, ...str('a'), 1]);
|
|
5051
5051
|
},
|
|
5052
5052
|
"vary pack struct shape dedup"($) {
|
|
5053
|
-
check([{}, { foo: 1 }, { foo: 2 }], [list | 3, tupl | 0, list | 0, tupl | 1, list | 1, text | 3, ...str('foo'), 1, tupl | 1, link | 3, 2]);
|
|
5054
|
-
check({ x: 1, y: { x: 2, y: 3 } }, [tupl | 2, list | 2, text | 1, ...str('x'), text | 1, ...str('y'), 1, tupl | 2, link | 2, 2, 3]);
|
|
5053
|
+
check([[{}, { foo: 1 }, { foo: 2 }]], [list | 3, tupl | 0, list | 0, tupl | 1, list | 1, text | 3, ...str('foo'), 1, tupl | 1, link | 3, 2]);
|
|
5054
|
+
check([{ x: 1, y: { x: 2, y: 3 } }], [tupl | 2, list | 2, text | 1, ...str('x'), text | 1, ...str('y'), 1, tupl | 2, link | 2, 2, 3]);
|
|
5055
5055
|
},
|
|
5056
5056
|
"vary pack struct full dedup"($) {
|
|
5057
5057
|
const item = { x: 1 };
|
|
5058
|
-
check([item, item], [list | 2, tupl | 1, list | 1, text | 1, ...str('x'), 1, link | 2]);
|
|
5058
|
+
check([[item, item]], [list | 2, tupl | 1, list | 1, text | 1, ...str('x'), 1, link | 2]);
|
|
5059
5059
|
const part = { x: 1, y: 2 };
|
|
5060
|
-
check({ x: part, y: part }, [tupl | 2, list | 2, text | 1, ...str('x'), text | 1, ...str('y'), tupl | 2, link | 2, 1, 2, link | 3]);
|
|
5060
|
+
check([{ x: part, y: part }], [tupl | 2, list | 2, text | 1, ...str('x'), text | 1, ...str('y'), tupl | 2, link | 2, 1, 2, link | 3]);
|
|
5061
5061
|
},
|
|
5062
5062
|
"vary pack cyclic struct"($) {
|
|
5063
5063
|
const foo = { bar: null };
|
|
@@ -5065,16 +5065,16 @@ var $;
|
|
|
5065
5065
|
$mol_assert_fail(() => $mol_vary.pack([foo]), 'Cyclic refs');
|
|
5066
5066
|
},
|
|
5067
5067
|
"vary pack Map"($) {
|
|
5068
|
-
check(new Map([['foo', 1], [2, 'bar']]), [tupl | 2, list | 2, text | 4, ...str('keys'), text | 4, ...str('vals'), list | 2, text | 3, ...str('foo'), 2, list | 2, 1, text | 3, ...str('bar')]);
|
|
5068
|
+
check([new Map([['foo', 1], [2, 'bar']])], [tupl | 2, list | 2, text | 4, ...str('keys'), text | 4, ...str('vals'), list | 2, text | 3, ...str('foo'), 2, list | 2, 1, text | 3, ...str('bar')]);
|
|
5069
5069
|
},
|
|
5070
5070
|
"vary pack Set"($) {
|
|
5071
|
-
check(new Set([7, 'foo']), [tupl | 1, list | 1, text | 3, ...str('set'), list | 2, 7, text | 3, ...str('foo')]);
|
|
5071
|
+
check([new Set([7, 'foo'])], [tupl | 1, list | 1, text | 3, ...str('set'), list | 2, 7, text | 3, ...str('foo')]);
|
|
5072
5072
|
},
|
|
5073
5073
|
"vary pack Date"($) {
|
|
5074
5074
|
const date1 = new Date('2025-01-02T03:04:05');
|
|
5075
|
-
check(date1, [tupl | 1, list | 1, text | 9, ...str('unix_time'), uint | L4, ...new Uint8Array(new Uint32Array([date1.valueOf() / 1000]).buffer)]);
|
|
5075
|
+
check([date1], [tupl | 1, list | 1, text | 9, ...str('unix_time'), uint | L4, ...new Uint8Array(new Uint32Array([date1.valueOf() / 1000]).buffer)]);
|
|
5076
5076
|
const date2 = new Date('2025-01-02T03:04:05.678');
|
|
5077
|
-
check(date2, [tupl | 1, list | 1, text | 9, ...str('unix_time'), fp64, ...new Uint8Array(new Float64Array([date2.valueOf() / 1000]).buffer)]);
|
|
5077
|
+
check([date2], [tupl | 1, list | 1, text | 9, ...str('unix_time'), fp64, ...new Uint8Array(new Float64Array([date2.valueOf() / 1000]).buffer)]);
|
|
5078
5078
|
},
|
|
5079
5079
|
"vary pack DOM Element"($) {
|
|
5080
5080
|
$mol_assert_equal($mol_dom_serialize($mol_jsx("div", null,
|
|
@@ -5105,10 +5105,16 @@ var $;
|
|
|
5105
5105
|
lean: foo => [foo.a + foo.b, foo.a - foo.b],
|
|
5106
5106
|
rich: ([summ, diff]) => new Foo((summ + diff) / 2, (summ - diff) / 2),
|
|
5107
5107
|
});
|
|
5108
|
-
check(new Foo(4, 2), [tupl | 2, list | 2, text | 4, ...str('summ'), text | 4, ...str('diff'), 6, 2], Vary);
|
|
5108
|
+
check([new Foo(4, 2)], [tupl | 2, list | 2, text | 4, ...str('summ'), text | 4, ...str('diff'), 6, 2], Vary);
|
|
5109
5109
|
$mol_assert_equal($mol_vary.take($mol_vary.pack([new Foo(4, 2)])), [{ a: 4, b: 2 }]);
|
|
5110
5110
|
$mol_assert_equal(Vary.take(Vary.pack([new Map([[1, 2]])])), [new Map([[1, 2]])]);
|
|
5111
5111
|
},
|
|
5112
|
+
"vary pack sequences"($) {
|
|
5113
|
+
check([], []);
|
|
5114
|
+
check([7], [7]);
|
|
5115
|
+
check([3, 4], [3, 4]);
|
|
5116
|
+
check([['foo', 'foo'], ['bar', 'bar']], [list | 2, text | 3, ...str('foo'), link | 0, list | 2, text | 3, ...str('bar'), link | 0]);
|
|
5117
|
+
},
|
|
5112
5118
|
});
|
|
5113
5119
|
})($$ = $_1.$$ || ($_1.$$ = {}));
|
|
5114
5120
|
})($ || ($ = {}));
|