diff options
Diffstat (limited to 'js/src/tests/ecma_7/SIMD/load-sab-buffer-compat.js')
-rw-r--r-- | js/src/tests/ecma_7/SIMD/load-sab-buffer-compat.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/js/src/tests/ecma_7/SIMD/load-sab-buffer-compat.js b/js/src/tests/ecma_7/SIMD/load-sab-buffer-compat.js new file mode 100644 index 000000000..fe8fac3ed --- /dev/null +++ b/js/src/tests/ecma_7/SIMD/load-sab-buffer-compat.js @@ -0,0 +1,49 @@ +// |reftest| skip-if(!this.hasOwnProperty("SIMD")) + +/* + * Any copyright is dedicated to the Public Domain. + * https://creativecommons.org/publicdomain/zero/1.0/ + */ + +var { MakeComparator } = Helpers; + +function testSharedArrayBufferCompat() { + var TA = new Float32Array(new SharedArrayBuffer(16*4)); + for (var i = 0; i < 16; i++) + TA[i] = i + 1; + + for (var ta of [ + new Uint8Array(TA.buffer), + new Int8Array(TA.buffer), + new Uint16Array(TA.buffer), + new Int16Array(TA.buffer), + new Uint32Array(TA.buffer), + new Int32Array(TA.buffer), + new Float32Array(TA.buffer), + new Float64Array(TA.buffer) + ]) + { + for (var kind of ['Int32x4', 'Uint32x4', 'Float32x4', 'Float64x2']) { + var comp = MakeComparator(kind, ta); + comp.load(0); + comp.load1(0); + comp.load2(0); + comp.load3(0); + + comp.load(3); + comp.load1(3); + comp.load2(3); + comp.load3(3); + } + + assertThrowsInstanceOf(() => SIMD.Int32x4.load(ta, 1024), RangeError); + assertThrowsInstanceOf(() => SIMD.Uint32x4.load(ta, 1024), RangeError); + assertThrowsInstanceOf(() => SIMD.Float32x4.load(ta, 1024), RangeError); + assertThrowsInstanceOf(() => SIMD.Float64x2.load(ta, 1024), RangeError); + } +} + +testSharedArrayBufferCompat(); + +if (typeof reportCompare === "function") + reportCompare(true, true); |