Implements issue 3mhn3lv4bx72x — JS Object model: prototype chain, typeof, instanceof.
Summary #
- Property descriptors:
Propertystruct with writable/enumerable/configurable flags replaces plainValuein object property map - instanceof: Walks prototype chain checking against
constructor.prototype(was stubbed to always false) - delete: Respects configurable flag; compiler now emits
Deletebytecode for member expressions (delete obj.prop,delete obj[expr]) - for-in loops: Fully implemented with new
ForInInit/ForInNextbytecode ops; collects enumerable keys (own + inherited), integer indices sorted first - Prototype support:
FunctionDatagainsprototype_objfield;CreateClosurecreates.prototypewith constructor back-ref;SetPrototype/GetPrototypeops added - Non-enumerable properties: Array
lengthproperly marked non-enumerable, excluded from for-in
Tests #
15 new tests: property descriptors, prototype chain, typeof (all types), instanceof, in operator, delete (member/computed/non-configurable), for-in (basic/keys/empty/enumerable), reference semantics, enumeration order. All 241 JS tests pass (was 226).