mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-04 00:57:48 +00:00
Use WeakMaps if available to store function metadata.
This commit is contained in:
@@ -54,7 +54,7 @@
|
||||
var hasOwnProperty = objectProto.hasOwnProperty,
|
||||
fnToString = funcProto.toString,
|
||||
nativeString = fnToString.call(objectProto.toString),
|
||||
noop = function() {},
|
||||
noop = function() { },
|
||||
propertyIsEnumerable = objectProto.propertyIsEnumerable,
|
||||
reToString = /toString/g,
|
||||
whitespace = ' \t\x0B\f\xA0\ufeff\n\r\u2028\u2029\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000';
|
||||
@@ -154,6 +154,9 @@
|
||||
return Float64Array;
|
||||
}());
|
||||
}
|
||||
setProperty(window, '_WeakMap', window.WeakMap);
|
||||
setProperty(window, 'WeakMap', noop);
|
||||
|
||||
setProperty(window, '_parseInt', parseInt);
|
||||
setProperty(window, 'parseInt', (function(_parseInt) {
|
||||
var checkStr = whitespace + '08',
|
||||
@@ -235,6 +238,11 @@
|
||||
}
|
||||
setProperty(window, '_ArrayBuffer', undefined);
|
||||
|
||||
if (window._WeakMap) {
|
||||
WeakMap = _WeakMap;
|
||||
}
|
||||
setProperty(window, '_WeakMap', undefined);
|
||||
|
||||
setProperty(window, 'parseInt', window._parseInt);
|
||||
setProperty(window, '_parseInt', undefined);
|
||||
|
||||
|
||||
@@ -38,7 +38,8 @@
|
||||
slice = arrayProto.slice,
|
||||
system = root.system,
|
||||
toString = objectProto.toString,
|
||||
Uint8Array = root.Uint8Array;
|
||||
Uint8Array = root.Uint8Array,
|
||||
WeakMap = root.WeakMap;
|
||||
|
||||
/** The file path of the Lo-Dash file to test */
|
||||
var filePath = (function() {
|
||||
@@ -2179,7 +2180,7 @@
|
||||
|
||||
var object = {};
|
||||
|
||||
if (defineProperty && _.support.funcDecomp) {
|
||||
if ((defineProperty && !WeakMap) && _.support.funcDecomp) {
|
||||
_.callback(a, object);
|
||||
ok(EXPANDO in a);
|
||||
|
||||
@@ -2205,7 +2206,7 @@
|
||||
test('should not write metadata when `_.support.funcDecomp` is `false`', 1, function() {
|
||||
function a() {};
|
||||
|
||||
if (defineProperty && lodashBizarro) {
|
||||
if ((defineProperty && !WeakMap) && lodashBizarro) {
|
||||
lodashBizarro.callback(a, {});
|
||||
ok(!(EXPANDO in a));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user