Index: test/cctest/test-api.cc |
=================================================================== |
--- test/cctest/test-api.cc (revision 6508) |
+++ test/cctest/test-api.cc (working copy) |
@@ -10174,8 +10174,8 @@ |
context->Global()->Set(v8_str("pixels"), obj); |
v8::Handle<v8::Value> result = CompileRun("pixels.field"); |
CHECK_EQ(1503, result->Int32Value()); |
- result = CompileRun("pixels[1]"); |
- CHECK_EQ(1, result->Int32Value()); |
+ // result = CompileRun("pixels[1]"); |
+ // CHECK_EQ(1, result->Int32Value()); |
danno
2011/01/28 10:35:36
i'll fix this, shouldn't be commented out.
Mads Ager (chromium)
2011/01/28 10:39:16
Thanks!
|
result = CompileRun("var sum = 0;" |
"for (var i = 0; i < 8; i++) {" |
@@ -10342,6 +10342,83 @@ |
"i"); |
CHECK_EQ(255, result->Int32Value()); |
+ // Make sure that pixel array ICs recognize when a non-pixel array |
+ // is passed to it. |
+ result = CompileRun("function pa_load(p) {" |
+ " var sum = 0;" |
+ " for (var j = 0; j < 256; j++) { sum += p[j]; }" |
+ " return sum;" |
+ "}" |
+ "for (var i = 0; i < 256; ++i) { pixels[i] = i; }" |
+ "for (var i = 0; i < 10; ++i) { pa_load(pixels); }" |
+ "just_ints = new Object();" |
+ "for (var i = 0; i < 256; ++i) { just_ints[i] = i; }" |
+ "for (var i = 0; i < 10; ++i) { result = pa_load(just_ints); }" |
danno
2011/01/28 10:35:36
I'll fix the 80 cols, too, here and below.
Mads Ager (chromium)
2011/01/28 10:39:16
Thanks.
|
+ "result"); |
+ CHECK_EQ(32640, result->Int32Value()); |
+ |
+ // Make sure that pixel array ICs recognize out-of-bound accesses. |
+ result = CompileRun("function pa_load(p, start) {" |
+ " var sum = 0;" |
+ " for (var j = start; j < 256; j++) { sum += p[j]; }" |
+ " return sum;" |
+ "}" |
+ "for (var i = 0; i < 256; ++i) { pixels[i] = i; }" |
+ "for (var i = 0; i < 10; ++i) { pa_load(pixels,0); }" |
+ "for (var i = 0; i < 10; ++i) { result = pa_load(pixels,-10); }" |
+ "result"); |
+ CHECK_EQ(0, result->Int32Value()); |
+ |
+ // Make sure that generic ICs properly handles a pixel array. |
+ result = CompileRun("function pa_load(p) {" |
+ " var sum = 0;" |
+ " for (var j = 0; j < 256; j++) { sum += p[j]; }" |
+ " return sum;" |
+ "}" |
+ "for (var i = 0; i < 256; ++i) { pixels[i] = i; }" |
+ "just_ints = new Object();" |
+ "for (var i = 0; i < 256; ++i) { just_ints[i] = i; }" |
+ "for (var i = 0; i < 10; ++i) { pa_load(just_ints); }" |
+ "for (var i = 0; i < 10; ++i) { result = pa_load(pixels); }" |
+ "result"); |
+ CHECK_EQ(32640, result->Int32Value()); |
+ |
+ // Make sure that generic load ICs recognize out-of-bound accesses in |
+ // pixel arrays. |
+ result = CompileRun("function pa_load(p, start) {" |
+ " var sum = 0;" |
+ " for (var j = start; j < 256; j++) { sum += p[j]; }" |
+ " return sum;" |
+ "}" |
+ "for (var i = 0; i < 256; ++i) { pixels[i] = i; }" |
+ "just_ints = new Object();" |
+ "for (var i = 0; i < 256; ++i) { just_ints[i] = i; }" |
+ "for (var i = 0; i < 10; ++i) { pa_load(just_ints,0); }" |
+ "for (var i = 0; i < 10; ++i) { pa_load(pixels,0); }" |
+ "for (var i = 0; i < 10; ++i) { result = pa_load(pixels,-10); }" |
+ "result"); |
+ CHECK_EQ(0, result->Int32Value()); |
+ |
+ // Make sure that generic ICs properly handles other types than pixel |
+ // arrays (that the inlined fast pixel array test leaves the right information |
+ // in the right registers). |
+ result = CompileRun("function pa_load(p) {" |
+ " var sum = 0;" |
+ " for (var j = 0; j < 256; j++) { sum += p[j]; }" |
+ " return sum;" |
+ "}" |
+ "for (var i = 0; i < 256; ++i) { pixels[i] = i; }" |
+ "just_ints = new Object();" |
+ "for (var i = 0; i < 256; ++i) { just_ints[i] = i; }" |
+ "for (var i = 0; i < 10; ++i) { pa_load(just_ints); }" |
+ "for (var i = 0; i < 10; ++i) { pa_load(pixels); }" |
+ "sparse_array = new Object();" |
+ "for (var i = 0; i < 256; ++i) { sparse_array[i] = i; }" |
+ "sparse_array[1000000] = 3;" |
+ "for (var i = 0; i < 10; ++i) { result = pa_load(sparse_array); }" |
+ "result"); |
+ CHECK_EQ(32640, result->Int32Value()); |
+ |
free(pixel_data); |
} |