| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index b92185f52afa933c8402e2eace8cf3fcf680d224..e711dc871d7d2ae5eafe9046761b45e765763614 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -10691,7 +10691,62 @@ THREADED_TEST(PixelArray) {
|
| "result");
|
| CHECK_EQ(32640, result->Int32Value());
|
|
|
| - // Make sure that pixel array loads are optimized by crankshaft.
|
| + // Make sure that pixel array store ICs clamp values correctly.
|
| + result = CompileRun("function pa_store(p) {"
|
| + " for (var j = 0; j < 256; j++) { p[j] = j * 2; }"
|
| + "}"
|
| + "pa_store(pixels);"
|
| + "var sum = 0;"
|
| + "for (var j = 0; j < 256; j++) { sum += pixels[j]; }"
|
| + "sum");
|
| + CHECK_EQ(48896, result->Int32Value());
|
| +
|
| + // Make sure that pixel array stores correctly handle accesses outside
|
| + // of the pixel array..
|
| + result = CompileRun("function pa_store(p,start) {"
|
| + " for (var j = 0; j < 256; j++) {"
|
| + " p[j+start] = j * 2;"
|
| + " }"
|
| + "}"
|
| + "pa_store(pixels,0);"
|
| + "pa_store(pixels,-128);"
|
| + "var sum = 0;"
|
| + "for (var j = 0; j < 256; j++) { sum += pixels[j]; }"
|
| + "sum");
|
| + CHECK_EQ(65280, result->Int32Value());
|
| +
|
| + // Make sure that the generic store stub correctly handle accesses outside
|
| + // of the pixel array..
|
| + result = CompileRun("function pa_store(p,start) {"
|
| + " for (var j = 0; j < 256; j++) {"
|
| + " p[j+start] = j * 2;"
|
| + " }"
|
| + "}"
|
| + "pa_store(pixels,0);"
|
| + "just_ints = new Object();"
|
| + "for (var i = 0; i < 256; ++i) { just_ints[i] = i; }"
|
| + "pa_store(just_ints, 0);"
|
| + "pa_store(pixels,-128);"
|
| + "var sum = 0;"
|
| + "for (var j = 0; j < 256; j++) { sum += pixels[j]; }"
|
| + "sum");
|
| + CHECK_EQ(65280, result->Int32Value());
|
| +
|
| + // Make sure that the generic keyed store stub clamps pixel array values
|
| + // correctly.
|
| + result = CompileRun("function pa_store(p) {"
|
| + " for (var j = 0; j < 256; j++) { p[j] = j * 2; }"
|
| + "}"
|
| + "pa_store(pixels);"
|
| + "just_ints = new Object();"
|
| + "pa_store(just_ints);"
|
| + "pa_store(pixels);"
|
| + "var sum = 0;"
|
| + "for (var j = 0; j < 256; j++) { sum += pixels[j]; }"
|
| + "sum");
|
| + CHECK_EQ(48896, result->Int32Value());
|
| +
|
| + // Make sure that pixel array loads are optimized by crankshaft.
|
| result = CompileRun("function pa_load(p) {"
|
| " var sum = 0;"
|
| " for (var i=0; i<256; ++i) {"
|
|
|