nv-buf-serde 0.0.2

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 (52) hide show
  1. package/DIST/dist.js +25 -0
  2. package/README.md +382 -0
  3. package/TEST/common.js +435 -0
  4. package/TEST/hole-tst.js +31 -0
  5. package/TEST/nd-benchmark.js +17 -0
  6. package/TEST/r-1bstr.js +33 -0
  7. package/TEST/r-2bstr.js +33 -0
  8. package/TEST/r-ab-and-abvw.js +48 -0
  9. package/TEST/r-bi.js +33 -0
  10. package/TEST/r-date.js +28 -0
  11. package/TEST/r-double.js +33 -0
  12. package/TEST/r-int-not-smi.js +28 -0
  13. package/TEST/r-mp-st-circular.js +105 -0
  14. package/TEST/r-odd-ball.js +33 -0
  15. package/TEST/r-packed-double.js +38 -0
  16. package/TEST/r-packed-smi.js +35 -0
  17. package/TEST/r-packed-with-attr.js +40 -0
  18. package/TEST/r-prim-wrap.js +35 -0
  19. package/TEST/r-rgx.js +28 -0
  20. package/TEST/r-smi.js +28 -0
  21. package/TEST/read-bi-contents.js +20 -0
  22. package/TEST/run.js +43 -0
  23. package/TEST/run.sh +29 -0
  24. package/TEST/serde-benchmark.js +17 -0
  25. package/TEST/tst.json +114 -0
  26. package/TEST/tst.v8ser +0 -0
  27. package/TEST/w-1bstr.js +34 -0
  28. package/TEST/w-2bstr.js +34 -0
  29. package/TEST/w-ab-and-abvw.js +60 -0
  30. package/TEST/w-bi.js +33 -0
  31. package/TEST/w-date.js +33 -0
  32. package/TEST/w-double.js +35 -0
  33. package/TEST/w-int-not-smi.js +37 -0
  34. package/TEST/w-mp-st-circular.js +60 -0
  35. package/TEST/w-odd-ball.js +43 -0
  36. package/TEST/w-packed-double.js +40 -0
  37. package/TEST/w-packed-smi.js +38 -0
  38. package/TEST/w-packed-with-attr.js +41 -0
  39. package/TEST/w-prim-wrap.js +41 -0
  40. package/TEST/w-rgx.js +33 -0
  41. package/TEST/w-smi.js +36 -0
  42. package/build.sh +1 -0
  43. package/const.js +181 -0
  44. package/ctx.js +89 -0
  45. package/fixed-cfg.js +6 -0
  46. package/index.js +27 -0
  47. package/misc.js +112 -0
  48. package/package.json +22 -0
  49. package/r.js +646 -0
  50. package/restrict.js +48 -0
  51. package/w.js +510 -0
  52. package/zero-nid.js +21 -0
