diff options
Diffstat (limited to 'js/src/jit-test/tests/TypedObject/atopneuteredbuffer.js')
-rw-r--r-- | js/src/jit-test/tests/TypedObject/atopneuteredbuffer.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/TypedObject/atopneuteredbuffer.js b/js/src/jit-test/tests/TypedObject/atopneuteredbuffer.js new file mode 100644 index 000000000..d763d2436 --- /dev/null +++ b/js/src/jit-test/tests/TypedObject/atopneuteredbuffer.js @@ -0,0 +1,23 @@ +// Bug 976697. Check for various quirks when instantiating a typed +// object atop a detached buffer. + +if (typeof TypedObject === "undefined") + quit(); + +load(libdir + "asserts.js") + +var {StructType, uint32, Object, Any, storage, objectType} = TypedObject; + +function main() { // once a C programmer, always a C programmer. + var Uints = uint32.array(0); + var Unit = new StructType({}); // Empty struct type + var buffer = new ArrayBuffer(0); // Empty buffer + var p = new Unit(buffer); // OK + detachArrayBuffer(buffer); + assertThrowsInstanceOf(() => new Unit(buffer), TypeError, + "Able to instantiate atop detached buffer"); + assertThrowsInstanceOf(() => new Uints(buffer), TypeError, + "Able to instantiate atop detached buffer"); +} + +main(); |