Reviewers: Mads Ager,

Description:
Merge bleeding_edge revision 2985 to trunk

Please review this at http://codereview.chromium.org/242072

SVN Base: http://v8.googlecode.com/svn/trunk/

Affected files:
   M     src/ia32/ic-ia32.cc
   M     src/version.cc
   M     test/cctest/test-api.cc


Index: test/cctest/test-api.cc
===================================================================
--- test/cctest/test-api.cc     (revision 2985)
+++ test/cctest/test-api.cc     (working copy)
@@ -7729,8 +7729,44 @@
    CHECK_EQ(1503, result->Int32Value());
    result = CompileRun("pixels[1]");
    CHECK_EQ(1, result->Int32Value());
+
    result = CompileRun("var sum = 0;"
                        "for (var i = 0; i < 8; i++) {"
+                      "  sum += pixels[i] = pixels[i] = -i;"
+                      "}"
+                      "sum;");
+  CHECK_EQ(-28, result->Int32Value());
+
+  result = CompileRun("var sum = 0;"
+                      "for (var i = 0; i < 8; i++) {"
+                      "  sum += pixels[i] = pixels[i] = 0;"
+                      "}"
+                      "sum;");
+  CHECK_EQ(0, result->Int32Value());
+
+  result = CompileRun("var sum = 0;"
+                      "for (var i = 0; i < 8; i++) {"
+                      "  sum += pixels[i] = pixels[i] = 255;"
+                      "}"
+                      "sum;");
+  CHECK_EQ(8 * 255, result->Int32Value());
+
+  result = CompileRun("var sum = 0;"
+                      "for (var i = 0; i < 8; i++) {"
+                      "  sum += pixels[i] = pixels[i] = 256 + i;"
+                      "}"
+                      "sum;");
+  CHECK_EQ(2076, result->Int32Value());
+
+  result = CompileRun("var sum = 0;"
+                      "for (var i = 0; i < 8; i++) {"
+                      "  sum += pixels[i] = pixels[i] = i;"
+                      "}"
+                      "sum;");
+  CHECK_EQ(28, result->Int32Value());
+
+  result = CompileRun("var sum = 0;"
+                      "for (var i = 0; i < 8; i++) {"
                        "  sum += pixels[i];"
                        "}"
                        "sum;");
@@ -7839,6 +7875,9 @@
    CHECK_EQ(77, v8::Object::Cast(*result)->Get(v8_str("0"))->Int32Value());
    CHECK_EQ(23, v8::Object::Cast(*result)->Get(v8_str("1"))->Int32Value());

+  result = CompileRun("pixels[1] = 23;");
+  CHECK_EQ(23, result->Int32Value());
+
    free(pixel_data);
  }

Index: src/ia32/ic-ia32.cc
===================================================================
--- src/ia32/ic-ia32.cc (revision 2985)
+++ src/ia32/ic-ia32.cc (working copy)
@@ -421,6 +421,7 @@
    __ sar(ebx, kSmiTagSize);  // Untag the index.
    __ cmp(ebx, FieldOperand(ecx, PixelArray::kLengthOffset));
    __ j(above_equal, &slow);
+  __ mov(edx, eax);  // Save the value.
    __ sar(eax, kSmiTagSize);  // Untag the value.
    {  // Clamp the value to [0..255].
      Label done, check_255;
@@ -436,6 +437,7 @@
    }
    __ mov(ecx, FieldOperand(ecx, PixelArray::kExternalPointerOffset));
    __ mov_b(Operand(ecx, ebx, times_1, 0), eax);
+  __ mov(eax, edx);  // Return the original value.
    __ ret(0);

    // Extra capacity case: Check if there is extra capacity to
Index: src/version.cc
===================================================================
--- src/version.cc      (revision 2985)
+++ src/version.cc      (working copy)
@@ -35,7 +35,7 @@
  #define MAJOR_VERSION     1
  #define MINOR_VERSION     3
  #define BUILD_NUMBER      13
-#define PATCH_LEVEL       2
+#define PATCH_LEVEL       3
  #define CANDIDATE_VERSION false

  // Define SONAME to have the SCons build the put a specific SONAME into the



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to