Files
scriptc/tests/corpus/native-array-named-properties.js
Chris Tate f8906d0b75 Expand static native object and array semantics (#569)
* Support primitive and function property descriptors

* Dispatch literal bracket calls to native class methods

* Handle numeric class method keys in bracket calls

* Call function values returned by class accessors

* Expand native object and array semantics

* Keep new corpus fixtures aligned with compiler gates

* Lower Object.isFrozen arguments once
2026-09-29 08:30:54 -05:00

22 lines
993 B
JavaScript

const values = JSON.parse('[3,5]');
values.extra = 7;
Object.defineProperty(values, 'hidden', { value: 9, writable: true, configurable: true });
console.log(values.extra, values.hidden, values.length);
console.log(Object.keys(values).join(','));
console.log(Object.getOwnPropertyNames(values).join(','));
console.log(Object.hasOwn(values, 'extra'), 'hidden' in values);
console.log(Object.getOwnPropertyDescriptor(values, 'hidden').enumerable);
console.log(Object.getOwnPropertyDescriptors(values).extra.value);
const keys = [];
for (const key in values) keys.push(key);
console.log(keys.join(','));
delete values.hidden;
console.log(Object.hasOwn(values, 'hidden'));
Object.seal(values);
console.log(Object.isSealed(values), Object.isFrozen(values));
console.log(Object.getOwnPropertyDescriptor(values, 'extra').configurable);
values.extra = 8;
console.log(values.extra);
Object.freeze(values);
console.log(Object.isFrozen(values), Object.getOwnPropertyDescriptor(values, 'extra').writable);