diff options
author | Jordan Boesch <jboesch26@gmail.com> | 2011-03-30 11:17:48 -0600 |
---|---|---|
committer | Jordan Boesch <jboesch26@gmail.com> | 2011-03-30 11:17:48 -0600 |
commit | 3296116041ea0eb89e123c24cf092e34ccb3f380 (patch) | |
tree | 11d0b6e06f4413271992ad55810b0bf9b9e7896f | |
parent | 2555a5a2322f78fc1cfc8a0f2b55580fc79d2f32 (diff) | |
download | jquery-3296116041ea0eb89e123c24cf092e34ccb3f380.tar.gz jquery-3296116041ea0eb89e123c24cf092e34ccb3f380.zip |
Bug 4366; fixing $.each(document.styleSheets) from throwing errors in IE
-rw-r--r-- | src/core.js | 7 | ||||
-rw-r--r-- | test/unit/core.js | 9 |
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(){ |