Skip to content

Commit d749331

Browse files
committed
readme links and updates
1 parent 8fcc8e2 commit d749331

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

README.md

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,18 @@ APIs that accept ArrayBuffers and/or objects backed by them could also benefit f
4747

4848
The [OCapN](https://ocapn.org/) network protocol treats strings and byte-arrays as distinct forms of bulk data to be transmitted by copy. At JavaScript endpoints speaking OCapN such as [@endo/pass-style](https://www.npmjs.com/package/@endo/pass-style) + [@endo/marshal](https://www.npmjs.com/package/@endo/marshal), JavaScript strings represent OCapN strings. The immutability of strings in the JavaScript language reflects their by-copy nature in the protocol. Likewise, to reflect an OCapN byte-array well into the JavaScript language, an immutable container of bulk binary data is required. There currently are none, but an Immutable `ArrayBuffer` would provide exactly the necessary low-level machinery.
4949

50-
## Prior proposals with overlapping goals
50+
## Prior proposals or issues with overlapping goals
51+
52+
[Limited ArrayBuffer](https://github.com/tc39/proposal-limited-arraybuffer), especially [issue #16](https://github.com/tc39/proposal-limited-arraybuffer/issues/16)
53+
54+
[Readonly Collections](https://github.com/tc39/proposal-readonly-collections), especially [issue #10](https://github.com/tc39/proposal-readonly-collections/issues/10)
55+
56+
web-bluetooth [read-only ArrayBuffer](https://webbluetoothcg.github.io/web-bluetooth/#read-only-arraybuffer), especially [issue #300](https://github.com/WebBluetoothCG/web-bluetooth/issues/300#issuecomment-2560251857)
57+
58+
gpuweb [issue #2072](https://github.com/gpuweb/gpuweb/issues/2072#issuecomment-2560291036), [issue #747](https://github.com/gpuweb/gpuweb/issues/747#issuecomment-2560254816), and [SharedValueTable proposal](https://hackmd.io/@webgpu/S1f56dN8s)
59+
60+
webidl [Frozen Array](https://webidl.spec.whatwg.org/#idl-frozen-array)
5161

52-
[Limited ArrayBuffer](https://github.com/tc39/proposal-limited-arraybuffer)
5362

5463
## Solution
5564

@@ -132,27 +141,27 @@ No, TypedArray index properties should continue to track the state of the underl
132141

133142

134143
<dt>
135-
136-
Should ArrayBuffers support zero-copy slices (e.g., `arrayBuffer.sliceToImmutable()`)?
144+
Should ArrayBuffers support zero-copy slices (e.g., `arrayBuffer.sliceToImmutable()`)? https://github.com/tc39/proposal-immutable-arraybuffer/issues/9
137145
</dt>
138146
<dd>
139-
https://github.com/tc39/proposal-immutable-arraybuffer/issues/9
147+
Yes. As 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.
140148
</dd>
141149

142150
<dt>
143151

144-
Should the new getter be name `immutable` or `mutable`?
152+
Should the new getter be name `immutable` or `mutable`? https://github.com/tc39/proposal-immutable-arraybuffer/issues/10
145153
</dt>
146154
<dd>
147-
https://github.com/tc39/proposal-immutable-arraybuffer/issues/10
155+
`immutable`. As agreed at the December tc39 plenary, by following the defaults-to-false principle, feature tests such as `if (buf.immutable) {` will be falsy on engines that have not yet implemented this proposal.
148156
</dd>
149157

150158
<dt>
151159

152-
Order of operations, when to throw or silently do nothing?
160+
Order of operations, when to throw or silently do nothing? https://github.com/tc39/proposal-immutable-arraybuffer/issues/16
161+
153162
</dt>
154163
<dd>
155-
https://github.com/tc39/proposal-immutable-arraybuffer/issues/16
164+
We will drive the resolution to this from implementor feedback. But when this by itself is not a deciding factor, we prefer failure to throw rather than be silent. This existing XS implementation follows that principle.
156165
</dd>
157166

158167
<dl>

0 commit comments

Comments
 (0)