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