Use Object.create in baseCreate (even if shimmed).

This commit is contained in:
Graeme Yeates
2016-02-15 19:01:38 -05:00
committed by John-David Dalton
parent 4643679d79
commit 607fe2a5f6
3 changed files with 4 additions and 22 deletions

View File

@@ -1315,6 +1315,7 @@
/** Built-in value references. */
var Buffer = moduleExports ? context.Buffer : undefined,
objectCreate = Object.create,
Reflect = context.Reflect,
Symbol = context.Symbol,
Uint8Array = context.Uint8Array,
@@ -2373,17 +2374,9 @@
* @param {Object} prototype The object to inherit from.
* @returns {Object} Returns the new object.
*/
var baseCreate = (function() {
function object() {}
return function(prototype) {
if (isObject(prototype)) {
object.prototype = prototype;
var result = new object;
object.prototype = undefined;
}
return result || {};
};
}());
function baseCreate(proto) {
return isObject(proto) ? objectCreate(proto) : {};
}
/**
* The base implementation of `_.delay` and `_.defer` which accepts an array

View File

@@ -82,9 +82,6 @@
funcProto._method = noop;
// Set bad shims.
setProperty(Object, '_create', Object.create);
setProperty(Object, 'create', noop);
setProperty(Object, '_getOwnPropertySymbols', Object.getOwnPropertySymbols);
setProperty(Object, 'getOwnPropertySymbols', undefined);
@@ -133,11 +130,6 @@
setProperty(objectProto, 'propertyIsEnumerable', objectProto._propertyIsEnumerable);
if (Object._create) {
Object.create = Object._create;
} else {
delete Object.create;
}
if (Object._getOwnPropertySymbols) {
Object.getOwnPropertySymbols = Object._getOwnPropertySymbols;
} else {
@@ -174,7 +166,6 @@
delete funcProto._method;
delete objectProto._propertyIsEnumerable;
delete Object._create;
delete Object._getOwnPropertySymbols;
}

View File

@@ -467,7 +467,6 @@
funcProto._method = noop;
// Set bad shims.
setProperty(Object, 'create', noop);
var _getOwnPropertySymbols = Object.getOwnPropertySymbols;
setProperty(Object, 'getOwnPropertySymbols', undefined);
@@ -520,7 +519,6 @@
root._ = oldDash;
// Restore built-in methods.
setProperty(Object, 'create', create);
setProperty(objectProto, 'propertyIsEnumerable', _propertyIsEnumerable);
setProperty(root, 'Buffer', Buffer);