-title: Proposal Title Goes Here -stage: -1 -contributors: Your Name(s) Here +title: TypedArray, ArrayBuffer, and SharedArrayBuffer Concatenation +stage: 1 +contributors: James M Snell-
This is an algorithm:
-This method concatenates the elements of multiple TypedArrays of the same type into a new TypedArray. It performs the following steps when called:
+The algorithm from
For TypedArray and DataView inputs, only the viewed portion of the underlying buffer is included. The byte lengths are snapshotted with ~seq-cst~ ordering at the time each item is validated.
+The algorithm from
This is a placeholder abstract operation. The actual mechanism for transitioning an ArrayBuffer to an immutable state will be defined by the Immutable ArrayBuffer proposal (currently at stage 2.7).
+This method concatenates the byte contents of multiple ArrayBuffers, SharedArrayBuffers, TypedArrays, or DataViews into a new ArrayBuffer. It performs the following steps when called:
+The _immutable_ option depends on the Immutable ArrayBuffer proposal (currently at stage 2.7). MakeArrayBufferImmutable is a placeholder for the abstract operation that will be defined by that proposal.
+The result is always a (non-shared) ArrayBuffer regardless of the input types.
+If the optional _options_ object is provided, the *"length"* property controls the byte length of the result. If *"length"* is less than the total byte length of the inputs, the result is truncated. If *"length"* is greater, the result is zero-filled beyond the copied bytes.
+If the *"resizable"* option is *true*, the result is a resizable ArrayBuffer where *"length"* specifies the maximum byte length. The actual byte length is the lesser of the total input bytes and *"length"*.
+If the *"immutable"* option is *true*, the result is an immutable ArrayBuffer whose contents cannot be changed, resized, or detached. The *"resizable"* and *"immutable"* options are mutually exclusive.
+This method concatenates the byte contents of multiple ArrayBuffers, SharedArrayBuffers, TypedArrays, or DataViews into a new SharedArrayBuffer. It performs the following steps when called:
+The result is always a SharedArrayBuffer regardless of the input types.
+If the optional _options_ object is provided, the *"length"* property controls the byte length of the result. If *"length"* is less than the total byte length of the inputs, the result is truncated. If *"length"* is greater, the result is zero-filled beyond the copied bytes.
+If the *"growable"* option is *true*, the result is a growable SharedArrayBuffer where *"length"* specifies the maximum byte length. The actual byte length is the lesser of the total input bytes and *"length"*.
+