"use strict"; test(() => { const observableArray = document.adoptedStyleSheets; assert_array_equals( Object.getOwnPropertyNames(observableArray), ["length"], "Initially only \"length\"."); observableArray["zzz"] = true; observableArray["aaa"] = true; assert_array_equals( Object.getOwnPropertyNames(observableArray), ["length", "zzz", "aaa"], "Own properties whose key is a string have been added."); observableArray[0] = new CSSStyleSheet(); observableArray[1] = new CSSStyleSheet(); assert_array_equals( Object.getOwnPropertyNames(observableArray), ["0", "1", "length", "zzz", "aaa"], "Own properties whose key is an array index have been added."); observableArray[Symbol.toStringTag] = "string_tag"; observableArray[Symbol.toPrimitive] = "primitive"; assert_array_equals( Object.getOwnPropertyNames(observableArray), ["0", "1", "length", "zzz", "aaa"], "Own properties whose key is a symbol have been added (non-symbol)."); assert_array_equals( Object.getOwnPropertySymbols(observableArray), [Symbol.toStringTag, Symbol.toPrimitive], "Own properties whose key is a symbol have been added (symbol)."); }, "ObservableArray's ownKeys trap");