The static Atomics
.isLockFree()
method is used to determine whether to use locks or atomic operations. It returns true
, if the given size is one of the BYTES_PER_ELEMENT property of integer TypedArray types.
Atomics.isLockFree(size)
size
A Boolean
indicating whether the operation is lock free.
Atomics.isLockFree(1); // true Atomics.isLockFree(2); // true Atomics.isLockFree(3); // false Atomics.isLockFree(4); // true Atomics.isLockFree(5); // false Atomics.isLockFree(6); // false Atomics.isLockFree(7); // false Atomics.isLockFree(8); // false
Specification | Status | Comment |
---|---|---|
ECMAScript Latest Draft (ECMA-262) The definition of 'Atomics.isLockFree' in that specification. | Draft | Initial definition in ES2017. |
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 601 | No2 |
55 — 57 46 — 555 |
No | No | 10.1 —? |
Feature | Android webview | Chrome for Android | Edge mobile | Firefox for Android | Opera Android | iOS Safari | Samsung Internet |
---|---|---|---|---|---|---|---|
Basic support | 601 | 601 | ? |
55 — 57 46 — 555 |
No | No | ? |
1. 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.
2. Support was removed to mitigate speculative execution side-channel attacks (Windows blog).
3. Support was disabled by default to mitigate speculative execution side-channel attacks (Mozilla Security Blog).
4. 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.
5. 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.
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Atomics/isLockFree