diff --git a/lodash.js b/lodash.js index 1238359ff..69550026b 100644 --- a/lodash.js +++ b/lodash.js @@ -4399,16 +4399,18 @@ // avoid array-like object bugs with `Array#shift` and `Array#splice` // in Firefox < 10 and IE < 9 if (hasObjectSpliceBug) { - each(['shift', 'splice'], function(methodName) { - var func = lodash.prototype[methodName]; + each(['pop', 'shift', 'splice'], function(methodName) { + var func = arrayRef[methodName], + isSplice = methodName == 'splice'; + lodash.prototype[methodName] = function() { var value = this.__wrapped__, - result = func.apply(this, arguments); + result = func.apply(value, arguments); if (value.length === 0) { delete value[0]; } - return result; + return isSplice ? new lodash(result) : result; }; }); } diff --git a/test/underscore.html b/test/underscore.html index 62c954e4b..564c77a1f 100644 --- a/test/underscore.html +++ b/test/underscore.html @@ -34,8 +34,11 @@