Parent: #140 Profile parents: #163 and #164
Implement the complete caller-owned native StringBuilder boundary shared by the pinned Home and Bun private-JSC profiles.
Symbols
StringBuilder__initStringBuilder__deinitStringBuilder__ensureUnusedCapacityStringBuilder__appendLatin1StringBuilder__appendUtf16StringBuilder__appendStringStringBuilder__appendLCharStringBuilder__appendUCharStringBuilder__appendIntStringBuilder__appendUsizeStringBuilder__appendDoubleStringBuilder__appendQuotedJsonStringStringBuilder__toString
Acceptance
- Match the pinned 24-byte, 8-byte-aligned caller-owned storage ABI and deterministic init/deinit lifetime.
- Preserve exact UTF-16 content across Latin-1, UTF-16, BunString, LChar, and UChar inputs, including astral pairs and lone surrogates.
- Match pinned integer, usize, and double formatting, including signed zero, NaN, and infinities.
- Match JSON quoting for controls, quotes, backslashes, astral characters, and unpaired surrogates.
- Make capacity arithmetic and allocation failure sticky and failure-atomic; surface OOM from toString without replacing an existing exception.
- Return an exact JS string in the selected realm and keep repeated toString calls non-destructive.
- Exercise malformed/null boundary inputs without stale pointers or double frees.
- Add focused unit/runtime-fixture coverage, update both inventories and profile docs, and publish the new implemented/pending counts in README.md.
Backward compatibility is not a constraint before the first consumer release; prefer the cleanest exact boundary.