--- title: Atomics.add() slug: Web/JavaScript/Reference/Global_Objects/Atomics/add tags: - Atomics - Atômico - JavaScript - Memória Compartilhada - metodo translation_of: Web/JavaScript/Reference/Global_Objects/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.
Atomics.add(typedArray, index, value)
typedArray
index
typedArray
onde o value
será adicionado.value
O valor antigo na determinada posição (typedArray[index]
).
typedArray
não for um dos tipos de inteiro permitidos.typedArray
não for tipo array tipado compartilhado.index
estiver fora dos limites no typedArray
.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ção | Status | Comentário |
---|---|---|
{{SpecName('ESDraft', '#sec-atomics.add', 'Atomics.add')}} | {{Spec2('ESDraft')}} | Definição inicial no ES2017. |
{{CompatibilityTable}}
Recurso | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Suporte básico | {{CompatNo}} [2] | {{CompatNo}} | {{CompatGeckoDesktop("55")}} [1] | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
Recurso | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Suporte básico | {{CompatNo}} | {{CompatNo}} | {{CompatGeckoMobile("55")}} [1] | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
[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