X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/4be4e30906bcb8ee30b4d189205cb70bad6707ce..81345200c95645a1b0d2635520f96ad55dfde63f:/tests/stress/float64-array-nan-inlined.js diff --git a/tests/stress/float64-array-nan-inlined.js b/tests/stress/float64-array-nan-inlined.js new file mode 100644 index 0000000..21b480a --- /dev/null +++ b/tests/stress/float64-array-nan-inlined.js @@ -0,0 +1,34 @@ +function foo(o) { + return o[0]; +} + +function isBigEndian() { + var word = new Int16Array(1); + word[0] = 1; + var bytes = new Int8Array(word.buffer); + return !bytes[0]; +} + +function test(a, b, x) { + var intArray = new Int32Array(2); + intArray[0] = a; + intArray[1] = b; + var floatArray = new Float64Array(intArray.buffer); + var element = foo(floatArray); + var result = element + 1; + if (("" + result) != ("" + x)) + throw "Error: bad result for " + a + ", " + b + ": " + result + ", but expected: " + x + "; loaded " + element + " from the array"; +} + +noInline(test); + +for (var i = 0; i < 100000; ++i) + test(0, 0, 1); + +if (isBigEndian()) { + test(0xFFFF0000, 0, 0/0); + test(0, 0xFFFF0000, 1); +} else { + test(0xFFFF0000, 0, 1); + test(0, 0xFFFF0000, 0/0); +}