Atomics.sub()

これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

静的な Atomics.sub() メソッドは、配列内の所定の位置に指定された値を取り除いた上で、その位置にある古い値を返します。この atomic 操作は、修正された値が書き戻されるまで、ほかの書き込みが発生しないことを保証します。

構文

Atomics.sub(typedArray, index, value)

引数

typedArray
shared integer typed array。Int8ArrayUint8ArrayInt16ArrayUint16ArrayInt32ArrayUint32Array のいずれか。
index
取り除く valuetypedArray 内での位置。
value
取り除く数値。

戻り値

指定した位置(typedArray[index])の古い値。

例外

  • typedArray が整数型を受け入れないない場合、TypeError をスローする。
  • typedArray が shared typed array 型ではない場合、TypeError をスローする。
  • indextypedArray の境界から外れている場合、RangeError をスローする。

const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
ta[0] = 48;

Atomics.sub(ta, 0, 12); // returns 48, the old value
Atomics.load(ta, 0); // 36

仕様

仕様 ステータス コメント
ECMAScript (ECMA-262)
Atomics.sub の定義

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
subChrome 完全対応 68
完全対応 68
未対応 60 — 63
補足
補足 Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This was a temporary removal while mitigations were put in place.
Edge 完全対応 79
完全対応 79
未対応 16 — 17
補足
補足 Support was removed to mitigate speculative execution side-channel attacks (Windows blog).
Firefox 完全対応 57
補足 無効
完全対応 57
補足 無効
補足 Support was disabled by default to mitigate speculative execution side-channel attacks (Mozilla Security Blog).
無効 From version 57: this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
未対応 55 — 57
未対応 46 — 55
無効
無効 From version 46 until version 55 (exclusive): this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 未対応 なしOpera 未対応 なしSafari 未対応 10.1 — 11.1WebView Android 未対応 60 — 63
補足
未対応 60 — 63
補足
補足 Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This is intended as a temporary measure until other mitigations are in place.
Chrome Android 未対応 60 — 63
補足
未対応 60 — 63
補足
補足 Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This is intended as a temporary measure until other mitigations are in place.
Firefox Android 完全対応 57
補足 無効
完全対応 57
補足 無効
補足 Support was disabled by default to mitigate speculative execution side-channel attacks (Mozilla Security Blog).
無効 From version 57: this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
未対応 55 — 57
未対応 46 — 55
無効
無効 From version 46 until version 55 (exclusive): this feature is behind the javascript.options.shared_memory preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 未対応 なしSafari iOS 未対応 10.3 — 11.3Samsung Internet Android 未対応 なし
補足
未対応 なし
補足
補足 Chrome disabled SharedArrayBuffer on January 5, 2018 to help reduce the efficacy of speculative side-channel attacks. This is intended as a temporary measure until other mitigations are in place.
nodejs 完全対応 8.10.0

凡例

完全対応  
完全対応
未対応  
未対応
実装ノートを参照してください。
実装ノートを参照してください。
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。

関連項目