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, ou Uint32Array.
index
A posição no typedArray onde o value 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 o typedArray não for um dos tipos de inteiro permitidos.
  • Lança uma exceção TypeError, se o typedArray não for tipo array tipado compartilhado.
  • Lança uma exceção RangeError, se o index estiver fora dos limites no typedArray.

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 Latest Draft (ECMA-262)
The definition of 'Atomics.add' in that specification.
Rascunho 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!

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

Veja também