Verify the various properties of Array.prototype[@@unscopables]

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS typeof Array.prototype[Symbol.unscopables] is "object"
PASS Object.getPrototypeOf(Array.prototype[Symbol.unscopables]) is null
PASS Object.getOwnPropertyDescriptor(Array.prototype, Symbol.unscopables).writable is false
PASS Object.getOwnPropertyDescriptor(Array.prototype, Symbol.unscopables).enumerable is false
PASS Object.getOwnPropertyDescriptor(Array.prototype, Symbol.unscopables).configurable is true
PASS Object.getOwnPropertyNames(Array.prototype[Symbol.unscopables]) is expectedEntries
PASS Object.getOwnPropertySymbols(Array.prototype[Symbol.unscopables]) is []
PASS Array.prototype[Symbol.unscopables]["at"] is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "at").writable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "at").enumerable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "at").configurable is true
PASS Array.prototype[Symbol.unscopables]["copyWithin"] is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "copyWithin").writable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "copyWithin").enumerable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "copyWithin").configurable is true
PASS Array.prototype[Symbol.unscopables]["entries"] is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "entries").writable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "entries").enumerable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "entries").configurable is true
PASS Array.prototype[Symbol.unscopables]["fill"] is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "fill").writable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "fill").enumerable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "fill").configurable is true
PASS Array.prototype[Symbol.unscopables]["find"] is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "find").writable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "find").enumerable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "find").configurable is true
PASS Array.prototype[Symbol.unscopables]["findIndex"] is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "findIndex").writable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "findIndex").enumerable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "findIndex").configurable is true
PASS Array.prototype[Symbol.unscopables]["findLast"] is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "findLast").writable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "findLast").enumerable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "findLast").configurable is true
PASS Array.prototype[Symbol.unscopables]["findLastIndex"] is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "findLastIndex").writable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "findLastIndex").enumerable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "findLastIndex").configurable is true
PASS Array.prototype[Symbol.unscopables]["flat"] is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "flat").writable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "flat").enumerable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "flat").configurable is true
PASS Array.prototype[Symbol.unscopables]["flatMap"] is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "flatMap").writable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "flatMap").enumerable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "flatMap").configurable is true
PASS Array.prototype[Symbol.unscopables]["includes"] is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "includes").writable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "includes").enumerable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "includes").configurable is true
PASS Array.prototype[Symbol.unscopables]["keys"] is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "keys").writable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "keys").enumerable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "keys").configurable is true
PASS Array.prototype[Symbol.unscopables]["values"] is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "values").writable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "values").enumerable is true
PASS Object.getOwnPropertyDescriptor(Array.prototype[Symbol.unscopables], "values").configurable is true
PASS successfullyParsed is true

TEST COMPLETE

