diff options
author | Alfredo Sumaran <alfredo@gitlab.com> | 2016-12-14 19:40:45 +0300 |
---|---|---|
committer | Alfredo Sumaran <alfredo@gitlab.com> | 2016-12-14 19:45:45 +0300 |
commit | f796840fd33d7df2c1de8f965596b5486b1fbf24 (patch) | |
tree | f2ae8758440af6ba92313e0b1be21192a8fc7787 /app/assets/javascripts/extensions | |
parent | 1fca9658ce3f136ec38f6550d5cf4d80a8773731 (diff) |
Add Object.assign polyfill
Diffstat (limited to 'app/assets/javascripts/extensions')
-rw-r--r-- | app/assets/javascripts/extensions/object.js.es6 | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/app/assets/javascripts/extensions/object.js.es6 b/app/assets/javascripts/extensions/object.js.es6 new file mode 100644 index 00000000000..f8cdedd507b --- /dev/null +++ b/app/assets/javascripts/extensions/object.js.es6 @@ -0,0 +1,27 @@ +/* eslint-disable */ + +// Taken from https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill +if (typeof Object.assign != 'function') { + Object.assign = function (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; + }; +} |