Child tracker from #11/#12/#1.
Goal
Finish the portable ArrayBuffer detach/resize survivor and typed-array race semantics that matter for zig-js, while keeping non-portable JSC reference harness assumptions explicitly classified.
Current PR-249 reference-only evidence
cve/mc-life-creator-thread-dies.jsremains reference-only because the harness constructs freshInt32Arrayviews from anArrayBufferafter the source has already been transferred/detached. zig-js keeps the detached-buffer TypedArray constructorTypeErrorthere.cve/mc-df-arraycopy-relabel.jsremains reference-only because it depends on a JSC butterfly verification shell option and a JSC storage-shape assumption. The current probe still fails withRangeError: offset is out of bounds.
Portable behavior already covered
zig-js-owned witnesses cover the portable subsets:
- creator-owned
SharedArrayBuffer/ArrayBufferstorage survives creator Thread exit, GC pressure, resize, and transfer; - structured-clone transfer detaches the source and preserves the moved buffer for sibling observers;
TypedArray.prototype.setsnapshots array-like source length once, so growth before the snapshot can reject when it no longer fits, while growth after the snapshot does not extend the copy;- DataView and TypedArray constructor/order tests cover detach checks, resizable-buffer snapshots, and parallel resize serialization.
Remaining work
- Add more focused zig-js-owned tests if a portable detach/resize survivor rule is not already covered.
- Keep
cve/mc-df-arraycopy-relabel.jsclassified unless zig-js intentionally grows a compatibility harness for the JSC butterfly verification assumption. - Keep
cve/mc-life-creator-thread-dies.jsclassified unless the reference harness stops relying on fresh-view construction after transfer. - Re-run
zig build threads-reference-probeswhen behavior changes and promote/reclassify based on current evidence.
Acceptance sketch
- Portable behavior is covered by focused unit/no-GIL/threadfuzz tests.
- JSC-specific assumptions remain documented instead of cloned accidentally.
- #11 audit categories and promotion probes stay current.