Reviewers: Kasper Lund, Description: Fix conform test.
Please review this at http://codereview.chromium.org/1217007 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/conversions.cc M test/mjsunit/str-to-num.js Index: test/mjsunit/str-to-num.js =================================================================== --- test/mjsunit/str-to-num.js (revision 4244) +++ test/mjsunit/str-to-num.js (working copy) @@ -44,6 +44,7 @@ // assertEquals(, toNumber()); +assertEquals(1, 1.); assertEquals(123, toNumber(" 123")); assertEquals(123, toNumber("\n123")); Index: src/conversions.cc =================================================================== --- src/conversions.cc (revision 4244) +++ src/conversions.cc (working copy) @@ -295,7 +295,7 @@ || (*current >= 'a' && *current <= 'f') || (*current >= 'A' && *current <= 'F')) { if (significant_digits <= max_significant_digits) { - buffer[buffer_pos++] = *current; + buffer[buffer_pos++] = static_cast<char>(*current); significant_digits++; } else { insignificant_digits++; @@ -425,7 +425,7 @@ while (*current >= '0' && *current <= '9') { if (significant_digits < max_significant_digits) { ASSERT(buffer_pos < buffer_size); - buffer[buffer_pos++] = *current; + buffer[buffer_pos++] = static_cast<char>(*current); significant_digits++; // Will later check if it's an octal in the buffer. } else { @@ -439,7 +439,6 @@ if (*current == '.') { ASSERT(buffer_pos < buffer_size); - buffer[buffer_pos++] = '.'; ++current; if (current == end) { if (significant_digits == 0 && !leading_zero) { @@ -448,6 +447,7 @@ goto parsing_done; } } + buffer[buffer_pos++] = '.'; if (significant_digits == 0) { octal = false; @@ -464,7 +464,7 @@ while (*current >= '0' && *current <= '9') { if (significant_digits < max_significant_digits) { ASSERT(buffer_pos < buffer_size); - buffer[buffer_pos++] = *current; + buffer[buffer_pos++] = static_cast<char>(*current); significant_digits++; } else { // Ignore insignificant digits in the fractional part. @@ -496,7 +496,7 @@ } char sign = '+'; if (*current == '+' || *current == '-') { - sign = *current; + sign = static_cast<char>(*current); ++current; if (current == end) { if (allow_trailing_junk) { -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev To unsubscribe from this group, send email to v8-dev+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.
