diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /js/src/jit-test/tests/TypedObject/prototypes.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'js/src/jit-test/tests/TypedObject/prototypes.js')
-rw-r--r-- | js/src/jit-test/tests/TypedObject/prototypes.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/TypedObject/prototypes.js b/js/src/jit-test/tests/TypedObject/prototypes.js new file mode 100644 index 000000000..4a569e09e --- /dev/null +++ b/js/src/jit-test/tests/TypedObject/prototypes.js @@ -0,0 +1,34 @@ +// API Surface Test: check that mutating prototypes +// of type objects has no effect, and that mutating +// the prototypes of typed objects is an error. + +if (!this.hasOwnProperty("TypedObject")) + 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 = new StructType({f: uint32, g: uint32}); + var p = Uints.prototype; + Uints.prototype = {}; // no effect + assertEq(p, Uints.prototype); + + var uints = new Uints(); + assertEq(uints.__proto__, p); + assertThrowsInstanceOf(() => uints.__proto__ = {}, + TypeError); + assertThrowsInstanceOf(() => Object.setPrototypeOf(uints, {}), + TypeError); + assertEq(uints.__proto__, p); + + var Uintss = Uints.array(2); + var p = Uintss.prototype; + Uintss.prototype = {}; // no effect + assertEq(p, Uintss.prototype); + + print("Tests complete"); +} + +main(); |