Reviewers: Mads Ager,

Description:
Merge bleeding_edge revision 2961 to branches/1.2

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

SVN Base: http://v8.googlecode.com/svn/branches/1.2/

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)
@@ -7214,8 +7214,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;");
@@ -7324,5 +7360,8 @@
    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)
@@ -416,6 +416,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;
@@ -431,6 +432,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     2
  #define BUILD_NUMBER      14
-#define PATCH_LEVEL       19
+#define PATCH_LEVEL       20
  #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