| Index: src/array.js | 
| diff --git a/src/array.js b/src/array.js | 
| index 60cf3f0c5270e6fca1f7856a73547add6bbab35c..e6c13d9547c5f114480706f46ebd2a6d3c2bdd69 100644 | 
| --- a/src/array.js | 
| +++ b/src/array.js | 
| @@ -999,7 +999,7 @@ function ArrayFilter(f, receiver) { | 
| } | 
| // Pull out the length so that modifications to the length in the | 
| // loop will not affect the looping. | 
| -  var length = this.length; | 
| +  var length = ToUint32(this.length); | 
| var result = []; | 
| var result_length = 0; | 
| for (var i = 0; i < length; i++) { | 
| @@ -1236,7 +1236,7 @@ function ArrayReduce(callback, current) { | 
| } | 
| // Pull out the length so that modifications to the length in the | 
| // loop will not affect the looping. | 
| -  var length = this.length; | 
| +  var length = ToUint32(this.length); | 
| var i = 0; | 
|  | 
| find_initial: if (%_ArgumentsLength() < 2) { | 
| @@ -1268,7 +1268,7 @@ function ArrayReduceRight(callback, current) { | 
| if (!IS_FUNCTION(callback)) { | 
| throw MakeTypeError('called_non_callable', [callback]); | 
| } | 
| -  var i = this.length - 1; | 
| +  var i = ToUint32(this.length) - 1; | 
|  | 
| find_initial: if (%_ArgumentsLength() < 2) { | 
| for (; i >= 0; i--) { | 
|  |