Skip to content

Commit

Permalink
add polyfill for Object.assign as it is not supported by IE11 (#2710)
Browse files Browse the repository at this point in the history
  • Loading branch information
panthony authored and kt3k committed Oct 2, 2019
1 parent 391897d commit eea02da
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions src/polyfill.js
Original file line number Diff line number Diff line change
Expand Up @@ -1612,4 +1612,36 @@ if (!String.prototype.padEnd) {
};
}

// Object.assign polyfill for IE11
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill
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 || target === undefined) {
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 && nextSource !== undefined) {
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
});
}

/* jshint ignore:end */

0 comments on commit eea02da

Please sign in to comment.