diff options
Diffstat (limited to 'js/src/tests/ecma_6/Array/unscopables.js')
-rw-r--r-- | js/src/tests/ecma_6/Array/unscopables.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/js/src/tests/ecma_6/Array/unscopables.js b/js/src/tests/ecma_6/Array/unscopables.js new file mode 100644 index 000000000..6685309a0 --- /dev/null +++ b/js/src/tests/ecma_6/Array/unscopables.js @@ -0,0 +1,51 @@ +let Array_unscopables = Array.prototype[Symbol.unscopables]; + +let desc = Reflect.getOwnPropertyDescriptor(Array.prototype, Symbol.unscopables); +assertDeepEq(desc, { + value: Array_unscopables, + writable: false, + enumerable: false, + configurable: true +}); + +assertEq(Reflect.getPrototypeOf(Array_unscopables), null); + +let desc2 = Object.getOwnPropertyDescriptor(Array_unscopables, "values"); +assertDeepEq(desc2, { + value: true, + writable: true, + enumerable: true, + configurable: true +}); + +let keys = Reflect.ownKeys(Array_unscopables); +print(uneval(keys)); +assertDeepEq(keys, [ + "copyWithin", + "entries", + "fill", + "find", + "findIndex", + "includes", + "keys", + "values" +]); + +for (let key of keys) + assertEq(Array_unscopables[key], true); + +// Test that it actually works +assertThrowsInstanceOf(() => { + with ([]) { + return entries; + } +}, ReferenceError); + +{ + let fill = 33; + with (Array.prototype) { + assertEq(fill, 33); + } +} + +reportCompare(0, 0); |