Executed on parent a6a984e7 while checking ordinary property semantics for #1079:
const object = {};
Object.defineProperty(object, 'value', {
configurable: true,
get() { return 1; },
set(value) { delete object.value; Object.setPrototypeOf(object, { value: 50 }); }
});
object.value = 1;
object.value = 54;
object.value = 59;
JSON.stringify([
object.value,
Object.getOwnPropertyDescriptor(object, 'value').value,
Object.getPrototypeOf(object).value
]);Node returns [59,59,50]. Both parent tree-walker and required-VM execution return [54,54,50]. The final ordinary assignment therefore fails to update the own data property created through the inherited writable data descriptor after accessor deletion.
Acceptance:
- Diagnose and fix the actual named-property storage/descriptor update path; do not special-case this program or weaken #1079's live-property witness.
- Pin the Node-confirmed result in both execution modes, including shared/no-GIL execution, descriptor visibility, and repeated writes after accessor deletion/prototype edits.
- Focused normal/ReleaseSafe/unsuppressed TSan and relevant before/after property/assignment corpus comparisons pass without new failures.
- Land as one small logical fix, with measured scope and evidence linked here.