summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/basic/typed-array-index-out-of-range.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /js/src/jit-test/tests/basic/typed-array-index-out-of-range.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'js/src/jit-test/tests/basic/typed-array-index-out-of-range.js')
-rw-r--r--js/src/jit-test/tests/basic/typed-array-index-out-of-range.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/basic/typed-array-index-out-of-range.js b/js/src/jit-test/tests/basic/typed-array-index-out-of-range.js
new file mode 100644
index 000000000..a0506dfcf
--- /dev/null
+++ b/js/src/jit-test/tests/basic/typed-array-index-out-of-range.js
@@ -0,0 +1,36 @@
+
+// Out of bounds writes on typed arrays are uneffectful for all integers.
+
+var x = new Int32Array(10);
+
+function f() {
+ for (var i = -100; i < 100; i++) {
+ x[i] = i + 1;
+ if (i >= 0 && i < 10)
+ assertEq(x[i], i + 1);
+ else
+ assertEq(x[i], undefined);
+ }
+}
+f();
+
+// Really big integers not representable with a double or uint64 are still integers.
+
+var bigint = "" + Math.pow(2, 53);
+x[bigint] = "twelve";
+assertEq(x[bigint], undefined);
+
+x["9999999999999999999999"] = "twelve";
+assertEq(x["9999999999999999999999"], undefined);
+
+// Except when their toString() makes them not look like integers!
+x[9999999999999999999999] = "twelve";
+assertEq(x[9999999999999999999999], "twelve");
+
+// Infinity and -Infinity maybe are supposed to be integers, but they aren't currently.
+
+x["Infinity"] = "twelve";
+assertEq(x["Infinity"], "twelve");
+
+x["-Infinity"] = "twelve";
+assertEq(x["-Infinity"], "twelve");