MEM-007 DONT: file.write(string) writes from advanced slice, invalid-frees interior pointer (js/io.cpp)

Now
DONT

JABCioFileWrite's string branch calls JABCutf8CopyStringValue, which advances the slice HEAD past the written data (utf8.cpp:68 into[0]+=fact); on return ta[0] points after the decoded string. The code then write(fd, ta[0], $len(ta)) (reads the uninitialized tail with the leftover length) and $u8free((u8csp)ta) frees ta[0] an interior pointer, not the allocation base. The goal is to keep the written range and the allocation base distinct.

Issues

Slice-head advance corrupts both the write source and the free.

Blockers

None.

Planned

Describe written data, free the base.