Object.assign shim
An Object.assign shim for ES5-compliant environments (browsers/node.js/io.js). Is applied only when needed with a few exceptions for non-compliant implementations.
Takes a minimum of 2 arguments: target
and source
.
Takes a variable sized list of source arguments - at least 1, as many as you want.
Throws a TypeError if the target
argument is null
or undefined
.
Most common usage:
In node/io.js:
;
In a browser:
Example
// Multiple sources!var target = a: true ;var source1 = b: true ;var source2 = c: true ;var sourceN = n: true ; var expected = a: true b: true c: true n: true; ;var assert = ; Object;assert; // AWESOME!
;var assert = ;var target = a: true b: true c: true;var source1 = c: false d: false;var sourceN = e: false; var assigned = Object;assert; // returns the target objectassert;
var assert = ;/* when Object.assign is not present */delete Objectassign;;assert; var target = a: true b: true c: true;var source = c: false d: false e: false; var assigned = ;assert;
var assert = ;/* when Object.assign is present */assert;var builtinAssign = Objectassign;;assert;
Tests
Simply clone the repo, npm install
, and run npm test