detach

detach (Web)

仕様書

detach (ArrayBuffer)

[15] ArrayBufferdetach されているかどうかを返す公開 API はありませんが、それを検査している API を呼び出すことで判断できます。 一番手軽そうなのは ArrayBuffer オブジェクトbyteLength メソッドTypeError 例外投げるかどうかでしょう。 (取得器を普通の方法で呼び出している限り、 TypeError投げるのは detach されているときだけです。)

[4] JavaScript仕様書内部では、 ArrayBufferData 内部スロットを持つオブジェクトに対する操作として、 IsDetachedBuffer が定義されています >>3ArrayBufferSharedArrayBufferdetach されたかどうかを返します。 配列バッファーについて、次のようにします >>3

  1. [5] 配列バッファーArrayBufferDatanull の場合、
    1. [6] を返します。
  2. [7] それ以外の場合、
    1. [8] を返します。

[11] ArrayBuffer/SharedArrayBuffer に関するほとんどの操作 (JavaScript 仕様書で定義されているものや構造化クローン) から呼び出されます。 detach されている場合には例外投げられることが多いです。


[9] ArrayBufferData 内部スロットArrayBufferByteLength 内部スロットを持つ SharedArrayBuffer でないオブジェクトに対する操作として、 DetachArrayBuffer が定義されています >>3ArrayBufferdetach します。 配列バッファーについて、次のようにします >>3

  1. [10] 配列バッファーArrayBufferData を、 null に設定します。
  2. [12] 配列バッファーArrayBufferByteLength を、 0 に設定します。
  3. [13] null を返します。

[14] 構造化クローンTransferArrayBuffer から呼び出されます。

歴史

[1] IRC logs: freenode / #whatwg / 20140417 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20140417#l-575>