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 @@