Skip to content

Commit

Permalink
polyfill Object.assign for IE
Browse files Browse the repository at this point in the history
this function is quite useful and it's used by sunburst
I think it's worth the bloat here

for #1507
  • Loading branch information
gordonwoodhull committed Dec 7, 2018
1 parent b6bb3b2 commit 1177172
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions src/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -444,3 +444,33 @@ dc.utils.arraysIdentical = function (a, b) {
}
return true;
};

if (typeof Object.assign !== 'function') {
// Must be writable: true, enumerable: false, configurable: true
Object.defineProperty(Object, 'assign', {
value: function assign (target, varArgs) { // .length of function is 2
'use strict';
if (target === null) { // TypeError if undefined or null
throw new TypeError('Cannot convert undefined or null to object');
}

var to = Object(target);

for (var index = 1; index < arguments.length; index++) {
var nextSource = arguments[index];

if (nextSource !== null) { // Skip over if undefined or null
for (var nextKey in nextSource) {
// Avoid bugs when hasOwnProperty is shadowed
if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
to[nextKey] = nextSource[nextKey];
}
}
}
}
return to;
},
writable: true,
configurable: true
});
}

0 comments on commit 1177172

Please sign in to comment.