Function mozjs_sys::jsapi::JS::CopyArrayBuffer

source ·
pub unsafe extern "C" fn CopyArrayBuffer(
    cx: *mut JSContext,
    maybeArrayBuffer: Handle<*mut JSObject>,
) -> *mut JSObject
Expand description

Create a new ArrayBuffer, whose bytes are set to the values of the bytes in the provided ArrayBuffer.

|maybeArrayBuffer| is asserted to be non-null. An error is thrown if |maybeArrayBuffer| would fail the |IsArrayBufferObject| test given further below or if |maybeArrayBuffer| is detached.

|maybeArrayBuffer| may store its contents in any fashion (i.e. it doesn’t matter whether |maybeArrayBuffer| was allocated using |JS::NewArrayBuffer|, |JS::NewExternalArrayBuffer|, or any other ArrayBuffer-allocating function).

The newly-created ArrayBuffer is effectively creatd as if by |JS::NewArrayBufferWithContents| passing in |maybeArrayBuffer|’s internal data pointer and length, in a manner safe against |maybeArrayBuffer|’s data being moved around by the GC. In particular, the new ArrayBuffer will not behave like one created for WASM or asm.js, so it can be detached.