mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-10 19:07:49 +00:00
Remove Object.create use.
This commit is contained in:
31
lodash.js
31
lodash.js
@@ -950,8 +950,7 @@
|
|||||||
}());
|
}());
|
||||||
|
|
||||||
/* Native method references for those with the same name as other `lodash` methods. */
|
/* Native method references for those with the same name as other `lodash` methods. */
|
||||||
var nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate,
|
var nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray,
|
||||||
nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray,
|
|
||||||
nativeIsFinite = context.isFinite,
|
nativeIsFinite = context.isFinite,
|
||||||
nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys,
|
nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys,
|
||||||
nativeMax = Math.max,
|
nativeMax = Math.max,
|
||||||
@@ -1919,23 +1918,17 @@
|
|||||||
* @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.
|
||||||
*/
|
*/
|
||||||
function baseCreate(prototype) {
|
var baseCreate = (function() {
|
||||||
return isObject(prototype) ? nativeCreate(prototype) : {};
|
function Object() {}
|
||||||
}
|
return function(prototype) {
|
||||||
// Fallback for environments without `Object.create`.
|
if (isObject(prototype)) {
|
||||||
if (!nativeCreate) {
|
Object.prototype = prototype;
|
||||||
baseCreate = (function() {
|
var result = new Object;
|
||||||
function Object() {}
|
Object.prototype = null;
|
||||||
return function(prototype) {
|
}
|
||||||
if (isObject(prototype)) {
|
return result || context.Object();
|
||||||
Object.prototype = prototype;
|
};
|
||||||
var result = new Object;
|
}());
|
||||||
Object.prototype = null;
|
|
||||||
}
|
|
||||||
return result || context.Object();
|
|
||||||
};
|
|
||||||
}());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The base implementation of `_.delay` and `_.defer` which accepts an index
|
* The base implementation of `_.delay` and `_.defer` which accepts an index
|
||||||
|
|||||||
@@ -89,9 +89,6 @@
|
|||||||
setProperty(Date, '_now', Date.now);
|
setProperty(Date, '_now', Date.now);
|
||||||
setProperty(Date, 'now', noop);
|
setProperty(Date, 'now', noop);
|
||||||
|
|
||||||
setProperty(Object, '_create', Object.create);
|
|
||||||
setProperty(Object, 'create', noop);
|
|
||||||
|
|
||||||
setProperty(Object, '_getPrototypeOf', Object.getPrototypeOf);
|
setProperty(Object, '_getPrototypeOf', Object.getPrototypeOf);
|
||||||
setProperty(Object, 'getPrototypeOf', noop);
|
setProperty(Object, 'getPrototypeOf', noop);
|
||||||
|
|
||||||
@@ -197,11 +194,6 @@
|
|||||||
} else {
|
} else {
|
||||||
delete Date.now;
|
delete Date.now;
|
||||||
}
|
}
|
||||||
if (Object._create) {
|
|
||||||
setProperty(Object, 'create', Object._create);
|
|
||||||
} else {
|
|
||||||
delete Object.create;
|
|
||||||
}
|
|
||||||
if (Object._getPrototypeOf) {
|
if (Object._getPrototypeOf) {
|
||||||
setProperty(Object, 'getPrototypeOf', Object._getPrototypeOf);
|
setProperty(Object, 'getPrototypeOf', Object._getPrototypeOf);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
16
test/test.js
16
test/test.js
@@ -428,9 +428,6 @@
|
|||||||
var _now = Date.now;
|
var _now = Date.now;
|
||||||
setProperty(Date, 'now', _.noop);
|
setProperty(Date, 'now', _.noop);
|
||||||
|
|
||||||
var _create = create;
|
|
||||||
setProperty(Object, 'create', _.noop);
|
|
||||||
|
|
||||||
var _getPrototypeOf = Object.getPrototypeOf;
|
var _getPrototypeOf = Object.getPrototypeOf;
|
||||||
setProperty(Object, 'getPrototypeOf', _.noop);
|
setProperty(Object, 'getPrototypeOf', _.noop);
|
||||||
|
|
||||||
@@ -523,7 +520,6 @@
|
|||||||
// Restore native methods.
|
// Restore native methods.
|
||||||
setProperty(Array, 'isArray', _isArray);
|
setProperty(Array, 'isArray', _isArray);
|
||||||
setProperty(Date, 'now', _now);
|
setProperty(Date, 'now', _now);
|
||||||
setProperty(Object, 'create', _create);
|
|
||||||
setProperty(Object, 'getPrototypeOf', _getPrototypeOf);
|
setProperty(Object, 'getPrototypeOf', _getPrototypeOf);
|
||||||
setProperty(Object, 'keys', _keys);
|
setProperty(Object, 'keys', _keys);
|
||||||
|
|
||||||
@@ -672,7 +668,7 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should avoid overwritten native methods', 14, function() {
|
test('should avoid overwritten native methods', 12, function() {
|
||||||
function Foo() {}
|
function Foo() {}
|
||||||
|
|
||||||
function message(lodashMethod, nativeMethod) {
|
function message(lodashMethod, nativeMethod) {
|
||||||
@@ -698,14 +694,6 @@
|
|||||||
}
|
}
|
||||||
ok(typeof actual == 'number', message('_.now', 'Date.now'));
|
ok(typeof actual == 'number', message('_.now', 'Date.now'));
|
||||||
|
|
||||||
try {
|
|
||||||
actual = [lodashBizarro.create(Foo.prototype, object), lodashBizarro.create()];
|
|
||||||
} catch(e) {
|
|
||||||
actual = null;
|
|
||||||
}
|
|
||||||
ok(actual[0] instanceof Foo, message('_.create', 'Object.create'));
|
|
||||||
deepEqual(actual[1], {}, message('_.create', 'Object.create'));
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
actual = [lodashBizarro.isPlainObject({}), lodashBizarro.isPlainObject([])];
|
actual = [lodashBizarro.isPlainObject({}), lodashBizarro.isPlainObject([])];
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
@@ -774,7 +762,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
skipTest(14);
|
skipTest(12);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}());
|
}());
|
||||||
|
|||||||
Reference in New Issue
Block a user