aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core.js7
-rw-r--r--test/unit/core.js9
2 files changed, 13 insertions, 3 deletions
diff --git a/src/core.js b/src/core.js
index 9312ee288..1b06913c3 100644
--- a/src/core.js
+++ b/src/core.js
@@ -610,8 +610,11 @@ jQuery.extend({
}
}
} else {
- for ( var value = object[0];
- i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {}
+ for ( ; i < length; ) {
+ if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
+ break;
+ }
+ }
}
}
diff --git a/test/unit/core.js b/test/unit/core.js
index 6ee8724de..39b7d275c 100644
--- a/test/unit/core.js
+++ b/test/unit/core.js
@@ -784,7 +784,7 @@ test("jQuery.extend(Object, Object)", function() {
});
test("jQuery.each(Object,Function)", function() {
- expect(13);
+ expect(14);
jQuery.each( [0,1,2], function(i, n){
equals( i, n, "Check array iteration" );
});
@@ -816,6 +816,13 @@ test("jQuery.each(Object,Function)", function() {
f[i] = 'baz';
});
equals( "baz", f.foo, "Loop over a function" );
+
+ var stylesheet_count = 0;
+ jQuery.each(document.styleSheets, function(i){
+ stylesheet_count++;
+ });
+ equals(stylesheet_count, 2, "should not throw an error in IE while looping over document.styleSheets and return proper amount");
+
});
test("jQuery.makeArray", function(){