Atomics.add()
O método estátitico Atomics
.add()
adiciona um dado valor em uma determinada posição no array e retorna o valor antigo daquela posição. Esta operação atômica garante que nenhuma outra escrita ocorra até que o valor modificado seja escrito de volta.
Sintaxe
Atomics.add(typedArray, index, value)
Parâmetros
typedArray
- Um array tipado de inteiros compartilhado. Pode ser
Int8Array
,Uint8Array
,Int16Array
,Uint16Array
,Int32Array
, ouUint32Array
. index
- A posição no
typedArray
onde ovalue
será adicionado. value
- Número que será adicionado.
Valor de retorno
O valor antigo na determinada posição (typedArray[index]
).
Exceções
- Lança uma exceção
TypeError
, se otypedArray
não for um dos tipos de inteiro permitidos. - Lança uma exceção
TypeError
, se otypedArray
não for tipo array tipado compartilhado. - Lança uma exceção
RangeError
, se oindex
estiver fora dos limites notypedArray
.
Exemplos
var sab = new SharedArrayBuffer(1024);
var ta = new Uint8Array(sab);
Atomics.add(ta, 0, 12); // retorna 0, o valor antigo
Atomics.load(ta, 0); // 12
Especificações
Especificação | Status | Comentário |
---|---|---|
ECMAScript (ECMA-262) The definition of 'Atomics.add' in that specification. |
Padrão em tempo real | Definição inicial no ES2017. |
Compatibilidade dos browsers
Estamos convertendo nossos dados de compatibilidade para o formato JSON.
Esta tabela de compatibilidade ainda usa o formato antigo,
pois ainda não convertemos os dados que ela contém.
Descubra como você pode ajudar! (en-US)
Recurso | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Suporte básico | Não suportado [2] | Não suportado | 55 (55) [1] | Não suportado | Não suportado | Não suportado |
Recurso | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Suporte básico | Não suportado | Não suportado | 55.0 (55) [1] | Não suportado | Não suportado | Não suportado |
[1] No Firefox da versão 46 até a versão 54, este recurso fica desabilitado por uma configuração. Em about:config, altere o javascript.options.shared_memory
para true
.
[2] A implementação está sob desenvolvimento e necessita dessas flags de runtime: --js-flags=--harmony-sharedarraybuffer --enable-blink-feature=SharedArrayBuffer