Suporte ao recurso do mecanismo JavaScript
Compare os recursos do ECMAScript entre os modos JavaScript dos padrões ECMAScript 2021 (ES12) e ES5 em Zurich. Ambos os modos são compatíveis com um subconjunto de recursos do ECMAScript.
Para obter mais informações sobre esses recursos, consulte as especificações de linguagem ECMAScript (ECMA-262) em ECMA Internacional site.
Definições de suporte
- Compatível
- O recurso foi testado e validado.
- Sem Suporte
- O recurso não foi validado na versão atual.
- Não permitido
- O recurso não se alinha com ServiceNow AI Platform modelo de programação ou representa um risco de segurança ou desempenho. Recursos não permitidos resultam em um erro.
ECMAScript 2022 (ES13)
Importante:
Antes de implantar o código na produção, você deve testar os scripts usando os recursos compatíveis do ECMAScript 2022 (ES13) devido ao suporte recém-adicionado e parcial dos recursos nesta versão do ECMAScript.
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| campos de classe de instância pública | Compatível | Sem Suporte |
| suporte básico a campos de classe de instância privada | Sem Suporte | Sem Suporte |
| campos de classe de instância privada inicializadores | Sem Suporte | Sem Suporte |
| acesso opcional aos campos de classe de instância privada | Sem Suporte | Sem Suporte |
| acesso opcional a campos de classe de instância privada profunda | Sem Suporte | Sem Suporte |
| campos de classe de instância calculados | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| campos de classe estática pública | Compatível | Sem Suporte |
| Campos de classe estática usam [[definir]] | Compatível | Sem Suporte |
| campos de classe estática privada | Compatível | Sem Suporte |
| campos de classe estática calculados | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| métodos de instância privada | Sem Suporte | Sem Suporte |
| métodos estáticos privados | Compatível | Sem Suporte |
| propriedades do acessador privado | Sem Suporte | Sem Suporte |
| propriedades do acessador estático privado | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Array.prototype.at() | Compatível | Sem Suporte |
| String.prototype.at() | Compatível | Sem Suporte |
| %TypedArray%.prototype.at() | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Funcionalidade básica | Compatível | Sem Suporte |
| ToObject chamado antes de ToPropertyKey | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| O erro tem causa | Compatível | Sem Suporte |
| Error.prototype Falta causa | Compatível | Sem Suporte |
| EvalError tem causa | Compatível | Sem Suporte |
| EvalError.prototype Falta causa | Compatível | Sem Suporte |
| RangeError tem causa | Compatível | Sem Suporte |
| RangeError.prototype Falta causa | Compatível | Sem Suporte |
| ReferenceError tem causa | Compatível | Sem Suporte |
| ReferenceError.prototype Falta causa | Compatível | Sem Suporte |
| SyntaxError tem causa | Compatível | Sem Suporte |
| SyntaxError.prototype Falta causa | Compatível | Sem Suporte |
| TypeError tem causa | Compatível | Sem Suporte |
| TypeError.prototype Falta causa | Compatível | Sem Suporte |
| URIError tem causa | Compatível | Sem Suporte |
| URIError.prototype Falta causa | Compatível | Sem Suporte |
| AggregateError tem causa | Compatível | Sem Suporte |
| AggregateError.prototype Falta causa | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| o construtor oferece suporte a ele | Sem Suporte | Sem Suporte |
| aparece em sinalizadores | Sem Suporte | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Verificações ergonômicas de marca para campos privados | Sem Suporte | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Blocos de inicialização estática de classe | Compatível | Sem Suporte |
ECMAScript 2021 (ES12)
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| execução | Compatível | Não permitido |
| AggregateError | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Suporte mínimo WeakRef | Não permitido | Não permitido |
| FinalizationRegistry Suporte mínimo | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| suporte básico | Compatível | Sem Suporte |
| comportamento de curto-circuito | Compatível | Sem Suporte |
| setter não invocado desnecessariamente | Compatível | Sem Suporte |
| suporte básico | Compatível | Sem Suporte |
| comportamento de curto-circuito | Compatível | Sem Suporte |
| setter não invocado desnecessariamente | Compatível | Sem Suporte |
| suporte básico | Compatível | Sem Suporte |
| comportamento de curto-circuito | Compatível | Sem Suporte |
| setter não invocado desnecessariamente | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| separadores numéricos | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| String.prototype.replaceAll | Compatível | Compatível |
ECMAScript 2020 (ES11)
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| lança regex não global | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| construtor | Compatível | Sem Suporte |
| BIGINT.asUintN | Compatível | Sem Suporte |
| BIGINT.asIntN | Compatível | Sem Suporte |
| BigInt64Array | Sem Suporte | Sem Suporte |
| BigUint64Array | Sem Suporte | Sem Suporte |
| DataView.prototype.getBigInt64 | Sem Suporte | Sem Suporte |
| DataView.prototype.getBigUint64 | Sem Suporte | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| "GlobalThis" propriedade global é um objeto global | Compatível | Não permitido |
| A propriedade global "globalThis" tem o descritor de propriedade correto | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| acesso à propriedade opcional | Compatível | Sem Suporte |
| acesso de suporte opcional | Compatível | Sem Suporte |
| chamada de método opcional | Compatível | Sem Suporte |
| chamada de função opcional | Compatível | Sem Suporte |
| parâmetros de propagação após o encadeamento opcional | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Promise.TodosConfirmada | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| anular operador aglutinante (??) | Compatível | Sem Suporte |
ECMAScript 2019 (ES10)
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| básico | Compatível | Sem Suporte |
| descrição vazia | Compatível | Sem Suporte |
| descrição indefinida | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| String.prototype.trimLeft | Compatível | Compatível |
| String.prototype.trimRight | Compatível | Compatível |
| String.prototype.trimStart | Compatível | Sem Suporte |
| String.prototype.trimEnd | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Array.prototype.flat | Compatível | Sem Suporte |
| Array.prototype.flatMap | Compatível | Sem Suporte |
| flat e flatMap em Array.prototype[@@unscopables] | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Object.fromEntries | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| básico | Compatível | Não permitido |
| aguardar | Não permitido | Não permitido |
| rendimento | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Funções criadas com o construtor de função | Não permitido | Não permitido |
| setas | Não permitido | Não permitido |
| [código nativo] | Não permitido | Não permitido |
| expressão de classe com construtor implícito | Não permitido | Não permitido |
| expressão de classe com construtor explícito | Não permitido | Não permitido |
| sequências de escape unicode em identificadores | Não permitido | Não permitido |
| nomes de propriedades calculadas e métodos | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| O separador de linha pode aparecer em literais de cadeia de caracteres | Não permitido | Não permitido |
| O separador de parágrafo pode aparecer em literais de cadeia de caracteres | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| JSON.stringify bem formado | Não permitido | Não permitido |
ECMAScript 2018 (ES9)
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| propriedades rest do objeto | Compatível | Sem Suporte |
| propriedades de propagação do objeto | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| suporte básico | Compatível | Não permitido |
| não mude o valor de resolução | Compatível | Não permitido |
| valor de rejeição alterado | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| geradores assíncronos | Não permitido | Não permitido |
| loops para-await-of | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Sinalizador S (dotAll) para expressões regulares | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Grupos de captura nomeados de regexp | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Estipulações de Lookbehind de regexp | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Escapes de propriedade Unicode de regexp | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| revisão literal do modelo | Não permitido | Não permitido |
ECMAScript 2017 (ES8)
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Object.Values | Compatível | Sem Suporte |
| Object.Entries | Compatível | Sem Suporte |
| Object.getOwnProperty Descriptors | Compatível | Sem Suporte |
| Object.getOwnPropertyDescriptors não fornece descritores indefinidos | Sem Suporte | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| String.prototype.padStart | Compatível | Sem Suporte |
| String.prototype.padEnd | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| nas listas de parâmetros | Compatível | Sem Suporte |
| nas listas de argumentos | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| retornar | Compatível | Não permitido |
| throw | Compatível | Não permitido |
| nenhuma quebra de linha entre async e função | Compatível | Não permitido |
| nenhuma propriedade "protótipo" | Não permitido | Não permitido |
| aguardar | Compatível | Não permitido |
| rejeitar | Compatível | Não permitido |
| deve aguardar um valor | Não permitido | Não permitido |
| Pode aguardar valores não prometidos | Compatível | Não permitido |
| parâmetros não podem aguardar | Não permitido | Não permitido |
| métodos assíncronos, literais de objeto | Compatível | Não permitido |
| métodos assíncronos, classes | Não permitido | Não permitido |
| funções de seta assíncrona em métodos, classes | Compatível | Não permitido |
| funções de seta assíncrona | Compatível | Não permitido |
| cadeia de protótipos correta | Não permitido | Não permitido |
| Protótipo de função assíncrona, Symbol.toStringTag | Não permitido | Não permitido |
| construtor de função assíncrona | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| SharedArrayBuffer | Não permitido | Não permitido |
| SharedArrayBuffer[Symbol.Species] | Não permitido | Não permitido |
| SharedArrayBuffer.prototype.byteLength | Não permitido | Não permitido |
| SharedArrayBuffer.prototype.slice | Não permitido | Não permitido |
| SharedArrayBuffer.prototype[Symbol.toStringTag] | Não permitido | Não permitido |
| Atomics.adicionar | Não permitido | Não permitido |
| Atomics.e. | Não permitido | Não permitido |
| Atomics.compareExchange | Não permitido | Não permitido |
| Atomics.exchange | Não permitido | Não permitido |
| Atomics.Aguardar | Não permitido | Não permitido |
| Atomics.wake | Não permitido | Não permitido |
| Atomics.isLockFree | Não permitido | Não permitido |
| Atomics.load | Não permitido | Não permitido |
| Atomics.ou | Não permitido | Não permitido |
| Atomics.store | Não permitido | Não permitido |
| Atomics.sub | Não permitido | Não permitido |
| Atomics.xor | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| __definieGetter__ | Compatível | Não permitido |
| __definieGetter__, símbolos | Compatível | Não permitido |
| __definieGetter__, ToObject(this) | Não permitido | Não permitido |
| DefineSetter__ | Compatível | Não permitido |
| __definieSetter__, símbolos | Compatível | Não permitido |
| __defineSetter__, ToObject(this) | Não permitido | Não permitido |
| __lookupGetter__ | Compatível | Não permitido |
| __lookupGetter__, cadeia de protótipos | Compatível | Não permitido |
| __lookupGetter__, símbolos | Compatível | Não permitido |
| __lookupGetter__, ToObject(this) | Não permitido | Não permitido |
| __lookupGetter__, as propriedades de dados podem sombrear os acessadores | Não permitido | Não permitido |
| __lookupSetter__ | Compatível | Não permitido |
| LookupSetter__, cadeia de protótipos | Compatível | Não permitido |
| __lookupSetter__, símbolos | Compatível | Não permitido |
| __lookupSetter__, ToObject(this) | Não permitido | Não permitido |
| __lookupSetter__, as propriedades de dados podem sombrear os acessadores | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| __definieGetter__ | Compatível | Não permitido |
| DefineSetter__ | Compatível | Não permitido |
| __lookupGetter__ | Compatível | Não permitido |
| __lookupSetter__ | Compatível | Não permitido |
ECMAScript 2016 (ES7)
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| suporte básico | Compatível | Sem Suporte |
| atribuição | Compatível | Sem Suporte |
| erro de sintaxe anterior para negação unária sem parênteses | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Array.prototype.includes | Compatível | Sem Suporte |
| Array.prototype.includes é genérico | Sem Suporte | Sem Suporte |
| TypedArray%.prototype.includes | Compatível | Não permitido |
ECMAScript 2015 (ES6)
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| recursão direta | Não permitido | Não permitido |
| recursão mútua | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| adiamentos explícitos indefinidos para o padrão | Compatível | Sem Suporte |
| os padrões podem se referir a parâmetros anteriores | Compatível | Sem Suporte |
| interação do objeto de argumentos | Compatível | Sem Suporte |
| zona morta temporal | Não permitido | Não permitido |
| escopo separado | Compatível | Sem Suporte |
| Novo suporte a função() | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| propriedade "comprimento" da função | Compatível | Sem Suporte |
| interação do objeto de argumentos | Sem Suporte | Sem Suporte |
| não pode ser usado em definidores | Não permitido | Não permitido |
| Novo suporte a função() | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| com matrizes, em chamadas de função | Compatível | Sem Suporte |
| com matrizes, em literais de matriz | Compatível | Sem Suporte |
| com matrizes dispersas, em chamadas de função | Compatível | Sem Suporte |
| com matrizes dispersas, em literais de matriz | Compatível | Sem Suporte |
| com cadeias de caracteres, em chamadas de função | Compatível | Sem Suporte |
| com cadeias de caracteres, em literais de matriz | Compatível | Sem Suporte |
| com cadeias de caracteres do plano astral, em chamadas de função | Compatível | Sem Suporte |
| com cadeias de caracteres do plano astral, em literais de matriz | Compatível | Sem Suporte |
| com instâncias do gerador, em chamadas | Não permitido | Não permitido |
| com instâncias do gerador, em matrizes | Não permitido | Não permitido |
| com iteráveis genéricos, em chamadas | Compatível | Sem Suporte |
| com iteráveis genéricos, em matrizes | Compatível | Sem Suporte |
| com instâncias de iteráveis, em chamadas | Compatível | Sem Suporte |
| com instâncias de iteráveis, em matrizes | Compatível | Sem Suporte |
| espalhar não iteráveis é um erro de tempo de execução | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| propriedades calculadas | Compatível | Sem Suporte |
| propriedades resumidas | Compatível | Sem Suporte |
| métodos resumidos | Compatível | Sem Suporte |
| métodos resumidos com chave de cadeia de caracteres | Compatível | Sem Suporte |
| métodos resumidos calculados | Compatível | Sem Suporte |
| acessadores calculados | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| com matrizes | Compatível | Sem Suporte |
| com matrizes dispersas | Compatível | Sem Suporte |
| com cadeias de caracteres | Compatível | Sem Suporte |
| com cadeias do plano astral | Compatível | Sem Suporte |
| com instâncias do gerador | Não permitido | Não permitido |
| com iteráveis genéricos | Compatível | Sem Suporte |
| com instâncias de iteráveis genéricos | Compatível | Sem Suporte |
| fechamento do iterador, pausa | Compatível | Sem Suporte |
| iterador fechando, lançar | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| literais octais | Compatível | Sem Suporte |
| literais binários | Compatível | Sem Suporte |
| Octal compatível com Number() | Sem Suporte | Sem Suporte |
| Binário compatível com Number() | Sem Suporte | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| Conversão para Cadeia de caracteres | Compatível | Sem Suporte |
| literais de modelo marcados | Compatível | Sem Suporte |
| a matriz aprovada está congelada | Compatível | Sem Suporte |
| normalização de quebra de linha | Não permitido | Não permitido |
| TemplateStrings chamam cache do site | Compatível | Sem Suporte |
| Cache permanente do TemplateStrings | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| sinalizador "y" | Compatível | Sem Suporte |
| Sinalizador "y", lastIndex | Compatível | Sem Suporte |
| sinalizador "u" | Compatível | Sem Suporte |
| Sinalizador "u", caracteres Unicode não BMP | Compatível | Sem Suporte |
| Sinalizador "u", escapes de ponto de código Unicode | Compatível | Sem Suporte |
| bandeira "u", caso dobrável | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| com matrizes | Compatível | Sem Suporte |
| com matrizes dispersas | Compatível | Sem Suporte |
| com cadeias de caracteres | Compatível | Sem Suporte |
| com cadeias do plano astral | Compatível | Sem Suporte |
| com instâncias do gerador | Não permitido | Não permitido |
| com iteráveis genéricos | Compatível | Sem Suporte |
| com instâncias de iteráveis genéricos | Compatível | Sem Suporte |
| fechamento do iterador | Compatível | Sem Suporte |
| vírgulas à direita em padrões iteráveis | Compatível | Sem Suporte |
| com objetos | Compatível | Sem Suporte |
| desestruturação de objeto com primitivos | Compatível | Sem Suporte |
| vírgulas à direita em padrões de objeto | Compatível | Sem Suporte |
| lança nulo e indefinido | Compatível | Sem Suporte |
| propriedades calculadas | Compatível | Sem Suporte |
| múltiplos em uma única declaração de var | Compatível | Sem Suporte |
| aninhado | Compatível | Sem Suporte |
| em cabeças de loop para-em | Compatível | Sem Suporte |
| em para-de cabeças de loop | Compatível | Sem Suporte |
| em catch heads | Compatível | Sem Suporte |
| rest | Compatível | Sem Suporte |
| padrões | Compatível | Sem Suporte |
| deixar zona morta temporal | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| com matrizes | Compatível | Sem Suporte |
| com matrizes dispersas | Compatível | Sem Suporte |
| com cadeias de caracteres | Compatível | Sem Suporte |
| com cadeias do plano astral | Compatível | Sem Suporte |
| com instâncias do gerador | Não permitido | Não permitido |
| com iteráveis genéricos | Compatível | Sem Suporte |
| com instâncias de iteráveis genéricos | Compatível | Sem Suporte |
| fechamento do iterador | Compatível | Sem Suporte |
| expressão de desestruturação iterável | Compatível | Sem Suporte |
| desestruturação iterável encadeada | Compatível | Sem Suporte |
| vírgulas à direita em padrões iteráveis | Compatível | Sem Suporte |
| com objetos | Compatível | Sem Suporte |
| desestruturação de objeto com primitivos | Compatível | Sem Suporte |
| vírgulas à direita em padrões de objeto | Compatível | Sem Suporte |
| expressão de desestruturação do objeto | Compatível | Sem Suporte |
| o lado esquerdo com parênteses é um erro de sintaxe | Não permitido | Não permitido |
| desestruturação de objeto encadeado | Compatível | Sem Suporte |
| lança nulo e indefinido | Compatível | Sem Suporte |
| propriedades calculadas | Compatível | Sem Suporte |
| aninhado | Compatível | Sem Suporte |
| rest | Compatível | Sem Suporte |
| rest aninhado | Compatível | Sem Suporte |
| padrões vazios | Compatível | Sem Suporte |
| padrões | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| com matrizes | Compatível | Sem Suporte |
| com matrizes dispersas | Compatível | Sem Suporte |
| com cadeias de caracteres | Compatível | Sem Suporte |
| com cadeias do plano astral | Compatível | Sem Suporte |
| com instâncias do gerador | Não permitido | Não permitido |
| com iteráveis genéricos | Compatível | Sem Suporte |
| com instâncias de iteráveis genéricos | Compatível | Sem Suporte |
| fechamento do iterador | Compatível | Sem Suporte |
| vírgulas à direita em padrões iteráveis | Compatível | Sem Suporte |
| com objetos | Compatível | Sem Suporte |
| desestruturação de objeto com primitivos | Compatível | Sem Suporte |
| vírgulas à direita em padrões de objeto | Compatível | Sem Suporte |
| lança nulo e indefinido | Compatível | Sem Suporte |
| propriedades calculadas | Compatível | Sem Suporte |
| aninhado | Compatível | Sem Suporte |
| interação "argumentos" | Compatível | Sem Suporte |
| Novo suporte a função() | Não permitido | Não permitido |
| em parâmetros, a propriedade "length" da função | Compatível | Sem Suporte |
| rest | Compatível | Sem Suporte |
| padrões vazios | Compatível | Sem Suporte |
| padrões | Compatível | Sem Suporte |
| escopo separado | Compatível | Sem Suporte |
| Suporte a new function() | Não permitido | Não permitido |
| padrão com alias, função de seta | Compatível | Sem Suporte |
| padrão de abreviação, função de seta | Compatível | Sem Suporte |
| identificador duplicado | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| em cadeias de caracteres | Compatível | Sem Suporte |
| em identificadores | Sem Suporte | Sem Suporte |
| nas definições de chave de propriedade | Sem Suporte | Sem Suporte |
| em acessos de chave de propriedade | Sem Suporte | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| em construtores | Sem Suporte | Sem Suporte |
| a atribuição é um erro inicial | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| suporte básico | Compatível | Compatível |
| tem escopo de bloco | Compatível | Sem Suporte |
| resolução de sombra do escopo | Compatível | Sem Suporte |
| não pode estar nas declarações | Não permitido | Não permitido |
| redefinir uma const é um erro | Não permitido | Não permitido |
| para o escopo da declaração de loop | Compatível | Sem Suporte |
| escopo de iteração de loop para-in | Compatível | Sem Suporte |
| escopo de iteração de loop for-of | Compatível | Sem Suporte |
| zona morta temporal | Sem Suporte | Sem Suporte |
| suporte básico (modo estrito) | Compatível | Compatível |
| tem escopo de bloco (modo estrito) | Compatível | Sem Suporte |
| resolução de sombra do escopo (modo estrito) | Compatível | Sem Suporte |
| não pode estar em declarações (modo estrito) | Não permitido | Não permitido |
| redefinindo uma const (modo estrito) | Não permitido | Não permitido |
| para escopo de declaração de loop (modo estrito) | Compatível | Sem Suporte |
| escopo de iteração de loop para-in (modo estrito) | Compatível | Sem Suporte |
| escopo de iteração de loop for-of (modo estrito) | Compatível | Sem Suporte |
| zona morta temporal (modo estrito) | Sem Suporte | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| suporte básico | Compatível | Sem Suporte |
| tem escopo de bloco | Compatível | Sem Suporte |
| resolução de sombra do escopo | Compatível | Sem Suporte |
| não pode estar nas declarações | Não permitido | Não permitido |
| para o escopo da declaração de loop | Compatível | Sem Suporte |
| zona morta temporal | Sem Suporte | Sem Suporte |
| escopo de iteração de loop for/for-in | Compatível | Sem Suporte |
| parâmetro de sombreamento de vinculação de loop para-in | Não permitido | Não permitido |
| suporte básico (modo estrito) | Compatível | Sem Suporte |
| tem escopo de bloco (modo estrito) | Compatível | Sem Suporte |
| resolução de sombra do escopo (modo estrito) | Compatível | Sem Suporte |
| não pode estar em declarações (modo estrito) | Não permitido | Não permitido |
| para escopo de declaração de loop (modo estrito) | Compatível | Sem Suporte |
| zona morta temporal (modo estrito) | Sem Suporte | Sem Suporte |
| escopo de iteração de loop for/for-in (modo estrito) | Compatível | Sem Suporte |
| parâmetro de sombreamento de vinculação de loop para-in (modo estrito) | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| declaração de função em nível de bloco | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| 0 parâmetros | Compatível | Sem Suporte |
| 1 parâmetro, sem colchetes | Compatível | Sem Suporte |
| vários parâmetros | Compatível | Sem Suporte |
| vinculação lexical "this" | Compatível | Sem Suporte |
| "este" inalterado por chamada ou aplicar | Compatível | Sem Suporte |
| não pode ser vinculado, pode ser curried | Compatível | Sem Suporte |
| vinculação de "argumentos" lexical | Compatível | Sem Suporte |
nenhuma quebra de linha entre os parâmetros e. . |
Não permitido | Não permitido |
| precedência correta | Não permitido | Não permitido |
| nenhuma propriedade "protótipo" | Sem Suporte | Sem Suporte |
| "super" vinculação lexical em construtores | Compatível | Sem Suporte |
| "super" vinculação lexical em métodos | Compatível | Sem Suporte |
| vinculação lexical "new.target" | Sem Suporte | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| declaração de classe | Compatível | Sem Suporte |
| tem escopo de bloco | Compatível | Sem Suporte |
| expressão de classe | Compatível | Sem Suporte |
| classe anônima | Compatível | Sem Suporte |
| construtor | Compatível | Sem Suporte |
| métodos de protótipo | Compatível | Sem Suporte |
| métodos com chave de cadeia de caracteres | Compatível | Sem Suporte |
| métodos de protótipo calculados | Compatível | Sem Suporte |
| ponto-e-vírgula opcionais | Compatível | Sem Suporte |
| métodos estáticos | Compatível | Sem Suporte |
| métodos estáticos calculados | Compatível | Sem Suporte |
| propriedades do acessador | Compatível | Sem Suporte |
| propriedades do acessador calculadas | Compatível | Sem Suporte |
| propriedades do acessador estático | Compatível | Sem Suporte |
| propriedades do acessador estático calculadas | Compatível | Sem Suporte |
| o nome da classe tem escopo lexicamente definido | Compatível | Sem Suporte |
| nomes calculados, zona morta temporal | Sem Suporte | Sem Suporte |
| os métodos não são enumeráveis | Compatível | Sem Suporte |
| modo estrito implícito | Sem Suporte | Sem Suporte |
| o construtor requer novo | Compatível | Sem Suporte |
| estendidos | Compatível | Sem Suporte |
| estende expressões | Compatível | Sem Suporte |
| estende nulo | Compatível | Sem Suporte |
| new.target | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| declaração em construtores | Compatível | Sem Suporte |
| expressão em construtores | Compatível | Sem Suporte |
| em métodos, acesso à propriedade | Compatível | Sem Suporte |
| em métodos, o método chama | Compatível | Sem Suporte |
| as chamadas de método usam a vinculação "this" correta | Compatível | Sem Suporte |
| as chamadas do construtor usam a vinculação "new.target" correta | Compatível | Sem Suporte |
| está vinculado estaticamente | Compatível | Sem Suporte |
| super() invoca o construtor correto | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Não permitido |
| expressões de função do gerador | Compatível | Não permitido |
| vinculação "this" correta | Compatível | Não permitido |
| não é possível usar "isto" com novo | Compatível | Não permitido |
| enviando | Compatível | Não permitido |
| %GeneratorPrototype% | Não permitido | Não permitido |
| Cadeia de protótipos %GeneratorPrototype% | Não permitido | Não permitido |
| %GeneratorPrototype%.construtor | Não permitido | Não permitido |
| %GeneratorPrototype%.Lançamento | Não permitido | Não permitido |
| %GeneratorPrototype%.Retornar | Não permitido | Não permitido |
| precedência do operador de rendimento | Não permitido | Não permitido |
| rendimento *, matrizes | Compatível | Não permitido |
| matrizes dispersas de rendimento * | Compatível | Não permitido |
| rendimento *, cadeias de caracteres | Compatível | Não permitido |
| cadeias de caracteres do plano astral | Compatível | Não permitido |
| rendimento *, instâncias do gerador | Compatível | Não permitido |
| rendimento *, iteráveis genéricos | Compatível | Não permitido |
| rendimento *, instâncias de iteráveis | Compatível | Não permitido |
| rendimento * em não iteráveis é um erro de tempo de execução | Compatível | Não permitido |
| rendimento *, fechamento do iterador | Compatível | Não permitido |
| rendimento *, fechamento do iterador via throw() | Compatível | Não permitido |
| métodos de gerador resumidos | Compatível | Não permitido |
| métodos de gerador de abreviação com chave de cadeia de caracteres | Compatível | Não permitido |
| geradores resumidos calculados | Compatível | Não permitido |
| métodos de gerador resumidos, classes | Compatível | Não permitido |
| geradores resumidos calculados, classes | Compatível | Não permitido |
| geradores resumidos não podem ser construtores | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Int8Array | Compatível | Não permitido |
| Uint8Array | Compatível | Não permitido |
| Uint8ClampedArray | Compatível | Não permitido |
| Int16Array | Compatível | Não permitido |
| Uint16Array | Compatível | Não permitido |
| Int32Array | Compatível | Não permitido |
| Uint32Array | Compatível | Não permitido |
| Float32Array | Compatível | Não permitido |
| Float64Array | Compatível | Não permitido |
| Dataview (Int8) | Compatível | Não permitido |
| Dataview (UINT8) | Compatível | Não permitido |
| DataView (Int16) | Compatível | Não permitido |
| Dataview (UINT16) | Compatível | Não permitido |
| Dataview (Int32) | Compatível | Não permitido |
| Dataview (UINT32) | Compatível | Não permitido |
| Dataview (Float32) | Compatível | Não permitido |
| Dataview (Float64) | Compatível | Não permitido |
| ArrayBuffer[Symbol.Species] | Compatível | Não permitido |
| construtores exigem novo | Compatível | Não permitido |
| construtores aceitam iteráveis genéricos | Compatível | Não permitido |
| cadeias de protótipos corretas | Não permitido | Não permitido |
| TypedArray%.De | Compatível | Não permitido |
| TypedArray%.of | Compatível | Não permitido |
| TypedArray%.prototype.subarray | Compatível | Não permitido |
| TypedArray%.prototype.join | Compatível | Não permitido |
| TypedArray%.prototype.indexOf | Compatível | Não permitido |
| TypedArray%.prototype.lastIndexOf | Compatível | Não permitido |
| TypedArray%.prototype.slice | Compatível | Não permitido |
| TypedArray%.prototype.every | Compatível | Não permitido |
| TypedArray%.prototype.filter | Compatível | Não permitido |
| TypedArray%.prototype.foreach | Compatível | Não permitido |
| TypedArray%.prototype.map | Compatível | Não permitido |
| TypedArray%.prototype.reduce | Compatível | Não permitido |
| TypedArray%.prototype.reduceRight | Compatível | Não permitido |
| TypedArray%.prototype.reverse | Compatível | Não permitido |
| TypedArray%.prototype.Alguns | Compatível | Não permitido |
| TypedArray%.prototype.sort | Compatível | Não permitido |
| TypedArray%.prototype.copyWithin | Compatível | Não permitido |
| TypedArray%.prototype.find | Compatível | Não permitido |
| TypedArray%.prototype.findIndex | Compatível | Não permitido |
| TypedArray%.prototype.fill | Compatível | Não permitido |
| TypedArray%.prototype.keys | Compatível | Não permitido |
| TypedArray%.prototype.values | Compatível | Não permitido |
| TypedArray%.prototype.Entries | Compatível | Não permitido |
| TypedArray%.prototype[Symbol.iterator] | Compatível | Não permitido |
| TypedArray%[Symbol.Species] | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| argumentos do construtor | Compatível | Sem Suporte |
| o construtor requer novo | Compatível | Sem Suporte |
| o construtor aceita nulo | Compatível | Sem Suporte |
| o construtor invoca o conjunto | Compatível | Sem Suporte |
| fechamento do iterador | Compatível | Sem Suporte |
| Map.prototype.set retorna isso | Compatível | Sem Suporte |
| -0 chave converte em 0 | Compatível | Sem Suporte |
| Map.prototype.size | Compatível | Sem Suporte |
| Map.prototype.delete | Compatível | Sem Suporte |
| Map.prototype.clear | Compatível | Sem Suporte |
| Map.prototype.forEach | Compatível | Sem Suporte |
| Map.prototype.keys | Compatível | Sem Suporte |
| Map.prototype.values | Compatível | Sem Suporte |
| Map.prototype.entries | Compatível | Sem Suporte |
| Map.prototype[Symbol.iterator] | Compatível | Sem Suporte |
| Map.prototype não é uma instância | Compatível | Sem Suporte |
| Cadeia de protótipos do iterador de mapa | Compatível | Sem Suporte |
| Mapa[Symbol.Species] | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| argumentos do construtor | Compatível | Sem Suporte |
| o construtor requer novo | Compatível | Sem Suporte |
| o construtor aceita nulo | Compatível | Sem Suporte |
| o construtor invoca adicionar | Compatível | Sem Suporte |
| fechamento do iterador | Compatível | Sem Suporte |
| Set.prototype.add retorna isso | Compatível | Sem Suporte |
| -0 chave converte em 0 | Compatível | Sem Suporte |
| Set.prototype.size | Compatível | Sem Suporte |
| Set.prototype.delete | Compatível | Sem Suporte |
| Set.prototype.clear | Compatível | Sem Suporte |
| Set.prototype.forEach | Compatível | Sem Suporte |
| Set.prototype.keys | Compatível | Sem Suporte |
| Set.prototype.values | Compatível | Sem Suporte |
| Set.prototype.entries | Compatível | Sem Suporte |
| Set.prototype[Symbol.iterator] | Compatível | Sem Suporte |
| Set.prototype não é uma instância | Compatível | Sem Suporte |
| Cadeia de protótipos do iterador | Compatível | Sem Suporte |
| Definir[Symbol.Species] | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Não permitido |
| argumentos do construtor | Compatível | Não permitido |
| o construtor requer novo | Compatível | Não permitido |
| o construtor aceita nulo | Compatível | Não permitido |
| o construtor invoca o conjunto | Compatível | Não permitido |
| objetos congelados como chaves | Compatível | Não permitido |
| fechamento do iterador | Compatível | Não permitido |
| WeakMap.prototype.set retorna isso | Compatível | Não permitido |
| WeakMap.prototype.delete | Compatível | Não permitido |
| nenhum método WeakMap.prototype.clear | Compatível | Não permitido |
| os métodos .has, .get e .delete aceitam primitivos | Não permitido | Não permitido |
| WeakMap.prototype não é uma instância | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Não permitido |
| argumentos do construtor | Compatível | Não permitido |
| o construtor requer novo | Compatível | Não permitido |
| o construtor aceita nulo | Compatível | Não permitido |
| o construtor invoca adicionar | Compatível | Não permitido |
| fechamento do iterador | Compatível | Não permitido |
| WeakSet.prototype.add retorna isso | Compatível | Não permitido |
| WeakSet.prototype.delete | Compatível | Não permitido |
| nenhum método WeakSet.prototype.clear | Compatível | Não permitido |
| os métodos .has e .delete aceitam primitivos | Não permitido | Não permitido |
| WeakSet.prototype não é uma instância | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| o construtor requer novo | Compatível | Não permitido |
| nenhuma propriedade "protótipo" | Compatível | Não permitido |
| manipulador "obter" | Compatível | Não permitido |
| manipulador "get", instâncias de proxies | Compatível | Não permitido |
| invariantes do manipulador "get" | Compatível | Não permitido |
| manipulador "definir" | Compatível | Não permitido |
| manipulador "definir", instâncias de proxies | Compatível | Não permitido |
| invariantes do manipulador "definir" | Compatível | Não permitido |
| manipulador "tem" | Compatível | Não permitido |
| manipulador "tem", instâncias de proxies | Compatível | Não permitido |
| manipulador "tem" invariantes | Compatível | Não permitido |
| Manipulador "deleteProperty" | Compatível | Não permitido |
| Manipulador "deleteProperty" invariante | Compatível | Não permitido |
| Manipulador "getOwnPropertyDescriptor" | Compatível | Não permitido |
| Invariantes do manipulador "getOwnPropertyDescriptor" | Compatível | Não permitido |
| Manipulador "defineProperty" | Compatível | Não permitido |
| Invariantes do manipulador "defineProperty" | Compatível | Não permitido |
| Manipulador "getPrototypeOf" | Compatível | Não permitido |
| Manipulador "getPrototypeOf" invariante | Compatível | Não permitido |
| Manipulador "setPrototypeOf" | Compatível | Não permitido |
| Manipulador "setPrototypeOf" invariante | Compatível | Não permitido |
| Manipulador "isExtensible" | Compatível | Não permitido |
| Manipulador "isExtensible" invariante | Compatível | Não permitido |
| Manipulador "preventExtensions" | Compatível | Não permitido |
| Manipulador "preventExtensions" invariante | Compatível | Não permitido |
| Manipulador "ownKeys" | Compatível | Não permitido |
| Manipulador "ownKeys" invariante | Compatível | Não permitido |
| manipulador "aplicar" | Compatível | Não permitido |
| manipulador "aplicar" invariante | Compatível | Não permitido |
| manipulador "construir" | Compatível | Não permitido |
| invariantes do manipulador "construir" | Compatível | Não permitido |
| Proxy.revogável | Compatível | Não permitido |
| Suporte a array.isArray | Compatível | Não permitido |
| Suporte a JSON.stringify | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Refletir.Obter | Não permitido | Não permitido |
| Reflect.set | Não permitido | Não permitido |
| Refletir.Tem | Não permitido | Não permitido |
| Reflect.deleteProperty | Não permitido | Não permitido |
| Reflect.getOwnProperty Descriptor | Não permitido | Não permitido |
| Reflect.defineProperty | Não permitido | Não permitido |
| Refletir.getPrototypeOf | Não permitido | Não permitido |
| Reflect.setPrototypeOf | Não permitido | Não permitido |
| Reflect.isExtensible | Não permitido | Não permitido |
| Reflect.preventExtensions | Não permitido | Não permitido |
| Reflect.ownKeys, chaves de cadeia de caracteres | Não permitido | Não permitido |
| Reflect.ownKeys, chaves de símbolo | Não permitido | Não permitido |
| Refletir.Aplicar | Não permitido | Não permitido |
| Refletir.construir | Não permitido | Não permitido |
| Reflect.construct define a meta-propriedade new.target | Não permitido | Não permitido |
| Reflect.construct cria instâncias do terceiro argumento | Não permitido | Não permitido |
| Reflect.construct, Subclasse de matriz | Não permitido | Não permitido |
| Reflect.construct, subclasse RegExp | Não permitido | Não permitido |
| Reflect.construct, subclasse de função | Não permitido | Não permitido |
| Reflect.construct, subclasse de promessa | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Não permitido |
| o construtor requer novo | Compatível | Não permitido |
| Promise.prototype não é uma instância | Compatível | Não permitido |
| Promise.ALL | Compatível | Não permitido |
| Promise.all, iteráveis genéricos | Compatível | Não permitido |
| Promise.race | Compatível | Não permitido |
| Promise.race, iteráveis genéricos | Compatível | Não permitido |
| Promessa[Symbol.Species] | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| tipo de suporte | Compatível | Sem Suporte |
| As chaves de símbolo estão ocultas para o código anterior ao ES6 | Compatível | Sem Suporte |
| Suporte Object.defineProperty | Compatível | Sem Suporte |
| Os símbolos herdam de Symbol.prototype | Compatível | Sem Suporte |
| não é possível coagir para cadeia de caracteres ou número | Compatível | Sem Suporte |
| Pode converter com cadeia de caracteres () | Compatível | Sem Suporte |
| Novo símbolo () lança | Compatível | Sem Suporte |
| Object(symbol) | Sem Suporte | Sem Suporte |
| JSON.stringify ignora primitivos de símbolo | Compatível | Sem Suporte |
| JSON.stringify ignora objetos de símbolo | Sem Suporte | Sem Suporte |
| registro de símbolo global | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Symbol.hasInstance | Compatível | Não permitido |
| Symbol.isConcatSpreadable | Compatível | Não permitido |
| Symbol.iterator, existência | Compatível | Não permitido |
| Symbol.iterator, objeto de argumentos | Compatível | Não permitido |
| Símbol.Espécie, Existência | Compatível | Não permitido |
| Símbolo.Espécie, Array.prototype.concat | Não permitido | Não permitido |
| Símbolo.Espécie, Array.prototype.filter | Não permitido | Não permitido |
| Símbolo.Espécie, Array.prototype.map | Não permitido | Não permitido |
| Símbolo.Espécie, Array.prototype.slice | Não permitido | Não permitido |
| Símbolo.Espécie, Array.prototype.splice | Não permitido | Não permitido |
| Símbolo.Espécie, RegExp.prototype[Symbol.split] | Não permitido | Não permitido |
| Símbolo.Espécie, Promise.prototype.then | Não permitido | Não permitido |
| Símbolo.Substituir | Compatível | Não permitido |
| Symbol.search | Compatível | Não permitido |
| Symbol.split | Compatível | Não permitido |
| Symbol.match | Compatível | Não permitido |
| Symbol.match, construtor RegExp | Não permitido | Não permitido |
| Símbolo.correspondência, String.prototype.startsWith | Não permitido | Não permitido |
| Símbolo.correspondência, String.prototype.endsWith | Não permitido | Não permitido |
| Símbolo.correspondência, String.prototype.includes | Não permitido | Não permitido |
| Symbol.toPrimitivo | Compatível | Não permitido |
| Symbol.toStringTag | Compatível | Não permitido |
| Symbol.toStringTag afeta os internos existentes | Compatível | Não permitido |
| Symbol.toStringTag, novos internos | Compatível | Não permitido |
| Symbol.toStringTag, misc. internos | Compatível | Não permitido |
| Symbol.não escopables | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Objeto.Atribuir | Compatível | Sem Suporte |
| Object.is | Compatível | Sem Suporte |
| Object.getOwnPropertySymbols | Compatível | Sem Suporte |
| Object.setPrototypeOf | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| declarações de função | Compatível | Compatível |
| expressões de função | Compatível | Compatível |
| Nova função | Sem Suporte | Sem Suporte |
| funções vinculadas | Sem Suporte | Sem Suporte |
| variáveis (função) | Compatível | Sem Suporte |
| métodos de objeto (função) | Compatível | Sem Suporte |
| propriedades do acessador | Sem Suporte | Sem Suporte |
| métodos resumidos | Compatível | Sem Suporte |
| métodos resumidos (sem vinculação lexical) | Compatível | Sem Suporte |
| métodos com chave de símbolo | Sem Suporte | Sem Suporte |
| declarações de classe | Compatível | Sem Suporte |
| expressões de classe | Compatível | Sem Suporte |
| variáveis (classe) | Compatível | Sem Suporte |
| métodos de objeto (classe) | Sem Suporte | Sem Suporte |
| métodos de protótipo de classe | Compatível | Sem Suporte |
| métodos estáticos de classe | Compatível | Sem Suporte |
| não é gravável, é configurável | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Cadeia de caracteres.raw | Compatível | Sem Suporte |
| String.fromCodePoint | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| String.prototype.codePointAt | Compatível | Compatível |
| String.prototype.normalize | Compatível | Compatível |
| String.prototype.repeat | Compatível | Compatível |
| String.prototype.startsWith | Compatível | Compatível |
| String.prototype.startsWith lances em RegExp | Sem Suporte | Sem Suporte |
| String.prototype.endsWith | Compatível | Compatível |
| String.prototype.endsWith lances em RegExp | Sem Suporte | Sem Suporte |
| String.prototype.includes | Compatível | Compatível |
| String.prototype[Symbol.iterator] | Compatível | Sem Suporte |
| Cadeia de protótipos do iterador de cadeia de caracteres | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| RegExp.prototype.flags | Compatível | Sem Suporte |
| RegExp.prototype[Symbol.match] | Compatível | Sem Suporte |
| RegExp.prototype[Symbol.replace] | Compatível | Sem Suporte |
| RegExp.prototype[Symbol.split] | Compatível | Sem Suporte |
| RegExp.prototype[Symbol.search] | Compatível | Sem Suporte |
| Regexp[Symbol.Species] | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Array.from, objetos semelhantes a matrizes | Compatível | Sem Suporte |
| Array.from, instâncias do gerador | Compatível | Não permitido |
| Array.from, iteráveis genéricos | Compatível | Sem Suporte |
| Array.from, instâncias de iteráveis genéricos | Compatível | Sem Suporte |
| Função de mapa Array.from, objetos semelhantes a matriz | Compatível | Sem Suporte |
| Função de mapa Array.from, instâncias do gerador | Compatível | Não permitido |
| Função de mapa Array.from, iteráveis genéricos | Compatível | Sem Suporte |
| Função de mapa Array.from, instâncias de iteráveis | Compatível | Sem Suporte |
| Array.from, fechamento do iterador | Compatível | Sem Suporte |
| Matriz.de | Compatível | Sem Suporte |
| Matriz[Symbol.Species] | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Array.prototype.copyWithin | Compatível | Sem Suporte |
| Array.prototype.find | Compatível | Sem Suporte |
| Array.prototype.findIndex | Compatível | Sem Suporte |
| Array.prototype.fill | Compatível | Sem Suporte |
| Array.prototype.keys | Compatível | Sem Suporte |
| Array.prototype.values | Compatível | Sem Suporte |
| Array.prototype.entries | Compatível | Sem Suporte |
| Array.prototype[Symbol.iterator] | Compatível | Sem Suporte |
| Cadeia de protótipos do iterador de matriz | Compatível | Sem Suporte |
| Array.prototype[Symbol.unscopables] | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Número.IsFinite | Compatível | Sem Suporte |
| Número.isInteger | Compatível | Sem Suporte |
| Número.isSafeInteger | Compatível | Sem Suporte |
| Número.isNaN | Compatível | Sem Suporte |
| Number.parseFloat | Compatível | Não permitido |
| Number.parseInt | Compatível | Não permitido |
| EPSILON | Compatível | Sem Suporte |
| NUMBER.MIN_SAFE_INTEGER | Compatível | Sem Suporte |
| NUMBER.MAX_SAFE_INTEGER | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Math.clz32 | Compatível | Sem Suporte |
| Math.imul | Compatível | Sem Suporte |
| Math.sign | Compatível | Sem Suporte |
| Math.log10 | Compatível | Sem Suporte |
| Math.log2 | Compatível | Sem Suporte |
| Math.log1p | Compatível | Sem Suporte |
| Math.expm1 | Compatível | Sem Suporte |
| Math.cosh | Compatível | Sem Suporte |
| Math.sinh | Compatível | Sem Suporte |
| Math.tanh | Compatível | Sem Suporte |
| Math.acosh | Compatível | Sem Suporte |
| Math.asinh | Compatível | Sem Suporte |
| Math.atanh | Compatível | Sem Suporte |
| Math.trunc | Compatível | Sem Suporte |
| Math.fround | Compatível | Sem Suporte |
| Math.cbrt | Compatível | Sem Suporte |
| Math.hypot | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Date.prototype[Symbol.toPrimitive] | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| propriedade de comprimento (acessando) | Não permitido | Não permitido |
| propriedade de comprimento (configuração) | Não permitido | Não permitido |
| cadeia de protótipos correta | Não permitido | Não permitido |
| Suporte a array.isArray | Compatível | Não permitido |
| Array.prototype.concat | Compatível | Não permitido |
| Array.prototype.filter | Compatível | Não permitido |
| Array.prototype.map | Compatível | Não permitido |
| Array.prototype.slice | Compatível | Não permitido |
| Array.prototype.splice | Compatível | Não permitido |
| Array.from | Compatível | Não permitido |
| Matriz.de | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Não permitido | Não permitido |
| cadeia de protótipos correta | Não permitido | Não permitido |
| RegExp.prototype.exec | Não permitido | Não permitido |
| RegExp.prototype.test | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| pode ser chamado | Não permitido | Não permitido |
| cadeia de protótipos correta | Não permitido | Não permitido |
| pode ser usado com "new" | Não permitido | Não permitido |
| Function.prototype.call | Não permitido | Não permitido |
| Function.prototype.apply | Não permitido | Não permitido |
| Function.prototype.bind | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Não permitido | Não permitido |
| cadeia de protótipos correta | Não permitido | Não permitido |
| Promise.ALL | Não permitido | Não permitido |
| Promise.race | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Booliano é subclassificável | Não permitido | Não permitido |
| O número é subclassificável | Não permitido | Não permitido |
| A cadeia de caracteres é subclassificável | Não permitido | Não permitido |
| O erro é subclassificável | Não permitido | Não permitido |
| O mapa é subclassificável | Não permitido | Não permitido |
| O conjunto é subclassificável | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funções básicas | Não permitido | Não permitido |
| funções do gerador | Não permitido | Não permitido |
| funções de seta | Não permitido | Não permitido |
| classes | Não permitido | Não permitido |
| subclasses | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Para Primitivo | Compatível | Não permitido |
| CreateListFromArrayLike | Compatível | Não permitido |
| operador instanceof | Compatível | Não permitido |
| Vinculação | Compatível | Não permitido |
| CreateDynamicFunction | Compatível | Não permitido |
| ClassDefinitionEvaluation | Compatível | Não permitido |
| IteratorComplete, IteratorValue | Compatível | Não permitido |
| ParaPropertyDescriptor | Compatível | Não permitido |
| Objeto.Atribuir | Compatível | Não permitido |
| Object.defineProperties | Compatível | Não permitido |
| Function.prototype.bind | Compatível | Não permitido |
| Error.prototype.toString | Compatível | Não permitido |
| Cadeia de caracteres.raw | Compatível | Não permitido |
| Construtor de regexp | Compatível | Não permitido |
| RegExp.prototype.flags | Compatível | Não permitido |
| RegExp.prototype.test | Compatível | Não permitido |
| RegExp.prototype.toString | Compatível | Não permitido |
| RegExp.prototype[Symbol.match] | Compatível | Não permitido |
| RegExp.prototype[Symbol.replace] | Compatível | Não permitido |
| RegExp.prototype[Symbol.search] | Compatível | Não permitido |
| RegExp.prototype[Symbol.split] | Compatível | Não permitido |
| Array.from | Compatível | Não permitido |
| Array.prototype.concat | Compatível | Não permitido |
| Array.prototype Métodos de iteração | Compatível | Não permitido |
| Array.prototype.pop | Compatível | Não permitido |
| Array.prototype.reverse | Compatível | Não permitido |
| Array.prototype.shift | Compatível | Não permitido |
| Array.prototype.splice | Compatível | Não permitido |
| Array.prototype.toString | Compatível | Não permitido |
| JSON.stringify | Compatível | Não permitido |
| Funções de resolução de promessa | Compatível | Não permitido |
| String.prototype.match | Compatível | Não permitido |
| String.prototype.replace | Compatível | Não permitido |
| String.prototype.search | Compatível | Não permitido |
| String.prototype.split | Compatível | Não permitido |
| Date.prototype.toJSON | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Objeto.Atribuir | Compatível | Não permitido |
| Array.from | Compatível | Não permitido |
| Matriz.de | Compatível | Não permitido |
| Array.prototype.copyWithin | Compatível | Não permitido |
| Array.prototype.fill | Compatível | Não permitido |
| Array.prototype.pop | Compatível | Não permitido |
| Array.prototype.push | Compatível | Não permitido |
| Array.prototype.reverse | Compatível | Não permitido |
| Array.prototype.shift | Compatível | Não permitido |
| Array.prototype.splice | Compatível | Não permitido |
| Array.prototype.unshift | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| [[Definir]] | Compatível | Não permitido |
| SetIntegrityLevel | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Array.prototype.copyWithin | Compatível | Não permitido |
| Array.prototype.pop | Compatível | Não permitido |
| Array.prototype.reverse | Compatível | Não permitido |
| Array.prototype.shift | Compatível | Não permitido |
| Array.prototype.splice | Compatível | Não permitido |
| Array.prototype.unshift | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| [[Definir]] | Compatível | Não permitido |
| Objeto.Atribuir | Compatível | Não permitido |
| Object.prototype.hasOwnProperty | Compatível | Não permitido |
| Function.prototype.bind | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| SetIntegrityLevel | Compatível | Não permitido |
| TestIntegrityLevel | Compatível | Não permitido |
| SerializeJSONObject | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Object.getPrototypeOf | Não permitido | Não permitido |
| Object.getOwnProperty Descriptor | Não permitido | Não permitido |
| Object.getOwnPropertyNames | Não permitido | Não permitido |
| Object.seal | Não permitido | Não permitido |
| Object.freeze | Não permitido | Não permitido |
| Object.preventExtensions | Não permitido | Não permitido |
| Object.isSealed | Não permitido | Não permitido |
| Object.isFrozen | Não permitido | Não permitido |
| Object.isExtensible | Não permitido | Não permitido |
| Object.Keys | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Object.Keys | Compatível | Não permitido |
| Object.getOwnPropertyNames | Compatível | Não permitido |
| Objeto.Atribuir | Não permitido | Não permitido |
| JSON.stringify | Não permitido | Não permitido |
| JSON.parse | Não permitido | Não permitido |
| Reflect.ownKeys, ordem da chave da cadeia de caracteres | Não permitido | Não permitido |
| Reflect.ownKeys, ordem da chave do símbolo | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| var ⸯ; | Não permitido | Não permitido |
| var ð; | Não permitido | Não permitido |
| não há palavras reservadas com escape como identificadores | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| declaração de função em nível de bloco içada | Compatível | Não permitido |
| declarações de função rotuladas | Não permitido | Não permitido |
| declarações de função em cláusulas if-statement | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| suporte básico | Compatível | Não permitido |
| vários __proto__ é um erro | Não permitido | Não permitido |
| não é uma propriedade calculada | Não permitido | Não permitido |
| não é uma propriedade resumida | Não permitido | Não permitido |
| não é um método resumido | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| obter protótipo | Não permitido | Não permitido |
| definir protótipo | Não permitido | Não permitido |
| Object.create ausente (nulo) | Não permitido | Não permitido |
| Presente em hasOwnProperty() | Não permitido | Não permitido |
| descritor de propriedade correto | Não permitido | Não permitido |
| Presente em Object.getOwnPropertyNames() | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| existência | Compatível | Não permitido |
| os nomes dos marcadores são minúsculos | Compatível | Não permitido |
| aspas em argumentos são escapadas | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Não permitido |
| retorna isso | Compatível | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| hifens em conjuntos de caracteres | Não permitido | Não permitido |
| escape de caracteres inválidos | Não permitido | Não permitido |
| escapes de caractere de controle inválidos | Não permitido | Não permitido |
| Escapes Unicode inválidos | Não permitido | Não permitido |
| escapes hexadecimais inválidos | Não permitido | Não permitido |
| quantificadores e padrões incompletos | Não permitido | Não permitido |
| sequências de escape octais | Não permitido | Não permitido |
| referências anteriores inválidas se tornam escapes octais | Não permitido | Não permitido |
ECMAScript 2009 (ES5)
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Obter acessadores | Compatível | Compatível |
| Setter acessadores | Compatível | Compatível |
| Vírgulas à direita em literais de objeto | Compatível | Compatível |
| Vírgulas à direita em literais de matriz | Compatível | Compatível |
| Palavras reservadas como nomes de propriedade | Compatível | Compatível |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Object.Create | Compatível | Compatível |
| Object.defineProperty | Compatível | Compatível |
| Object.defineProperties | Compatível | Compatível |
| Object.getPrototypeOf | Compatível | Compatível |
| Object.Keys | Compatível | Compatível |
| Object.seal | Compatível | Compatível |
| Object.freeze | Compatível | Compatível |
| Object.preventExtensions | Compatível | Compatível |
| Object.isSealed | Compatível | Compatível |
| Object.isFrozen | Compatível | Compatível |
| Object.isExtensible | Compatível | Compatível |
| Object.getOwnProperty Descriptor | Compatível | Compatível |
| Object.getOwnPropertyNames | Compatível | Compatível |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Array.isArray | Compatível | Compatível |
| Array.prototype.indexOf | Compatível | Compatível |
| Array.prototype.lastIndexOf | Compatível | Compatível |
| Array.prototype.every | Compatível | Compatível |
| Array.prototype.some | Compatível | Compatível |
| Array.prototype.forEach | Compatível | Compatível |
| Array.prototype.map | Compatível | Compatível |
| Array.prototype.filter | Compatível | Compatível |
| Array.prototype.reduce | Compatível | Compatível |
| Array.prototype.reduceRight | Compatível | Compatível |
| CompareFn deve ser função ou indefinido Array.prototype.sort: | Compatível | Sem Suporte |
| CompareFn pode ser explicitamente indefinido Array.prototype.sort: | Compatível | Compatível |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Acesso à propriedade em cadeias de caracteres | Compatível | Compatível |
| String.prototype.split | Compatível | Sem Suporte |
| String.prototype.trim | Compatível | Compatível |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Date.prototype.toISOString | Compatível | Compatível |
| Date.now | Compatível | Compatível |
| Date.prototype.toJSON | Compatível | Sem Suporte |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| indefinido | Compatível | Compatível |
| Nan | Compatível | Compatível |
| Infinito | Compatível | Compatível |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Number.prototype.toExponential arredonda corretamente | Compatível | Compatível |
| Number.prototype.toExponential lança ±Infinity fractionDigits | Compatível | Compatível |
| Number.prototype.toExponential não joga em casos de borda | Compatível | Compatível |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| palavras reservadas | Não permitido | Não permitido |
| "this" não está definido em funções | Não permitido | Não permitido |
| "this" não é coagido a objeto em métodos primitivos | Não permitido | Não permitido |
| "this" não é coagido a objeto em acessadores primitivos | Não permitido | Não permitido |
| Octal legado é um SyntaxError | Compatível | Não permitido |
| A atribuição a identificadores não resolvidos é um ReferenceError | Compatível | Não permitido |
| A atribuição a avaliação ou argumentos é um SyntaxError | Compatível | Não permitido |
| A atribuição a propriedades não graváveis é um TypeError | Compatível | Não permitido |
| As vinculações de valores ou argumentos são um SyntaxError | Não permitido | Não permitido |
| arguments.caller removido ou é um TypeError | Compatível | Não permitido |
| arguments.callee é um TypeError | Compatível | Não permitido |
| (Function()).caller e (function()).arguments é um TypeError | Compatível | Não permitido |
| os argumentos não estão mapeados | Não permitido | Não permitido |
| eval() não pode criar vinculações | Não permitido | Não permitido |
| Excluir vinculações é um SyntaxError | Não permitido | Não permitido |
| Excluir propriedades não configuráveis é um TypeError | Não permitido | Não permitido |
| "Com" é um SyntaxError | Compatível | Não permitido |
| Nomes de parâmetros repetidos são um SyntaxError | Compatível | Não permitido |
| expressões de função com nome e argumento correspondentes são válidas | Não permitido | Não permitido |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| Function.prototype.bind | Compatível | Compatível |
| Recurso | Modo ECMAScript 2021 (ES12) | Modo de padrões ES5 |
|---|---|---|
| JSON | Compatível | Compatível |