mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-01 23:57:49 +00:00
Remove Error enum fixes/code from builds that don't need them.
Former-commit-id: db060ff3571ef656709447970b62f4af753ea0cb
This commit is contained in:
22
build.js
22
build.js
@@ -1300,9 +1300,7 @@
|
||||
|
||||
// remove `support.nonEnumShadows` from `iteratorTemplate`
|
||||
source = source.replace(getIteratorTemplate(source), function(match) {
|
||||
return match
|
||||
.replace(/\s*\|\|\s*support\.nonEnumShadows/, '')
|
||||
.replace(/(?: *\/\/.*\n)* *["']( *)<% *if *\(support\.nonEnumShadows[\s\S]+?["']\1<% *} *%>.+/, '');
|
||||
return match.replace(/(?: *\/\/.*\n)* *["']( *)<% *if *\(support\.nonEnumShadows[\s\S]+?["']\1<% *} *%>.+/, '');
|
||||
});
|
||||
|
||||
return source;
|
||||
@@ -1826,10 +1824,9 @@
|
||||
dependencyMap.reduceRight = _.without(dependencyMap.reduceRight, 'isString');
|
||||
|
||||
if (!isMobile) {
|
||||
dependencyMap.isEmpty = _.without(dependencyMap.isEmpty, 'isArguments');
|
||||
dependencyMap.isEqual = _.without(dependencyMap.isEqual, 'isArguments');
|
||||
dependencyMap.isPlainObject = _.without(dependencyMap.isPlainObject, 'isArguments');
|
||||
dependencyMap.keys = _.without(dependencyMap.keys, 'isArguments');
|
||||
_.each(['isEmpty', 'isEqual', 'isPlainObject', 'keys'], function(methodName) {
|
||||
dependencyMap[methodName] = _.without(dependencyMap[methodName], 'isArguments');
|
||||
});
|
||||
}
|
||||
}
|
||||
if (isUnderscore) {
|
||||
@@ -3160,6 +3157,17 @@
|
||||
if (_.size(source.match(/\bfreeExports\b/g)) < 2) {
|
||||
source = removeVar(source, 'freeExports');
|
||||
}
|
||||
if (!/^ *support\.(?:skipErrorProps|nonEnumShadows) *=/m.test(source)) {
|
||||
source = removeVar(source, 'Error');
|
||||
source = removeVar(source, 'errorProto');
|
||||
source = removeFromCreateIterator(source, 'errorClass');
|
||||
source = removeFromCreateIterator(source, 'errorProto');
|
||||
|
||||
// remove 'Error' from the `contextProps` array
|
||||
source = source.replace(/^ *var contextProps *=[\s\S]+?;/m, function(match) {
|
||||
return match.replace(/'Error', */, '');
|
||||
});
|
||||
}
|
||||
|
||||
debugSource = cleanupSource(source);
|
||||
source = cleanupSource(source);
|
||||
|
||||
15
lodash.js
15
lodash.js
@@ -218,7 +218,6 @@
|
||||
ctorByClass[arrayClass] = Array;
|
||||
ctorByClass[boolClass] = Boolean;
|
||||
ctorByClass[dateClass] = Date;
|
||||
ctorByClass[errorClass] = Error;
|
||||
ctorByClass[funcClass] = Function;
|
||||
ctorByClass[objectClass] = Object;
|
||||
ctorByClass[numberClass] = Number;
|
||||
@@ -563,7 +562,7 @@
|
||||
' <% } %>' +
|
||||
|
||||
// avoid iterating over `Error.prototype` properties in older IE and Safari
|
||||
' <% if (support.enumErrorProps || support.nonEnumShadows) { %>\n' +
|
||||
' <% if (support.enumErrorProps) { %>\n' +
|
||||
' var skipErrorProps = iterable === errorProto || iterable instanceof Error;\n' +
|
||||
' <% } %>' +
|
||||
|
||||
@@ -825,16 +824,16 @@
|
||||
|
||||
// create the function factory
|
||||
var factory = Function(
|
||||
'ctorByClass, errorClass, errorProto, hasOwnProperty, isArguments, ' +
|
||||
'isArray, isString, keys, lodash, objectProto, objectTypes, nonEnumProps, ' +
|
||||
'stringClass, stringProto, toString',
|
||||
'errorClass, errorProto, hasOwnProperty, isArguments, isArray, isString, ' +
|
||||
'keys, lodash, objectProto, objectTypes, nonEnumProps, stringClass, ' +
|
||||
'stringProto, toString',
|
||||
'return function(' + args + ') {\n' + iteratorTemplate(data) + '\n}'
|
||||
);
|
||||
// return the compiled function
|
||||
return factory(
|
||||
ctorByClass, errorClass, errorProto, hasOwnProperty, isArguments,
|
||||
isArray, isString, keys, lodash, objectProto, objectTypes, nonEnumProps,
|
||||
stringClass, stringProto, toString
|
||||
errorClass, errorProto, hasOwnProperty, isArguments, isArray, isString,
|
||||
keys, lodash, objectProto, objectTypes, nonEnumProps, stringClass,
|
||||
stringProto, toString
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user