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

View File

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

View File

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