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/tests/ecma_5/extensions/watch-array-length.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/tests/ecma_5/extensions/watch-array-length.js')
-rw-r--r-- | js/src/tests/ecma_5/extensions/watch-array-length.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/js/src/tests/ecma_5/extensions/watch-array-length.js b/js/src/tests/ecma_5/extensions/watch-array-length.js new file mode 100644 index 000000000..e9b356efa --- /dev/null +++ b/js/src/tests/ecma_5/extensions/watch-array-length.js @@ -0,0 +1,41 @@ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + */ + +var hitCount; +function watcher(p,o,n) { hitCount++; return n; } + +var a = [1]; +a.watch('length', watcher); +hitCount = 0; +a.length = 0; +reportCompare(1, hitCount, "lenient; configurable: watchpoint hit"); + +var b = Object.defineProperty([1],'0',{configurable:false}); +b.watch('length', watcher); +hitCount = 0; +var result; +try { + b.length = 0; + result = "no error"; +} catch (x) { + result = x.toString(); +} +reportCompare(1, hitCount, "lenient; non-configurable: watchpoint hit"); +reportCompare(1, b.length, "lenient; non-configurable: length unchanged"); +reportCompare("no error", result, "lenient; non-configurable: no error thrown"); + +var c = Object.defineProperty([1],'0',{configurable:false}); +c.watch('length', watcher); +hitCount = 0; +var threwTypeError; +try { + (function(){'use strict'; c.length = 0;})(); + threwTypeError = false; +} catch (x) { + threwTypeError = x instanceof TypeError; +} +reportCompare(1, hitCount, "strict; non-configurable: watchpoint hit"); +reportCompare(1, c.length, "strict; non-configurable: length unchanged"); +reportCompare(true, threwTypeError, "strict; non-configurable: TypeError thrown"); |