Remove baseKeys and baseKeysIn.

This commit is contained in:
John-David Dalton
2017-04-16 15:57:02 -05:00
parent aa5e1b2fe0
commit 58e484f389
7 changed files with 19 additions and 84 deletions

View File

@@ -1,27 +0,0 @@
import isPrototype from './isPrototype.js'
/** Used to check objects for own properties. */
const hasOwnProperty = Object.prototype.hasOwnProperty
/**
* The base implementation of `keys` which doesn't treat sparse arrays as dense.
*
* @private
* @param {Object} object The object to query.
* @returns {Array} Returns the array of property names.
*/
function baseKeys(object) {
object = Object(object)
if (!isPrototype(object)) {
return Object.keys(object)
}
const result = []
for (const key in object) {
if (hasOwnProperty.call(object, key) && key != 'constructor') {
result.push(key)
}
}
return result
}
export default baseKeys

View File

@@ -1,34 +0,0 @@
import isObject from '../isObject.js'
import isPrototype from './isPrototype.js'
/** Used to check objects for own properties. */
const hasOwnProperty = Object.prototype.hasOwnProperty
/**
* The base implementation of `keysIn` which doesn't treat sparse arrays as dense.
*
* @private
* @param {Object} object The object to query.
* @returns {Array} Returns the array of property names.
*/
function baseKeysIn(object) {
const result = []
if (object == null) {
return result
}
if (!isObject(object)) {
for (const key in Object(object)) {
result.push(key)
}
return result
}
const isProto = isPrototype(object)
for (const key in object) {
if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
result.push(key)
}
}
return result
}
export default baseKeysIn

View File

@@ -1,5 +1,4 @@
import getSymbolsIn from './getSymbolsIn.js'
import baseKeysIn from './baseKeysIn.js'
/**
* Creates an array of own and inherited enumerable property names and symbols of `object`.
@@ -9,7 +8,10 @@ import baseKeysIn from './baseKeysIn.js'
* @returns {Array} Returns the array of property names and symbols.
*/
function getAllKeysIn(object) {
const result = baseKeysIn(object)
const result = []
for (const key in object) {
result.push(key)
}
if (!Array.isArray(object)) {
result.push(...getSymbolsIn(object))
}

View File

@@ -1,5 +1,4 @@
import eq from './eq.js'
import baseKeysIn from './.internal/baseKeysIn.js'
/** Used for built-in method references. */
const objectProto = Object.prototype
@@ -28,22 +27,18 @@ const hasOwnProperty = objectProto.hasOwnProperty
*/
function defaults(object, ...sources) {
object = Object(object)
let srcIndex = -1
const srcLength = sources.length
while (++srcIndex < srcLength) {
const source = sources[srcIndex]
const props = baseKeysIn(source)
let propsIndex = -1
const propsLength = props.length
while (++propsIndex < propsLength) {
const key = props[propsIndex]
const value = object[key]
if (value === undefined ||
(eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {
object[key] = source[key]
sources.forEach((source) => {
if (source != null) {
source = Object(source)
for (const key in source) {
const value = object[key]
if (value === undefined ||
(eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {
object[key] = source[key]
}
}
}
}
})
return object
}

View File

@@ -1,4 +1,3 @@
import baseKeys from './.internal/baseKeys.js'
import getTag from './.internal/getTag.js'
import isArguments from './isArguments.js'
import isArrayLike from './isArrayLike.js'
@@ -54,7 +53,7 @@ function isEmpty(value) {
return !value.size
}
if (isPrototype(value)) {
return !baseKeys(value).length
return !Object.keys(value).length
}
for (const key in value) {
if (hasOwnProperty.call(value, key)) {

View File

@@ -1,5 +1,4 @@
import arrayLikeKeys from './.internal/arrayLikeKeys.js'
import baseKeys from './.internal/baseKeys.js'
import isArrayLike from './isArrayLike.js'
/**
@@ -30,7 +29,9 @@ import isArrayLike from './isArrayLike.js'
* // => ['0', '1']
*/
function keys(object) {
return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object)
return isArrayLike(object)
? arrayLikeKeys(object)
: Object.keys(Object(object))
}
export default keys

View File

@@ -1,4 +1,3 @@
import baseKeys from './.internal/baseKeys.js'
import getTag from './.internal/getTag.js'
import isArrayLike from './isArrayLike.js'
import isString from './isString.js'
@@ -38,7 +37,7 @@ function size(collection) {
if (tag == mapTag || tag == setTag) {
return collection.size
}
return baseKeys(collection).length
return Object.keys(collection).length
}
export default size