1.0.4 • Published 2 months ago

nd-jscp v1.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
2 months ago

nd-jscp

  • only work in nodejs
  • expose v8::Object::Clone
  • its slightly faster than Array.prototype.slice(0) AND Object.assign({},)

install

  • npm install nd-jscp

splitted

usage

            const {jscp }   = require("nd-jscp");

example

	const {deepStrictEqual,notStrictEqual} = require("assert");

	function tst0(j) {
	    if(Array.isArray(j)) {
		return(j.slice())
	    } else {
		return(Object.assign({},j))        
	    }
	}


	const {sync} = require("nv-facutil-simple-test");

	var j = {a:100,b:[1,{x:2},3,true,false],c:null}

	console.log(jscp(j));
	notStrictEqual(jscp(j),j);
	deepStrictEqual(jscp(j),j);



	sync(10000000,tst0,j);
	/*
	> sync(10000000,tst0,j);
	{ rounds: 10000000, f: [Function: tst0], costed: 996.1195729970932 }
	> 
	*/

	sync(10000000,jscp,j);
	/*
	> sync(10000000,jscp,j);
	{
	  rounds: 10000000,
	  f: [Function (anonymous)],
	  costed: 673.1769989728928                  // slightly faster
	}
	> 
	*/

	var a = [{a:100,b:[1,{x:2},3,true,false],c:null},{a:100,b:[1,{x:2},3,true,false],c:null},{a:100,b:[1,{x:2},3,true,false],c:null}]
	console.log(jscp(a));
	notStrictEqual(jscp(a),a);
	deepStrictEqual(jscp(a),a);

METHODS

APIS

LICENSE

  • ISC
1.0.4

2 months ago

1.0.1

12 months ago