From 7b35bb8c96aa9fdf590ce99a5ad62fb7ead857b8 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Fri, 8 Mar 2013 08:56:30 -0800 Subject: [PATCH] Correct `support.nonEnumArgs`. Former-commit-id: 69b09827404bae997846daa681d96d8c9264af78 --- build.js | 4 ++-- lodash.js | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/build.js b/build.js index fddb5edd4..9ed492535 100755 --- a/build.js +++ b/build.js @@ -2670,11 +2670,11 @@ } if (!/support\.(?:enumPrototypes|nonEnumShadows|ownLast)\b/.test(source)) { // remove code used to resolve unneeded `support` properties - source = source.replace(/^ *\(function[\s\S]+?\n(( *)var ctor *= *function[\s\S]+?\n *for.+\n)([\s\S]+?)}\(1\)\);\n/m, function(match, setup, indent, body) { + source = source.replace(/^ *\(function[\s\S]+?\n(( *)var ctor *= *function[\s\S]+?(?:\n *for.+)+\n)([\s\S]+?)}\(1\)\);\n/m, function(match, setup, indent, body) { if (/support\.spliceObjects\b/.test(match)) { return match.replace(setup, indent + "var object = { '0': 1, 'length': 1 };\n"); } else if (/support\.nonEnumArgs\b/.test(match)) { - return match.replace(setup, ''); + return match.replace(setup, indent + 'for (var prop in arguments) { }\n'); } return body.replace(RegExp('^' + indent, 'gm'), indent.slice(0, -2)); }); diff --git a/lodash.js b/lodash.js index 5fa1031af..b51df3660 100644 --- a/lodash.js +++ b/lodash.js @@ -262,6 +262,7 @@ ctor.prototype = { 'valueOf': 1, 'y': 1 }; for (var prop in new ctor) { props.push(prop); } + for (prop in arguments) { } /** * Detect if `arguments` objects are `Object` objects (all but Opera < 10.5). @@ -324,7 +325,7 @@ * @memberOf _.support * @type Boolean */ - support.nonEnumArgs = prop == '0'; + support.nonEnumArgs = prop != 0; /** * Detect if properties shadowing those on `Object.prototype` are non-enumerable.