mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-29 06:27:49 +00:00
Add built-in Date.now fork back.
This commit is contained in:
@@ -751,6 +751,7 @@
|
||||
nativeKeys = getNative(Object, 'keys'),
|
||||
nativeMax = Math.max,
|
||||
nativeMin = Math.min,
|
||||
nativeNow = getNative(Date, 'now'),
|
||||
nativeParseInt = context.parseInt,
|
||||
nativeRandom = Math.random;
|
||||
|
||||
@@ -7280,9 +7281,9 @@
|
||||
* }, _.now());
|
||||
* // => logs the number of milliseconds it took for the deferred function to be invoked
|
||||
*/
|
||||
function now() {
|
||||
var now = nativeNow || function() {
|
||||
return new Date().getTime();
|
||||
}
|
||||
};
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
@@ -85,6 +85,9 @@
|
||||
setProperty(Array, '_isArray', Array.isArray);
|
||||
setProperty(Array, 'isArray', noop);
|
||||
|
||||
setProperty(Date, '_now', Date.now);
|
||||
setProperty(Date, 'now', noop);
|
||||
|
||||
setProperty(Object, '_keys', Object.keys);
|
||||
setProperty(Object, 'keys', noop);
|
||||
|
||||
@@ -124,6 +127,11 @@
|
||||
} else {
|
||||
delete Array.isArray;
|
||||
}
|
||||
if (Date._now) {
|
||||
setProperty(Date, 'now', Date._now);
|
||||
} else {
|
||||
delete Date.now;
|
||||
}
|
||||
if (Object._keys) {
|
||||
setProperty(Object, 'keys', Object._keys);
|
||||
} else {
|
||||
@@ -148,6 +156,7 @@
|
||||
setProperty(objectProto, 'propertyIsEnumerable', objectProto._propertyIsEnumerable);
|
||||
|
||||
delete Array._isArray;
|
||||
delete Date._now;
|
||||
delete Object._keys;
|
||||
delete funcProto._method;
|
||||
delete objectProto._propertyIsEnumerable;
|
||||
|
||||
15
test/test.js
15
test/test.js
@@ -419,6 +419,9 @@
|
||||
var _isArray = Array.isArray;
|
||||
setProperty(Array, 'isArray', _.noop);
|
||||
|
||||
var _now = Date.now;
|
||||
setProperty(Date, 'now', _.noop);
|
||||
|
||||
var _keys = Object.keys;
|
||||
setProperty(Object, 'keys', _.noop);
|
||||
|
||||
@@ -447,6 +450,7 @@
|
||||
|
||||
// Restore built-in methods.
|
||||
setProperty(Array, 'isArray', _isArray);
|
||||
setProperty(Date, 'now', _now);
|
||||
setProperty(Object, 'keys', _keys);
|
||||
|
||||
setProperty(objectProto, 'propertyIsEnumerable', _propertyIsEnumerable);
|
||||
@@ -626,7 +630,7 @@
|
||||
}
|
||||
});
|
||||
|
||||
test('should avoid overwritten native methods', 6, function() {
|
||||
test('should avoid overwritten native methods', 7, function() {
|
||||
function Foo() {}
|
||||
|
||||
function message(lodashMethod, nativeMethod) {
|
||||
@@ -645,6 +649,13 @@
|
||||
}
|
||||
deepEqual(actual, [true, false], message('_.isArray', 'Array.isArray'));
|
||||
|
||||
try {
|
||||
actual = lodashBizarro.now();
|
||||
} catch(e) {
|
||||
actual = null;
|
||||
}
|
||||
ok(typeof actual == 'number', message('_.now', 'Date.now'));
|
||||
|
||||
try {
|
||||
actual = [lodashBizarro.keys(object), lodashBizarro.keys()];
|
||||
} catch(e) {
|
||||
@@ -680,7 +691,7 @@
|
||||
}
|
||||
}
|
||||
else {
|
||||
skipTest(6);
|
||||
skipTest(7);
|
||||
}
|
||||
});
|
||||
}());
|
||||
|
||||
Reference in New Issue
Block a user