@@ -0,0 +1,60 @@
1
+
2
+ const {sync} = require("nv-facutil-simple-test");
3
+ const v8 = require("v8");
4
+ const eq = (b0,b1)=> {
5
+ var u8a = new Uint8Array(b1);
6
+ for(let i =0;i<b0.length;++i) {
7
+ if(b0[i] === u8a[i]) {
8
+
9
+ } else {
10
+ //console.log(b0.slice(i));
11
+ //console.log(Buffer.from(b1.slice(i)));
12
+ throw(i);
13
+ }
14
+ }
15
+ }
16
+ var fj = (o)=> JSON.stringify(o);
17
+ const {encd} = require("../w");
18
+
19
+
20
+
21
+ var f0 = (o)=> v8.serialize(o);
22
+ var f1 = (o)=> encd(o,15); //version default is 15 , using 13 just for test
23
+
24
+
25
+ var u8a = new Uint8Array([200,201,202])
26
+ var u8ca = new Uint8ClampedArray([1,2,3,4,5,6,7,8]);
27
+ var i8a = new Int8Array([100,-50,255]);
28
+ var u16a = new Uint16Array([65533,65534,65535])
29
+ var i16a = new Int16Array([100,200,300])
30
+ var u32a = new Uint32Array([2**31,2**32-1])
31
+ var i32a = new Int32Array([2**29,2**30])
32
+ var f32a = new Float32Array([1.1,2.2,3.3])
33
+ var f64a = new Float32Array([-(2**52),2**53-1.1])
34
+ var bu64a = new BigUint64Array([2n**63n,2n**64n-1n])
35
+ var bi64a = new BigInt64Array([2n**63n,2n**62n])
36
+
37
+ var ab = new ArrayBuffer(4)
38
+ var dv = new DataView(ab)
39
+ dv.setUint8(0,1)
40
+ dv.setUint8(0,2)
41
+ dv.setUint8(0,3)
42
+ dv.setUint8(0,4)
43
+
44
+ /*var sab = new SharedArrayBuffer(4); nodejs-not-support-sab*/
45
+
46
+ var arr = [u8a,u8ca,i8a,u16a,i16a,u32a,i32a,f32a,f64a,dv,ab,bi64a,bu64a,/*sab*/]
47
+
48
+ for(let i=0;i<arr.length;++i) {
49
+ eq(f0(arr[i]),f1(arr[i]));
50
+ }
51
+
52
+
53
+ arr = Array.from({length:50000}).map(r=>arr.slice(0));
54
+ arr = arr.flat();
55
+
56
+
57
+ var ff0 = ()=>arr.forEach(e=>f0(e));
58
+ var ff1 = ()=>arr.forEach(e=>f1(e));
59
+ console.log(sync(1,ff0));
60
+ console.log(sync(1,ff1));
package/TEST/w-bi.js ADDED
@@ -0,0 +1,33 @@
1
+
2
+ const {sync} = require("nv-facutil-simple-test");
3
+ const v8 = require("v8");
4
+ const eq = (b0,b1)=> {
5
+ var u8a = new Uint8Array(b1);
6
+ for(let i =0;i<b0.length;++i) {
7
+ if(b0[i] === u8a[i]) {
8
+
9
+ } else {
10
+ throw(i)
11
+ }
12
+ }
13
+ }
14
+ var fj = (o)=> JSON.stringify(o);
15
+ const {encd} = require("../w");
16
+
17
+ const ENCD_UN = 0X5F;
18
+ const ENCD_NU = 0X30;
19
+
20
+
21
+ var f0 = (o)=> v8.serialize(o);
22
+ var f1 = (o)=> encd(o,15); //version default is 15 , using 13 just for test
23
+
24
+ var bis = [12345678901234567890234567890n,-0n,0n,2n**64n];
25
+
26
+ for(let dbl of bis) {
27
+ eq(f0(dbl),f1(dbl))
28
+ }
29
+
30
+
31
+ console.log(sync(1000000,f0,12345678901234567890234567890n));
32
+ console.log(sync(1000000,f1,12345678901234567890234567890n));
33
+
package/TEST/w-date.js ADDED
@@ -0,0 +1,33 @@
1
+ const {sync} = require("nv-facutil-simple-test");
2
+ const v8 = require("v8");
3
+ const eq = (b0,b1)=> {
4
+ var u8a = new Uint8Array(b1);
5
+ for(let i =0;i<b0.length;++i) {
6
+ if(b0[i] === u8a[i]) {
7
+
8
+ } else {
9
+ throw(i)
10
+ }
11
+ }
12
+ }
13
+ var fj = (o)=> JSON.stringify(o);
14
+ const {encd} = require("../w");
15
+
16
+ const ENCD_UN = 0X5F;
17
+ const ENCD_NU = 0X30;
18
+
19
+
20
+ var f0 = (o)=> v8.serialize(o);
21
+ var f1 = (o)=> encd(o,15); //version default is 15 , using 13 just for test
22
+
23
+
24
+
25
+ var dt = new Date();
26
+
27
+
28
+ eq(f0(dt),f1(dt));
29
+
30
+
31
+ console.log(sync(100000,f0,dt));
32
+ console.log(sync(100000,f1,dt));
33
+
@@ -0,0 +1,35 @@
1
+
2
+ const {sync} = require("nv-facutil-simple-test");
3
+ const v8 = require("v8");
4
+ const eq = (b0,b1)=> {
5
+ var u8a = new Uint8Array(b1);
6
+ for(let i =0;i<b0.length;++i) {
7
+ if(b0[i] === u8a[i]) {
8
+
9
+ } else {
10
+ throw(i)
11
+ }
12
+ }
13
+ }
14
+ var fj = (o)=> JSON.stringify(o);
15
+ const {encd} = require("../w");
16
+
17
+ const ENCD_UN = 0X5F;
18
+ const ENCD_NU = 0X30;
19
+
20
+ var f0 = (o)=> v8.serialize(o);
21
+ var f1 = (o)=> encd(o,15); //version default is 15 , using 13 just for test
22
+
23
+
24
+ var doubles = [-1.1,-0,1.1]
25
+
26
+ eq(f0(doubles),f1(doubles))
27
+
28
+ for(let i = -500000;i<0;++i) {doubles.push(Math.random()+i)}
29
+ for(let i = 1;i<500000;++i) {doubles.push(Math.random()+i)}
30
+
31
+
32
+ var ff0 = ()=>doubles.forEach(doubles=>f0(doubles));
33
+ var ff1 = ()=>doubles.forEach(doubles=>f1(doubles));
34
+ console.log(sync(1,ff0));
35
+ console.log(sync(1,ff1));
@@ -0,0 +1,37 @@
1
+
2
+ const {sync} = require("nv-facutil-simple-test");
3
+ const v8 = require("v8");
4
+ const eq = (b0,b1)=> {
5
+ var u8a = new Uint8Array(b1);
6
+ for(let i =0;i<b0.length;++i) {
7
+ if(b0[i] === u8a[i]) {
8
+
9
+ } else {
10
+ throw(i)
11
+ }
12
+ }
13
+ }
14
+ var fj = (o)=> JSON.stringify(o);
15
+ const {encd} = require("../w");
16
+
17
+ const ENCD_UN = 0X5F;
18
+ const ENCD_NU = 0X30;
19
+
20
+ var f0 = (o)=> v8.serialize(o);
21
+ var f1 = (o)=> encd(o,15); //version default is 15 , using 13 just for test
22
+
23
+
24
+ var i32s = [-(2**31)-1,2**31]
25
+
26
+ for(let i32 of i32s) {
27
+ eq(f0(i32),f1(i32))
28
+ }
29
+
30
+ for(let i = -500000;i<0;++i) {i32s.push(-(2**31)-1+i)}
31
+ for(let i = 1;i<500000;++i) {i32s.push(2**31+i)}
32
+
33
+
34
+ var ff0 = ()=>i32s.forEach(i32=>f0(i32));
35
+ var ff1 = ()=>i32s.forEach(i32=>f1(i32));
36
+ console.log(sync(1,ff0));
37
+ console.log(sync(1,ff1));
@@ -0,0 +1,60 @@
1
+ const {sync} = require("nv-facutil-simple-test");
2
+ const v8 = require("v8");
3
+ const eq = (b0,b1)=> {
4
+ var u8a = new Uint8Array(b1);
5
+ for(let i =0;i<b0.length;++i) {
6
+ if(b0[i] === u8a[i]) {
7
+
8
+ } else {
9
+ console.log(b0.slice(i))
10
+ console.log(Buffer.from(b1.slice(i)))
11
+ throw(i)
12
+ }
13
+ }
14
+ }
15
+ var fj = (o)=> JSON.stringify(o);
16
+ const {encd} = require("../w");
17
+
18
+ const ENCD_UN = 0X5F;
19
+ const ENCD_NU = 0X30;
20
+
21
+ var f0 = (o)=> v8.serialize(o);
22
+ var f1 = (o)=> encd(o,15); //version default is 15 , using 13 just for test
23
+
24
+ var st = new Set([])
25
+ for(let e of [1,1.1,undefined,null,true,false,"abcd","aÿ我𝑒",12345678901234567890n,[],{}]) {st.add(e)}
26
+ eq(f0(st),f1(st))
27
+
28
+ var mp = new Map()
29
+ eq(f0(mp),f1(mp))
30
+
31
+ for(let e of [[]]) {mp.set(e,e)}
32
+ eq(f0(mp),f1(mp))
33
+
34
+
35
+
36
+
37
+ for(let e of [1,1.1,undefined,null,true,false,"abcd","aÿ我𝑒",12345678901234567890n]) {mp.set(e,e)}
38
+ eq(f0(mp),f1(mp))
39
+
40
+
41
+ for(let e of [1,1.1,undefined,null,true,false,"abcd","aÿ我𝑒",12345678901234567890n,[],{}]) {mp.set(e,e)}
42
+ eq(f0(mp),f1(mp))
43
+
44
+ var circular = [];
45
+ circular[0] = circular
46
+ circular[1] = {pr:circular[0]}
47
+ circular[2] = mp
48
+ mp.set("st",st);
49
+ st.add(mp);
50
+
51
+ st["top"] = circular;
52
+ mp["top"] = circular;
53
+
54
+
55
+ console.dir(circular,{depth:null})
56
+
57
+ eq(f0(circular),f1(circular))
58
+
59
+ console.log(sync(1000000,f0,circular));
60
+ console.log(sync(1000000,f1,circular));
@@ -0,0 +1,43 @@
1
+ const {sync} = require("nv-facutil-simple-test");
2
+ const v8 = require("v8");
3
+ const eq = (b0,b1)=> {
4
+ var u8a = new Uint8Array(b1);
5
+ for(let i =0;i<b0.length;++i) {
6
+ if(b0[i] === u8a[i]) {
7
+
8
+ } else {
9
+ throw(i)
10
+ }
11
+ }
12
+ }
13
+ var fj = (o)=> JSON.stringify(o);
14
+ const {encd} = require("../w");
15
+
16
+ const ENCD_UN = 0X5F;
17
+ const ENCD_NU = 0X30;
18
+
19
+ var f0 = (o)=> v8.serialize(o);
20
+ var f1 = (o)=> encd(o,15); //version default is 15 , using 13 just for test
21
+
22
+
23
+ var un = undefined;
24
+ eq(f0(un),f1(un))
25
+ console.log(sync(1000000,f0,un))
26
+ console.log(sync(1000000,f1,un))
27
+
28
+
29
+ var nu = null;
30
+ eq(f0(nu),f1(nu)) //0x30
31
+ console.log(sync(1000000,f0,nu))
32
+ console.log(sync(1000000,f1,nu))
33
+
34
+
35
+ var t = true;
36
+ eq(f0(t),f1(t)) //0x54
37
+ console.log(sync(1000000,f0,t))
38
+ console.log(sync(1000000,f1,t))
39
+
40
+ var f = false;
41
+ eq(f0(f),f1(f)) //0x46
42
+ console.log(sync(1000000,f0,f))
43
+ console.log(sync(1000000,f1,f))
@@ -0,0 +1,40 @@
1
+
2
+ const {sync} = require("nv-facutil-simple-test");
3
+ const v8 = require("v8");
4
+ const eq = (b0,b1)=> {
5
+ var u8a = new Uint8Array(b1);
6
+ for(let i =0;i<b0.length;++i) {
7
+ if(b0[i] === u8a[i]) {
8
+
9
+ } else {
10
+ throw(i)
11
+ }
12
+ }
13
+ }
14
+ var fj = (o)=> JSON.stringify(o);
15
+ const {encd} = require("../w");
16
+
17
+
18
+
19
+ var f0 = (o)=> v8.serialize(o);
20
+ var f1 = (o)=> encd(o,15); //version default is 15 , using 13 just for test
21
+
22
+
23
+ var packed_double = [-1,-0,1]; // -0 is double
24
+
25
+ console.log(f0(packed_double));
26
+ console.log(Buffer.from(f1(packed_double)));
27
+ eq(f0(packed_double),f1(packed_double))
28
+
29
+ packed_double = packed_double.concat(-1.1,2.2);
30
+ eq(f0(packed_double),f1(packed_double))
31
+
32
+
33
+ for(let i = -500000;i<0;++i) {packed_double.push(Math.random()+i)}
34
+ for(let i = 1;i<500000;++i) {packed_double.push(Math.random()+i)}
35
+
36
+
37
+ var ff0 = ()=>packed_double.forEach(e=>f0(e));
38
+ var ff1 = ()=>packed_double.forEach(e=>f1(e));
39
+ console.log(sync(1,ff0));
40
+ console.log(sync(1,ff1));
@@ -0,0 +1,38 @@
1
+
2
+ const {sync} = require("nv-facutil-simple-test");
3
+ const v8 = require("v8");
4
+ const eq = (b0,b1)=> {
5
+ var u8a = new Uint8Array(b1);
6
+ for(let i =0;i<b0.length;++i) {
7
+ if(b0[i] === u8a[i]) {
8
+
9
+ } else {
10
+ throw(i)
11
+ }
12
+ }
13
+ }
14
+ var fj = (o)=> JSON.stringify(o);
15
+ const {encd} = require("../w");
16
+
17
+
18
+
19
+ var f0 = (o)=> v8.serialize(o);
20
+ var f1 = (o)=> encd(o,15); //version default is 15 , using 13 just for test
21
+
22
+
23
+ var packed_smi = [-1,0,1];
24
+
25
+ console.log(f0(packed_smi));
26
+ console.log(Buffer.from(f1(packed_smi)));
27
+
28
+ eq(f0(packed_smi),f1(packed_smi))
29
+
30
+
31
+
32
+ for(let i = -250000;i<-1;++i) {packed_smi.unshift(i)}
33
+ for(let i = 1;i<250000;++i) {packed_smi.push(i)}
34
+
35
+ var ff0 = ()=>packed_smi.forEach(e=>f0(e));
36
+ var ff1 = ()=>packed_smi.forEach(e=>f1(e));
37
+ console.log(sync(1,ff0));
38
+ console.log(sync(1,ff1));
@@ -0,0 +1,41 @@
1
+
2
+ const {sync} = require("nv-facutil-simple-test");
3
+ const v8 = require("v8");
4
+ const eq = (b0,b1)=> {
5
+ var u8a = new Uint8Array(b1);
6
+ for(let i =0;i<b0.length;++i) {
7
+ if(b0[i] === u8a[i]) {
8
+
9
+ } else {
10
+ console.log(b0.slice(i));
11
+ console.log(Buffer.from(b1.slice(i)));
12
+ throw(i);
13
+ }
14
+ }
15
+ }
16
+ var fj = (o)=> JSON.stringify(o);
17
+ const {encd} = require("../w");
18
+
19
+
20
+
21
+ var f0 = (o)=> v8.serialize(o);
22
+ var f1 = (o)=> encd(o,15); //version default is 15 , using 13 just for test
23
+
24
+
25
+ var packed_with_attr = [1,1.1,undefined,null,true,false,"abcd","aÿ我𝑒",12345678901234567890n,[],{}]
26
+ packed_with_attr.k0 = "v0"
27
+ packed_with_attr.k1 = "v1"
28
+
29
+ console.log(f0(packed_with_attr));
30
+ console.log(Buffer.from(f1(packed_with_attr)));
31
+ eq(f0(packed_with_attr),f1(packed_with_attr))
32
+
33
+
34
+ packed_with_attr = Array.from({length:50000}).map(r=>packed_with_attr.slice(0));
35
+ packed_with_attr = packed_with_attr.flat();
36
+
37
+
38
+ var ff0 = ()=>packed_with_attr.forEach(e=>f0(e));
39
+ var ff1 = ()=>packed_with_attr.forEach(e=>f1(e));
40
+ console.log(sync(1,ff0));
41
+ console.log(sync(1,ff1));
@@ -0,0 +1,41 @@
1
+ const {sync} = require("nv-facutil-simple-test");
2
+ const v8 = require("v8");
3
+ const eq = (b0,b1)=> {
4
+ var u8a = new Uint8Array(b1);
5
+ for(let i =0;i<b0.length;++i) {
6
+ if(b0[i] === u8a[i]) {
7
+
8
+ } else {
9
+ throw(i)
10
+ }
11
+ }
12
+ }
13
+ var fj = (o)=> JSON.stringify(o);
14
+ const {encd} = require("../w");
15
+
16
+ var trwap = new Boolean(true);
17
+ var fwrap = new Boolean(false);
18
+ var num_wrap = new Number(1.1);
19
+ //var bi_wrap = new BigInt(12345678901234567890234567890n); in-js-layer this is invalid
20
+ var _1bs_wrap = new String("abcd");
21
+ var _2bs_wrap = new String("aÿ我𝑒");
22
+
23
+
24
+
25
+ var f0 = (o)=> v8.serialize(o);
26
+ var f1 = (o)=> encd(o,15); //version default is 15 , using 13 just for test
27
+
28
+
29
+ var prim_wrap_ary = [trwap,fwrap,num_wrap,_1bs_wrap,_2bs_wrap]
30
+
31
+ console.log(f0(_2bs_wrap),"",Buffer.from(f1(_2bs_wrap)))
32
+
33
+ for(let dbl of prim_wrap_ary) {
34
+ eq(f0(dbl),f1(dbl))
35
+ }
36
+
37
+ var ff0 = ()=>prim_wrap_ary.forEach(e=>f0(e));
38
+ var ff1 = ()=>prim_wrap_ary.forEach(e=>f1(e));
39
+ console.log(sync(100000,ff0));
40
+ console.log(sync(100000,ff1));
41
+
package/TEST/w-rgx.js ADDED
@@ -0,0 +1,33 @@
1
+ const {sync} = require("nv-facutil-simple-test");
2
+ const v8 = require("v8");
3
+ const eq = (b0,b1)=> {
4
+ var u8a = new Uint8Array(b1);
5
+ for(let i =0;i<b0.length;++i) {
6
+ if(b0[i] === u8a[i]) {
7
+
8
+ } else {
9
+ throw(i)
10
+ }
11
+ }
12
+ }
13
+ var fj = (o)=> JSON.stringify(o);
14
+ const {encd} = require("../w");
15
+
16
+ const ENCD_UN = 0X5F;
17
+ const ENCD_NU = 0X30;
18
+
19
+
20
+ var f0 = (o)=> v8.serialize(o);
21
+ var f1 = (o)=> encd(o,15); //version default is 15 , using 13 just for test
22
+
23
+
24
+
25
+ var rgx = /[0-9a-z_]+/gi;
26
+
27
+
28
+ eq(f0(rgx),f1(rgx));
29
+
30
+
31
+ console.log(sync(100000,f0,rgx));
32
+ console.log(sync(100000,f1,rgx));
33
+
package/TEST/w-smi.js ADDED
@@ -0,0 +1,36 @@
1
+ const {sync} = require("nv-facutil-simple-test");
2
+ const v8 = require("v8");
3
+ const eq = (b0,b1)=> {
4
+ var u8a = new Uint8Array(b1);
5
+ for(let i =0;i<b0.length;++i) {
6
+ if(b0[i] === u8a[i]) {
7
+
8
+ } else {
9
+ throw(i)
10
+ }
11
+ }
12
+ }
13
+ var fj = (o)=> JSON.stringify(o);
14
+ const {encd} = require("../w");
15
+
16
+ const ENCD_UN = 0X5F;
17
+ const ENCD_NU = 0X30;
18
+
19
+ var f0 = (o)=> v8.serialize(o);
20
+ var f1 = (o)=> encd(o,15); //version default is 15 , using 13 just for test
21
+
22
+
23
+ var smis = [-(2**31),-1,0,1,2**31-1]
24
+
25
+ for(let smi of smis) {
26
+ eq(f0(smi),f1(smi))
27
+ }
28
+
29
+ for(let i = -500000;i<500000;++i) {
30
+ smis.push(i)
31
+ }
32
+
33
+ var ff0 = ()=>smis.forEach(smi=>f0(smi));
34
+ var ff1 = ()=>smis.forEach(smi=>f1(smi));
35
+ console.log(sync(1,ff0));
36
+ console.log(sync(1,ff1));
package/build.sh ADDED
@@ -0,0 +1 @@
1
+ nv_cli_build -m -g v8serde