From 117717219133f59f48e32261ae48e026ffa04792 Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Fri, 7 Dec 2018 12:52:14 -0500 Subject: [PATCH] polyfill Object.assign for IE this function is quite useful and it's used by sunburst I think it's worth the bloat here for #1507 --- src/utils.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/utils.js b/src/utils.js index 73da0643f..51c1162e3 100644 --- a/src/utils.js +++ b/src/utils.js @@ -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 + }); +}