diff --git a/src/index.js b/src/index.js index 08e2f46a083..d0db3c2a810 100644 --- a/src/index.js +++ b/src/index.js @@ -17,6 +17,7 @@ import './polyfill/math-log2.js'; import './polyfill/math-sign.js'; import './polyfill/number-isfinite.js'; import './polyfill/object-assign.js'; +import './polyfill/object-entries.js'; import './polyfill/object-values.js'; import './polyfill/pointer-lock.js'; import './polyfill/string.js'; diff --git a/src/polyfill/object-entries.js b/src/polyfill/object-entries.js new file mode 100644 index 00000000000..04ccce6a259 --- /dev/null +++ b/src/polyfill/object-entries.js @@ -0,0 +1,21 @@ +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries +// https://stackoverflow.com/questions/68654735/ie11-compatible-object-fromentries +Object.fromEntries = Object.fromEntries || function fromEntries(entries) { + if (!entries || !entries[Symbol.iterator]) { throw new Error('Object.fromEntries() requires a single iterable argument'); } + + var res = {}; + for(var i = 0; i < entries.length; i++) { + res[entries[i][0]] = entries[i][1]; + } + return res; +}; + +Object.entries = Object.entries || function(obj) { + var ownProps = Object.keys(obj), + i = ownProps.length, + resArray = new Array(i); // preallocate the Array + while (i--) + resArray[i] = [ownProps[i], obj[ownProps[i]]]; + + return resArray; +};