summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/ion/typed-arrays-3.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/ion/typed-arrays-3.js')
-rw-r--r--js/src/jit-test/tests/ion/typed-arrays-3.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/ion/typed-arrays-3.js b/js/src/jit-test/tests/ion/typed-arrays-3.js
new file mode 100644
index 0000000000..74deb1ed02
--- /dev/null
+++ b/js/src/jit-test/tests/ion/typed-arrays-3.js
@@ -0,0 +1,65 @@
+function testClampInt() {
+ var values = [-255, -254, -2, -1, 0, 1, 2, 128, 254, 255, 256, 300];
+ var expected = [ 0, 0, 0, 0, 0, 1, 2, 128, 254, 255, 255, 255];
+
+ var arr = new Uint8ClampedArray(100);
+
+ for (var i=0; i<10; i++) {
+ for (var j=0; j<values.length; j++) {
+ arr[1] = arr[j] = values[j];
+
+ assertEq(arr[1], arr[j]);
+ assertEq(arr[j], expected[j]);
+ }
+ }
+}
+testClampInt();
+
+function testClampDouble() {
+ var values = [-255.1, -255.0, -2.1, -0, 0, 0.1, 123.4, 254.6, 255, 255.1, 255.9, 256, 1234.5,
+ NaN, -Infinity, Infinity];
+ var expected = [ 0, 0, 0, 0, 0, 0, 123, 255, 255, 255, 255, 255, 255,
+ 0, 0, 255];
+
+ var arr = new Uint8ClampedArray(100);
+
+ for (var i=0; i<10; i++) {
+ for (var j=0; j<values.length; j++) {
+ arr[1] = arr[j] = values[j];
+
+ assertEq(arr[1], arr[j]);
+ assertEq(arr[j], expected[j]);
+ }
+ }
+}
+testClampDouble();
+
+function testClampValue() {
+ var values = [null, 123, 256, 267.9, -123.3, undefined, Math, true, NaN, false];
+ var expected = [ 0, 123, 255, 255, 0, 0, 0, 1, 0, 0];
+
+ var arr = new Uint8ClampedArray(100);
+
+ for (var i=0; i<10; i++) {
+ for (var j=0; j<values.length; j++) {
+ arr[1] = arr[j] = values[j];
+
+ assertEq(arr[1], arr[j]);
+ assertEq(arr[j], expected[j]);
+ }
+ }
+}
+testClampValue();
+
+function testString() {
+ var arr = new Uint8ClampedArray(10);
+ for (var i=0; i<60; i++) {
+ arr[5] = ((i & 1) == 0) ? "123.5" : 33;
+ if (i % 2 == 0)
+ assertEq(arr[5], 124);
+ else
+ assertEq(arr[5], 33);
+ }
+}
+//FIXME: enable this test again (bug 741114)
+//testString();