Revision: 8661
Author: [email protected]
Date: Fri Jul 15 04:07:18 2011
Log: Fixed bug in array filter and reduce functions.
[email protected]
BUG=v8:1559
TEST=test262
Review URL: http://codereview.chromium.org/7368005
http://code.google.com/p/v8/source/detail?r=8661
Modified:
/branches/bleeding_edge/src/array.js
/branches/bleeding_edge/test/test262/test262.status
=======================================
--- /branches/bleeding_edge/src/array.js Thu Jun 30 05:29:19 2011
+++ /branches/bleeding_edge/src/array.js Fri Jul 15 04:07:18 2011
@@ -999,7 +999,7 @@
}
// 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 @@
}
// 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 @@
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--) {
=======================================
--- /branches/bleeding_edge/test/test262/test262.status Mon Jul 11 05:00:28
2011
+++ /branches/bleeding_edge/test/test262/test262.status Fri Jul 15 04:07:18
2011
@@ -1138,33 +1138,6 @@
15.4.4.20-1-5: FAIL
# Bug? Array.prototype.filter applied to string primitive
15.4.4.20-1-7: FAIL
-# Bug? Array.prototype.filter - value of 'length' is a number (value is
-# negative)
-15.4.4.20-3-7: FAIL
-# Bug? Array.prototype.filter - value of 'length' is a number (value is
-# Infinity)
-# V8 timeout
-15.4.4.20-3-8: SKIP
-# Bug? Array.prototype.filter - 'length' is a string containing a negative
-# number
-15.4.4.20-3-12: FAIL
-# Bug? Array.prototype.filter - 'length' is a string containing a decimal
number
-15.4.4.20-3-13: FAIL
-# Bug? Array.prototype.filter - 'length' is a string containing +/-Infinity
-15.4.4.20-3-14: SKIP
-# Bug? Array.prototype.filter - value of 'length' is a positive
non-integer,
-# ensure truncation occurs in the proper direction
-# V8 timeout
-15.4.4.20-3-24: FAIL
-# Bug? Array.prototype.filter - value of 'length' is a negative
non-integer,
-# ensure truncation occurs in the proper direction
-15.4.4.20-3-25: FAIL
-# Bug? Array.prototype.filter - value of 'length' is boundary value (2^32)
-# V8 timeout
-15.4.4.20-3-28: SKIP
-# Bug? Array.prototype.filter - value of 'length' is boundary value (2^32
+ 1)
-# V8 timeout
-15.4.4.20-3-29: SKIP
# Bug? Array.prototype.filter - side effects produced by step 2 are
visible when
# an exception occurs
15.4.4.20-4-8: FAIL
@@ -1220,33 +1193,6 @@
15.4.4.21-1-5: FAIL
# Bug? Array.prototype.reduce applied to string primitive
15.4.4.21-1-7: FAIL
-# Bug? Array.prototype.reduce - value of 'length' is a number (value is
-# negative)
-15.4.4.21-3-7: FAIL
-# Bug? Array.prototype.reduce - value of 'length' is a number (value is
-# Infinity)
-# V8 timeout.
-15.4.4.21-3-8: SKIP
-# Bug? Array.prototype.reduce - 'length' is a string containing a negative
-# number
-15.4.4.21-3-12: FAIL
-# Bug? Array.prototype.reduce - 'length' is a string containing a decimal
number
-15.4.4.21-3-13: FAIL
-# Bug? Array.prototype.reduce - 'length' is a string containing +/-Infinity
-# V8 timeout.
-15.4.4.21-3-14: SKIP
-# Bug? Array.prototype.reduce - value of 'length' is a positive
non-integer,
-# ensure truncation occurs in the proper direction
-15.4.4.21-3-24: FAIL
-# Bug? Array.prototype.reduce - value of 'length' is a negative
non-integer,
-# ensure truncation occurs in the proper direction
-15.4.4.21-3-25: FAIL
-# Bug? Array.prototype.reduce - value of 'length' is boundary value (2^32)
-# V8 timeout.
-15.4.4.21-3-28: SKIP
-# Bug? Array.prototype.reduce - value of 'length' is boundary value (2^32
+ 1)
-# V8 timeout.
-15.4.4.21-3-29: SKIP
# Bug? Array.prototype.reduce - side effects produced by step 2 are
visible when
# an exception occurs
15.4.4.21-4-8: FAIL
@@ -1274,36 +1220,6 @@
15.4.4.22-1-5: FAIL
# Bug? Array.prototype.reduceRight applied to string primitive
15.4.4.22-1-7: FAIL
-# Bug? Array.prototype.reduceRight - value of 'length' is a number (value
is
-# negative)
-15.4.4.22-3-7: FAIL
-# Bug? Array.prototype.reduceRight - value of 'length' is a number (value
is
-# Infinity)
-# V8 timeout.
-15.4.4.22-3-8: SKIP
-# Bug? Array.prototype.reduceRight - value of 'length' is a string
containing a
-# negative number
-15.4.4.22-3-12: FAIL
-# Bug? Array.prototype.reduceRight - value of 'length' is a string
containing a
-# decimal number
-15.4.4.22-3-13: FAIL
-# Bug? Array.prototype.reduceRight - value of 'length' is a string
containing
-# +/-Infinity
-# V8 timeout.
-15.4.4.22-3-14: SKIP
-# Bug? Array.prototype.reduceRight - value of 'length' is a positive
-# non-integer, ensure truncation occurs in the proper direction
-15.4.4.22-3-24: FAIL
-# Bug? Array.prototype.reduceRight - value of 'length' is a negative
-# non-integer, ensure truncation occurs in the proper direction
-15.4.4.22-3-25: FAIL
-# Bug? Array.prototype.reduceRight - value of 'length' is boundary value
(2^32)
-# V8 timeout.
-15.4.4.22-3-28: SKIP
-# Bug? Array.prototype.reduceRight - value of 'length' is boundary value
(2^32 +
-# 1)
-# V8 timeout.
-15.4.4.22-3-29: SKIP
# Bug? Array.prototype.reduceRight - side effects produced by step 2 are
visible
# when an exception occurs
15.4.4.22-4-8: FAIL
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev