node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



Build Status

It's a c++ addon for node.js that does the most accurate cloning for node.js. It's also very fast in some cases (benchmarks inside).


Tested on node.js versions 0.8, 0.9, 0.10 and 0.11.13 (prior 0.11.x versions are not compatible).

You may be asked to install make and g++ as well.

npm install node-v8-clone


var clone = require('node-v8-clone').clone;
var a = { x: { y: {} } };
// deep clone 
var b = clone(a, true);
=== b // false 
a.x === b.x // false 
a.x.y === b.x.y // false 
// shallow clone 
var c = clone(a, false);
=== c // false 
a.x === c.x // true 
a.x.y === c.x.y // true 

Extended syntax:

var Cloner = require('node-v8-clone').Cloner;
var a = [1, [2, 3, 4], 5];
// create a cloner instance for deep cloning optimized for arrays. 
var c = new Cloner(true, { 'Array': Cloner.deep_array });
var b = c.clone(a);
=== b // false 
a[1] === b[1] // false 

Benchmark results

Running tests

For running tests you'll need to install dev dependencies at first (run in node-v8-clone dir):

$ npm install

To run tests for node-v8-clone run:

$ npm test

To run tests for 3rdparty modules run:

$ npm run-script benchmark-prepare
$ npm run-script test-3rdparty

Test results are available here.

Also you may want to check the module's page at Travis CI.