The SharedArrayBuffer.prototype.slice()
method returns a new SharedArrayBuffer
whose contents are a copy of this SharedArrayBuffer
's bytes from begin, inclusive, up to end, exclusive. If either begin or end is negative, it refers to an index from the end of the array, as opposed to from the beginning. This method has the same algorithm as Array.prototype.slice()
.
sab.slice() sab.slice(begin) sab.slice(begin, end)
begin
Optional
slice(-2)
extracts the last two elements in the sequence.begin
is undefined, slice
begins from index 0
.end
Optional
slice
extracts up to but not including end
.slice(1,4)
extracts the second element through the fourth element (elements indexed 1, 2, and 3).slice(2,-1)
extracts the third element through the second-to-last element in the sequence.end
is omitted, slice
extracts through the end of the sequence (sab.byteLength
).
A new SharedArrayBuffer
containing the extracted elements.
var sab = new SharedArrayBuffer(1024); sab.slice(); // SharedArrayBuffer { byteLength: 1024 } sab.slice(2); // SharedArrayBuffer { byteLength: 1022 } sab.slice(-2); // SharedArrayBuffer { byteLength: 2 } sab.slice(0, 1); // SharedArrayBuffer { byteLength: 1 }
Specification | Status | Comment |
---|---|---|
ECMAScript Latest Draft (ECMA-262) The definition of 'SharedArrayBuffer.prototype.slice' 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/SharedArrayBuffer/slice