diff --git a/lodash.js b/lodash.js index 3e82ce668..24f0e6bfd 100644 --- a/lodash.js +++ b/lodash.js @@ -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 diff --git a/test/index.html b/test/index.html index 8de250eb1..b17a37108 100644 --- a/test/index.html +++ b/test/index.html @@ -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; } diff --git a/test/test.js b/test/test.js index 6542d6fd3..fe161a24b 100644 --- a/test/test.js +++ b/test/test.js @@ -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);