diff options
Diffstat (limited to 'node_modules/core-js/internals/object-to-array.js')
| -rw-r--r-- | node_modules/core-js/internals/object-to-array.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/node_modules/core-js/internals/object-to-array.js b/node_modules/core-js/internals/object-to-array.js new file mode 100644 index 0000000..8e2409d --- /dev/null +++ b/node_modules/core-js/internals/object-to-array.js @@ -0,0 +1,32 @@ +var DESCRIPTORS = require('../internals/descriptors'); +var objectKeys = require('../internals/object-keys'); +var toIndexedObject = require('../internals/to-indexed-object'); +var propertyIsEnumerable = require('../internals/object-property-is-enumerable').f; + +// `Object.{ entries, values }` methods implementation +var createMethod = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) { + result.push(TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; +}; + +module.exports = { + // `Object.entries` method + // https://tc39.github.io/ecma262/#sec-object.entries + entries: createMethod(true), + // `Object.values` method + // https://tc39.github.io/ecma262/#sec-object.values + values: createMethod(false) +}; |
