For AI agents: the complete documentation index is available at /tc39-atlas/llms.txt, the full documentation bundle is available at /tc39-atlas/llms-full.txt, and this page is available as Markdown at /tc39-atlas/proposals/stage/1/proposal-limited-arraybuffer.md.
  • 简体中文
  • Limited ArrayBuffer S1

    中文标题:受限 ArrayBuffer

    提案概览
    提案速览

    该提案解决了 ArrayBuffer 缺乏只读和范围受限视图的问题,这些问题阻碍了最小权限/信息原则的实施。提案建议冻结 ArrayBuffer 以使其及其视图变为只读,并可选地创建范围受限的视图。

    Note

    以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。

    受限 ArrayBuffer

    状态

    提案倡导者:Jack Works

    作者:Jack Works

    阶段:1

    演示文稿

    待解决的问题

    以下所有问题都有助于实现最小权限/信息原则。

    1. 无法使 ArrayBuffer 变为只读。
    2. 无法向他人提供 ArrayBuffer 的只读视图,同时内部保留读写权限。
    3. 无法向他人提供范围受限(仅能看到整个缓冲区的一小部分)的视图。

    设计目标

    1. 冻结 ArrayBuffer
      1. 类似于 Object.freeze,一旦冻结就无法恢复。
      2. 任何指向冻结的 ArrayBufferTypedArray/DataView 也必须是只读的。
      3. [可选] 在跨 Realm 传输时保持冻结状态(HTML 集成)。
    2. 对可读写的 ArrayBuffer 提供只读的 TypedArray/DataView
      1. 绝不能从只读视图构造出读写视图。
    3. [可选] 对可读写的 ArrayBuffer 提供范围受限的 TypedArray/DataViewCrimsonCodes0WebAssembly 用例)。
      1. 绝不能从较小的视图范围构造出更大的视图范围。
    4. 不给实现者增加过多复杂性。

    优点

    1. 最小权限/信息原则适用于 ArrayBuffer
    2. 嵌入式 JS 引擎可以将 ROM 表示为只读的 ArrayBuffer

    API 设计

    参见 design.md