archives

« Bugzilla Issues Index

#3004 — 24.1.1.5 GetValueFromBuffer, 24.1.1.6 SetValueInBuffer: Assertion in step 1 does not take neutered buffers into account


24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )

The assertion in step 1 is not correct when the array buffer object has been neutered.


Suggested alternative:
---
1. Assert: byteIndex is a positive integer.
2. Let block be arrayBuffer’s [[ArrayBufferData]] internal slot.
3. Let byteLength be the value of arrayBuffer’s [[ArrayBufferByteLength]] internal slot.
4. Let elementSize be the Number value of the Element Size value specified in Table 44 for Element Type type.
5. Assert: byteIndex + elementSize ≤ byteLength or block is null.
6. If block is undefined or null, then throw a TypeError exception.
---


Also: Why does GetValueFromBuffer/SetValueInBuffer handle [[ArrayBufferData]] == `undefined`? That case should never happen, right?


fixed in rev26 editor's draft

Get/SetValueFrom/ToBuffer only called on initialized and non-neutered buffers.


fixed in rev26