File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -73,29 +73,60 @@ var Set = new Class({
7373
7474
7575 // For when you know this Set will be modified during the iteration
76- each : function ( callback )
76+ each : function ( callback , callbackScope )
7777 {
78+ var i ;
7879 var temp = this . entries . slice ( ) ;
80+ var len = temp . length ;
7981
80- for ( var i = 0 ; i < temp . length ; i ++ )
82+ if ( callbackScope )
8183 {
82- if ( callback ( temp [ i ] ) === false )
84+ for ( i = 0 ; i < len ; i ++ )
8385 {
84- break ;
86+ if ( callback . call ( callbackScope , temp [ i ] , i ) === false )
87+ {
88+ break ;
89+ }
90+ }
91+ }
92+ else
93+ {
94+ for ( i = 0 ; i < len ; i ++ )
95+ {
96+ if ( callback ( temp [ i ] , i ) === false )
97+ {
98+ break ;
99+ }
85100 }
86101 }
87102
88103 return this ;
89104 } ,
90105
91106 // For when you absolutely know this Set won't be modified during the iteration
92- iterate : function ( callback )
107+ iterate : function ( callback , callbackScope )
93108 {
94- for ( var i = 0 ; i < this . entries . length ; i ++ )
109+ var i ;
110+ var len = this . entries . length ;
111+
112+ if ( callbackScope )
113+ {
114+ for ( i = 0 ; i < len ; i ++ )
115+ {
116+ if ( callback . call ( callbackScope , this . entries [ i ] , i ) === false )
117+ {
118+ break ;
119+ }
120+ }
121+ }
122+ else
95123 {
96- if ( callback ( this . entries [ i ] , i ) === false )
124+ for ( i = 0 ; i < len ; i ++ )
97125 {
98- break ;
126+ if ( callback ( this . entries [ i ] , i ) === false )
127+ {
128+ break ;
129+ }
99130 }
100131 }
101132
You can’t perform that action at this time.
0 commit comments