diff options
Diffstat (limited to 'js/src/jit-test/tests/dataview/create-out-of-bounds-ccw.js')
-rw-r--r-- | js/src/jit-test/tests/dataview/create-out-of-bounds-ccw.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/dataview/create-out-of-bounds-ccw.js b/js/src/jit-test/tests/dataview/create-out-of-bounds-ccw.js new file mode 100644 index 0000000000..11ca180064 --- /dev/null +++ b/js/src/jit-test/tests/dataview/create-out-of-bounds-ccw.js @@ -0,0 +1,23 @@ +// |jit-test| --enable-arraybuffer-resizable; skip-if: !ArrayBuffer.prototype.resize + +// RangeError is from the correct global when resizable ArrayBuffer gets out-of-bounds. + +let g = newGlobal(); + +let rab = new g.ArrayBuffer(10, {maxByteLength: 10}); + +let newTarget = Object.defineProperty(function(){}.bind(), "prototype", { + get() { + rab.resize(0); + return DataView.prototype; + } +}); + +let err; +try { + Reflect.construct(DataView, [rab, 10], newTarget); +} catch (e) { + err = e; +} + +assertEq(err instanceof RangeError, true); |