mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-01 23:57:49 +00:00
Make lodash work with modules by avoiding circular dependencies.
Former-commit-id: 57161fd81b837db22fcfe1d318e220f6ca4b1e21
This commit is contained in:
@@ -321,7 +321,7 @@
|
||||
|
||||
// minify internal properties
|
||||
(function() {
|
||||
var methods = [
|
||||
var methodNames = [
|
||||
'cacheIndexOf',
|
||||
'cachePush',
|
||||
'compareAscending',
|
||||
@@ -339,7 +339,12 @@
|
||||
'value'
|
||||
];
|
||||
|
||||
var snippets = source.match(RegExp('^( *)(?:var|function) +(?:' + methods.join('|') + ')\\b[\\s\\S]+?\\n\\1}', 'gm'));
|
||||
// minify `iteratorObject.keys`
|
||||
source.replace(/\b(iteratorObject(?:\.|\['))keys\b/g, function(match, prelude) {
|
||||
return prelude + minNames[iteratorOptions.length + props.length];
|
||||
});
|
||||
|
||||
var snippets = source.match(RegExp('^( *)(?:var|function) +(?:' + methodNames.join('|') + ')\\b[\\s\\S]+?\\n\\1}', 'gm'));
|
||||
if (!snippets) {
|
||||
return;
|
||||
}
|
||||
|
||||
18
lodash.js
18
lodash.js
@@ -21,6 +21,9 @@
|
||||
/** Used internally to indicate various things */
|
||||
var indicatorObject = {};
|
||||
|
||||
/** Used to avoid reference errors in `createIterator` */
|
||||
var iteratorObject = {};
|
||||
|
||||
/** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */
|
||||
var keyPrefix = +new Date + '';
|
||||
|
||||
@@ -663,7 +666,7 @@
|
||||
* @memberOf _.support
|
||||
* @type Boolean
|
||||
*/
|
||||
support.argsClass = isArguments(arguments);
|
||||
support.argsClass = toString.call(arguments) == argsClass;
|
||||
|
||||
/**
|
||||
* Detect if `name` or `message` properties of `Error.prototype` are
|
||||
@@ -1044,7 +1047,8 @@
|
||||
* @returns {Function} Returns the compiled function.
|
||||
*/
|
||||
function createIterator() {
|
||||
var data = getObject();
|
||||
var data = getObject(),
|
||||
keys = iteratorObject.keys;
|
||||
|
||||
// data properties
|
||||
data.shadowedProps = shadowedProps;
|
||||
@@ -1067,8 +1071,8 @@
|
||||
|
||||
// create the function factory
|
||||
var factory = Function(
|
||||
'errorClass, errorProto, hasOwnProperty, isArguments, isArray, ' +
|
||||
'isString, keys, lodash, objectProto, objectTypes, nonEnumProps, ' +
|
||||
'errorClass, errorProto, hasOwnProperty, indicatorObject, isArguments, ' +
|
||||
'isArray, isString, keys, lodash, objectProto, objectTypes, nonEnumProps, ' +
|
||||
'stringClass, stringProto, toString',
|
||||
'return function(' + args + ') {\n' + iteratorTemplate(data) + '\n}'
|
||||
);
|
||||
@@ -1077,8 +1081,8 @@
|
||||
|
||||
// return the compiled function
|
||||
return factory(
|
||||
errorClass, errorProto, hasOwnProperty, isArguments, isArray,
|
||||
isString, keys, lodash, objectProto, objectTypes, nonEnumProps,
|
||||
errorClass, errorProto, hasOwnProperty, indicatorObject, isArguments,
|
||||
isArray, isString, keys, lodash, objectProto, objectTypes, nonEnumProps,
|
||||
stringClass, stringProto, toString
|
||||
);
|
||||
}
|
||||
@@ -1280,7 +1284,7 @@
|
||||
* _.keys({ 'one': 1, 'two': 2, 'three': 3 });
|
||||
* // => ['one', 'two', 'three'] (order is not guaranteed)
|
||||
*/
|
||||
var keys = !nativeKeys ? shimKeys : function(object) {
|
||||
var keys = iteratorObject.keys = !nativeKeys ? shimKeys : function(object) {
|
||||
if (!isObject(object)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user