From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- .../tests/basic/typed-array-index-out-of-range.js | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 js/src/jit-test/tests/basic/typed-array-index-out-of-range.js (limited to 'js/src/jit-test/tests/basic/typed-array-index-out-of-range.js') 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"); -- cgit v1.2.3