Suporte ao recurso do mecanismo JavaScript
Compare os recursos do ECMAScript entre os modos JavaScript ECMAScript 2021 (ES12) e ES5 em Xanadu . 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 da linguagem ECMAScript (ECMA-262) no site da Ecma International.
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 está alinhado com o modelo de programação Now Platform ou representa um risco à segurança ou ao desempenho. Recursos não permitidos resultam em erro.
Recursos do ECMAScript 2022 (ES13)
Importante:
Antes de implantar o código na produção, você deve testar completamente os scripts usando os recursos compatíveis do ECMAScript 2022 (ES13), devido ao suporte parcial e recém-adicionado de recursos nesta versão do ECMAScript.
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| campos de classe de instância pública | Compatível | Sem Suporte |
| suporte básico de campos de classe de instância privada | Sem Suporte | Sem Suporte |
| inicializadores de campos de classe de instância privada | Sem Suporte | Sem Suporte |
| acesso aos campos de classe de instância privada opcional | 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 calculada | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| campos de classe estática pública | Compatível | Sem Suporte |
| campos de classe estática usam [[Define]] | Compatível | Sem Suporte |
| campos de classe estática privada | Compatível | Sem Suporte |
| campos de classe estática calculada | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Array.prototype.at() | Sem Suporte | Sem Suporte |
| String.prototype.at() | Compatível | Sem Suporte |
| %TypedArray%.prototype.at() | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Funcionalidade básica | Compatível | Sem Suporte |
| ToObject chamado antes de ToPropertyKey | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| O erro tem uma causa | Compatível | Sem Suporte |
| Error.prototype não tem causa | Compatível | Sem Suporte |
| EvalError tem causa | Compatível | Sem Suporte |
| EvalError.prototype não tem causa | Compatível | Sem Suporte |
| O erro de intervalo tem uma causa | Compatível | Sem Suporte |
| FaixaError.prototype não tem causa | Compatível | Sem Suporte |
| Erro de referência tem causa | Compatível | Sem Suporte |
| ReferenceError.prototype não tem causa | Compatível | Sem Suporte |
| SyntaxError tem causa | Compatível | Sem Suporte |
| SyntaxError.prototype não tem causa | Compatível | Sem Suporte |
| TypeError tem causa | Compatível | Sem Suporte |
| TypeError.prototype não tem causa | Compatível | Sem Suporte |
| O erro URI tem uma causa | Compatível | Sem Suporte |
| URIERror.prototype não tem causa | Compatível | Sem Suporte |
| AggregateError tem causa | Compatível | Sem Suporte |
| AggregateError.prototype não tem causa | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| o construtor oferece suporte a ele | Sem Suporte | Sem Suporte |
| aparece em sinalizadores | Sem Suporte | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Verificações ergonômicas de marca para campos privados | Sem Suporte | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Blocos de inicialização estática de classe | Compatível | Sem Suporte |
ECMAScript 2021 (ES12) recursos
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| execução | Não permitido | Não permitido |
| Erro agregado | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Suporte mínimo para WeakRef | Não permitido | Não permitido |
| Suporte mínimo para FinalizationRegistry | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| ||= suporte básico | Compatível | Sem Suporte |
| ||= comportamento de curto- circuito | Compatível | Sem Suporte |
| ||= definidor não invocado desnecessariamente | Compatível | Sem Suporte |
| &&= suporte básico | Compatível | Sem Suporte |
| &&= comportamento de curto- circuito | Compatível | Sem Suporte |
| definidor &&= não invocado desnecessariamente | Compatível | Sem Suporte |
| ??= suporte básico | Compatível | Sem Suporte |
| ??= comportamento de curto- circuito | Compatível | Sem Suporte |
| ??= definidor não invocado desnecessariamente | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| separadores numéricos | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| String.prototype.replaceAll | Compatível | Compatível |
Recursos do ECMAScript 2020 (ES11)
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| lança em regex não global | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Sem Suporte | Sem Suporte |
| construtor | Sem Suporte | Sem Suporte |
| BigInt.asUintN | Sem Suporte | Sem Suporte |
| BigInt.asIntN | Sem Suporte | 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| A propriedade global "globalEsta" é um objeto global | Não permitido | Não permitido |
| A propriedade global "globalEsta" tem o descritor de propriedade correto | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| acesso à propriedade opcional | Compatível | Sem Suporte |
| acesso ao colchete 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 encadeamento opcional | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Promessa.tudoConsolidado | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| operador de aglutinação nullish (??) | Compatível | Sem Suporte |
ECMAScript 2019 (ES10) recursos
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| básico | Compatível | Sem Suporte |
| descrição vazia | Compatível | Sem Suporte |
| descrição indefinida | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Array.prototype.flat | Compatível | Sem Suporte |
| Matriz.protótipo.Mapaplano | Compatível | Sem Suporte |
| plano e planoPlano em Array.prototype[@@unscopables] | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Objeto.deEntradas | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| básico | Não permitido | Não permitido |
| aguardar | Não permitido | Não permitido |
| rendimento | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funções criadas com o construtor Function | 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 |
| métodos e nomes de propriedade calculada | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| O separador de linhas pode aparecer em cadeias de caracteres literais | Não permitido | Não permitido |
| O separador de parágrafo pode aparecer em cadeias de caracteres literais | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| JSON.stringify bem formado | Não permitido | Não permitido |
ECMAScript 2018 (ES9) recursos
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| propriedades de REST de objeto | Compatível | Sem Suporte |
| propriedades de propagação de objeto | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| suporte básico | Não permitido | Não permitido |
| não mude o valor de resolução | Não permitido | Não permitido |
| mudar valor de rejeição | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| geradores assíncronos | Não permitido | Não permitido |
| Loops for-await-of | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Sinalizador s (dotAll) para expressões regulares | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Grupos de captura nomeados RegExp | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Asserções de Lookbehind de RegExp | Sem Suporte | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Escapes de propriedade Unicode RegExp | Sem Suporte | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| revisão literal do modelo | Não permitido | Não permitido |
ECMAScript 2017 (ES8) recursos
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Objeto.valores | Compatível | Sem Suporte |
| Objeto.entradas | Compatível | Sem Suporte |
| Object.getOwnPropertyDescriptors | Compatível | Sem Suporte |
| Object.getOwnPropertyDescriptors não fornece descritores indefinidos | Sem Suporte | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| String.prototype.padStart | Compatível | Sem Suporte |
| String.prototype.padEnd | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| em listas de parâmetros | Compatível | Sem Suporte |
| em listas de argumentos | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| retornar | Não permitido | Não permitido |
| throw | Não permitido | Não permitido |
| nenhuma quebra de linha entre assíncrono e função | Não permitido | Não permitido |
| nenhuma propriedade de "protótipo" | Não permitido | Não permitido |
| aguardar | Não permitido | Não permitido |
| aguardar, rejeição | Não permitido | Não permitido |
| deve aguardar um valor | Não permitido | Não permitido |
| pode aguardar valores não-prometido | Não permitido | Não permitido |
| não pode aguardar nos parâmetros | Não permitido | Não permitido |
| métodos assíncronos, literais de objeto | Não permitido | Não permitido |
| métodos assíncronos, classes | Não permitido | Não permitido |
| funções de seta assíncronas em métodos, classes | Não permitido | Não permitido |
| funções de seta assíncronas | Não permitido | Não permitido |
| cadeia de prototipação correta | Não permitido | Não permitido |
| Protótipo de função assíncrona, Símbolo.toStringTag | Não permitido | Não permitido |
| construtor de função assíncrona | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | 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.and | Não permitido | Não permitido |
| Atomics.compareExchange | Não permitido | Não permitido |
| Atomics.câmbio | Não permitido | Não permitido |
| Atomics.aguardar | Não permitido | Não permitido |
| Atomics.ativar | 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| __defineGetter__ | Não permitido | Não permitido |
| __defineGetter__, símbolos | Não permitido | Não permitido |
| __defineGetter__, ToObject(este) | Não permitido | Não permitido |
| __defineSetter__ | Não permitido | Não permitido |
| __defineSetter__, símbolos | Não permitido | Não permitido |
| __defineSetter__, ToObject(este) | Não permitido | Não permitido |
| __lookupGetter__ | Não permitido | Não permitido |
| __lookupGetter__, cadeia de prototipos | Não permitido | Não permitido |
| __lookupGetter__, símbolos | Não permitido | Não permitido |
| __lookupGetter__, ToObject(este) | Não permitido | Não permitido |
| __lookupGetter__, propriedades de dados podem ocultar acessadores | Não permitido | Não permitido |
| __lookupSetter__ | Não permitido | Não permitido |
| __lookupSetter__, cadeia de prototipos | Não permitido | Não permitido |
| __lookupSetter__, símbolos | Não permitido | Não permitido |
| __lookupSetter__, ToObject(este) | Não permitido | Não permitido |
| __lookupSetter__, propriedades de dados podem ocultar acessadores | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| __defineGetter__ | Não permitido | Não permitido |
| __defineSetter__ | Não permitido | Não permitido |
| __lookupGetter__ | Não permitido | Não permitido |
| __lookupSetter__ | Não permitido | Não permitido |
ECMAScript 2016 (ES7) recursos
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| suporte básico | Compatível | Sem Suporte |
| atribuição | Compatível | Sem Suporte |
| erro de sintaxe antecipado para negação unária sem parênteses | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Matriz.protótipo.inclui | Compatível | Sem Suporte |
| Array.prototype.includes é genérico | Sem Suporte | Sem Suporte |
| %TypedArray%.prototype.includes | Não permitido | Não permitido |
ECMAScript 2015 (ES6) recursos
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| recursão direta | Não permitido | Não permitido |
| recursão mútua | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| adiamentos indefinidos explícitos para o padrão | Compatível | Sem Suporte |
| os padrões podem se referir a parâmetros anteriores | Compatível | Sem Suporte |
| interação de 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| propriedade de 'comprimento' da função | Compatível | Sem Suporte |
| interação de objeto de argumentos | Sem Suporte | Sem Suporte |
| não pode ser usado em setters | Não permitido | Não permitido |
| novo suporte a função () | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | 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 esparsas, em chamadas de função | Com suporte | Sem Suporte |
| com matrizes esparsas, em literais de matriz | Compatível | Sem Suporte |
| com cadeias de caracteres, em chamadas de função | Com suporte | 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 | Com suporte | Sem Suporte |
| com cadeias de caracteres do plano astral, em literais de matriz | Compatível | Sem Suporte |
| com instâncias de gerador, em chamadas | Não permitido | Não permitido |
| com instâncias de 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 |
| distribuir não iteráveis é um erro de tempo de execução | Com suporte | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| propriedades calculadas | Compatível | Sem Suporte |
| propriedades abreviadas | Compatível | Sem Suporte |
| métodos abreviados | Compatível | Sem Suporte |
| métodos abreviados de cadeia de caracteres | Compatível | Sem Suporte |
| métodos abreviados calculados | Compatível | Sem Suporte |
| acessadores calculados | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| com matrizes | Compatível | Sem Suporte |
| com matrizes esparsas | Compatível | Sem Suporte |
| com cadeias de caracteres | Compatível | Sem Suporte |
| com cadeias de caracteres de plano astral | Compatível | Sem Suporte |
| com instâncias de 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 |
| fechamento do iterador, lançamento | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| Conversão de toString | Compatível | Sem Suporte |
| literais de modelo marcado | Compatível | Sem Suporte |
| a matriz passada está congelada | Compatível | Sem Suporte |
| normalização de quebra de linha | Não permitido | Não permitido |
| Cache do site de chamada TemplateStrings | Compatível | Sem Suporte |
| Cache permanente de TemplateStrings | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Sinalizador "y" | Compatível | Sem Suporte |
| Sinalizador "y", lastIndex | Compatível | Sem Suporte |
| Sinalizador "u" | Sem Suporte | Sem Suporte |
| Sinalizador "u", caracteres Unicode não BMP | Sem Suporte | Sem Suporte |
| Sinalizador "u", pontos de código Unicode escapam | Sem Suporte | Sem Suporte |
| Sinalizador "u", dobra de caso | Sem Suporte | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| com matrizes | Compatível | Sem Suporte |
| com matrizes esparsas | Compatível | Sem Suporte |
| com cadeias de caracteres | Compatível | Sem Suporte |
| com cadeias de caracteres de plano astral | Compatível | Sem Suporte |
| com instâncias de 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 elementos primitivos | Compatível | Sem Suporte |
| vírgulas à direita em padrões de objeto | Compatível | Sem Suporte |
| inicia nulo e indefinido | Compatível | Sem Suporte |
| propriedades calculadas | Compatível | Sem Suporte |
| múltiplos em uma única declaração de variável | Compatível | Sem Suporte |
| aninhado | Compatível | Sem Suporte |
| cabeçalhos de loop em para-in | Compatível | Sem Suporte |
| em cabeçalhos de loop for-of | Compatível | Sem Suporte |
| em cabeçalhos de captura | Compatível | Sem Suporte |
| REST | Compatível | Sem Suporte |
| padrões | Compatível | Sem Suporte |
| padrões, deixar zona morta temporal | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| com matrizes | Compatível | Sem Suporte |
| com matrizes esparsas | Compatível | Sem Suporte |
| com cadeias de caracteres | Compatível | Sem Suporte |
| com cadeias de caracteres de plano astral | Compatível | Sem Suporte |
| com instâncias de 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 elementos primitivos | Compatível | Sem Suporte |
| vírgulas à direita em padrões de objeto | Compatível | Sem Suporte |
| expressão de desestruturação de objeto | Compatível | Sem Suporte |
| entre parênteses do lado esquerdo é um erro de sintaxe | Não permitido | Não permitido |
| desestruturação de objeto encadeado | Compatível | Sem Suporte |
| inicia 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| com matrizes | Compatível | Sem Suporte |
| com matrizes esparsas | Compatível | Sem Suporte |
| com cadeias de caracteres | Compatível | Sem Suporte |
| com cadeias de caracteres de plano astral | Compatível | Sem Suporte |
| com instâncias de 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 elementos primitivos | Compatível | Sem Suporte |
| vírgulas à direita em padrões de objeto | Compatível | Sem Suporte |
| inicia nulo e indefinido | Compatível | Sem Suporte |
| propriedades calculadas | Compatível | Sem Suporte |
| aninhado | Compatível | Sem Suporte |
| interação de "argumentos" | Compatível | Sem Suporte |
| novo suporte a função () | Não permitido | Não permitido |
| em parâmetros, propriedade de "comprimento" 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 |
| padrões, escopo separado | Compatível | Sem Suporte |
| padrões, novo suporte a função () | Não permitido | Não permitido |
| padrões de alias, função de seta | Compatível | Sem Suporte |
| padrões de taquigrafia, função de seta | Compatível | Sem Suporte |
| identificador duplicado | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| em cadeias de caracteres | Compatível | Sem Suporte |
| em identificadores | Sem Suporte | Sem Suporte |
| em definições de chave de propriedade | Sem Suporte | Sem Suporte |
| em acessos de chave de propriedade | Sem Suporte | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| em construtores | Sem Suporte | Sem Suporte |
| atribuição é um erro inicial | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | 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 em declarações | Não permitido | Não permitido |
| redefinir uma const é um erro | Não permitido | Não permitido |
| escopo da instrução de loop for | Compatível | Sem Suporte |
| escopo de iteração de loop for-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 |
| escopo da instrução de loop for (modo estrito) | Compatível | Sem Suporte |
| escopo de iteração de loop for-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 | ECMAScript 2021 (ES12) | 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 em declarações | Não permitido | Não permitido |
| escopo da instrução de loop for | 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 for-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 |
| escopo da instrução de loop for (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 for-in (modo estrito) | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| declaração de função no nível de bloco | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| 0 parâmetro | Compatível | Sem Suporte |
| 1 parâmetro, sem colchetes | Compatível | Sem Suporte |
| vários parâmetros | Compatível | Sem Suporte |
| vinculação lexical "esta" | Compatível | Sem Suporte |
| "este" inalterado por chamada ou aplicação | Compatível | Sem Suporte |
| não pode ser vinculado, pode ser carregado | Compatível | Sem Suporte |
| vinculação de "argumentos" lexicais | 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 de "protótipo" | Sem Suporte | Sem Suporte |
| vinculação "super" lexical em construtores | Compatível | Sem Suporte |
| vinculação "super" lexical em métodos | Compatível | Sem Suporte |
| vinculação "new.target" lexical | Sem Suporte | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | 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 prototipagem | Compatível | Sem Suporte |
| métodos com chave de cadeia de caracteres | Compatível | Sem Suporte |
| métodos de prototipagem calculados | Compatível | Sem Suporte |
| ponto-e-vírgula opcional | 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 calculado | Compatível | Sem Suporte |
| propriedades do acessador estático | Compatível | Sem Suporte |
| propriedades do acessador estático calculado | Compatível | Sem Suporte |
| o nome da classe tem escopo léxico | Compatível | Sem Suporte |
| nomes calculados, zona morta temporal | Sem suporte | Sem Suporte |
| métodos não são enumeráveis | Compatível | Sem Suporte |
| modo estrito implícito | Sem Suporte | Sem Suporte |
| 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 |
| novo.destino | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | 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, chamadas de método | Compatível | Sem Suporte |
| chamadas de método usam a vinculação "esta" correta | Compatível | Sem Suporte |
| chamadas de 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Não permitido | Não permitido |
| expressões de função do gerador | Não permitido | Não permitido |
| corrigir vinculação "esta" | Não permitido | Não permitido |
| não pode usar "este" com novo | Não permitido | Não permitido |
| enviando | Não permitido | Não permitido |
| %GeneratorPrototype% | Não permitido | Não permitido |
| Cadeia de prototipos %GeneratorPrototype% | Não permitido | Não permitido |
| %GeneratorPrototype%.construtor | Não permitido | Não permitido |
| %GeneratorPrototype%.throw | Não permitido | Não permitido |
| %GeneratorPrototype.return | Não permitido | Não permitido |
| precedência do operador de rendimento | Não permitido | Não permitido |
| rendimento *, matrizes | Não permitido | Não permitido |
| rendimento *, matrizes esparsas | Não permitido | Não permitido |
| rendimento *, cadeias de caracteres | Não permitido | Não permitido |
| rendimento *, cadeias de caracteres do plano astral | Não permitido | Não permitido |
| rendimento *, instâncias do gerador | Não permitido | Não permitido |
| rendimento *, iteráveis genéricos | Não permitido | Não permitido |
| rendimento *, instâncias de iteráveis | Não permitido | Não permitido |
| rendimento * em não iteráveis é um erro de tempo de execução | Não permitido | Não permitido |
| rendimento *, fechamento do iterador | Não permitido | Não permitido |
| rendimento *, fechamento do iterador por meio de arremesso () | Não permitido | Não permitido |
| métodos do gerador abreviado | Não permitido | Não permitido |
| métodos do gerador abreviado com chave de cadeia de caracteres | Não permitido | Não permitido |
| geradores de abreviação calculados | Não permitido | Não permitido |
| métodos de gerador abreviado, classes | Não permitido | Não permitido |
| geradores de abreviação calculados, classes | Não permitido | Não permitido |
| geradores abreviados não podem ser construtores | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| MatrizInt8 | Não permitido | Não permitido |
| Uint8Array | Não permitido | Não permitido |
| Uint8ClampedArray | Não permitido | Não permitido |
| MatrizInt16 | Não permitido | Não permitido |
| Uint16Array | Não permitido | Não permitido |
| MatrizInt32 | Não permitido | Não permitido |
| Uint32Array | Não permitido | Não permitido |
| Matriz32Flutuante | Não permitido | Não permitido |
| MatrizFloat64 | Não permitido | Não permitido |
| DataView (Int8) | Não permitido | Não permitido |
| DataView (Uint8) | Não permitido | Não permitido |
| DataView (Int16) | Não permitido | Não permitido |
| DataView (Uint16) | Não permitido | Não permitido |
| DataView (Int32) | Não permitido | Não permitido |
| DataView (Uint32) | Não permitido | Não permitido |
| DataView (Float32) | Não permitido | Não permitido |
| DataView (Float64) | Não permitido | Não permitido |
| ArrayBuffer[Symbol.species] | Não permitido | Não permitido |
| construtores exigem novo | Não permitido | Não permitido |
| construtores aceitam iteráveis genéricos | Não permitido | Não permitido |
| cadeias de prototipagem corretas | Não permitido | Não permitido |
| %TypedArray%.de | Não permitido | Não permitido |
| %TypedArray%.de | Não permitido | Não permitido |
| %TypedArray%.prototype.subarray | Não permitido | Não permitido |
| %TypedArray%.prototype.join | Não permitido | Não permitido |
| %TypedArray%.prototype.indexOf | Não permitido | Não permitido |
| %TypedArray%.prototype.lastIndexOf | Não permitido | Não permitido |
| %TypedArray%.prototype.slice | Não permitido | Não permitido |
| %TypedArray%.prototype.every | Não permitido | Não permitido |
| %TypedArray%.prototype.filter | Não permitido | Não permitido |
| %TypedArray%.prototype.forEach | Não permitido | Não permitido |
| %TypedArray%.prototype.map | Não permitido | Não permitido |
| %TypedArray%.prototype.reduce | Não permitido | Não permitido |
| %TypedArray%.prototype.reduceRight | Não permitido | Não permitido |
| %TypedArray%.prototype.reverse | Não permitido | Não permitido |
| %TypedArray%.prototype.some | Não permitido | Não permitido |
| %TypedArray%.prototype.sort | Não permitido | Não permitido |
| %TypedArray%.prototype.copyWithin | Não permitido | Não permitido |
| %TypedArray%.prototype.find | Não permitido | Não permitido |
| %TypedArray%.prototype.findIndex | Não permitido | Não permitido |
| %TypedArray%.prototype.fill | Não permitido | Não permitido |
| %TypedArray%.prototype.keys | Não permitido | Não permitido |
| %TypedArray%.prototype.values | Não permitido | Não permitido |
| %TypedArray%.prototype.entries | Não permitido | Não permitido |
| %TypedArray%.prototype[Symbol.iterator] | Não permitido | Não permitido |
| %TypedArray%[Symbol.species] | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| argumentos do construtor | Compatível | Sem Suporte |
| construtor requer novo | Compatível | Sem Suporte |
| 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 isto | Compatível | Sem Suporte |
| A chave -0 é convertida em +0 | Compatível | Sem Suporte |
| Mapa.protótipo.tamanho | Compatível | Sem Suporte |
| Mapear.prototipo.excluir | Compatível | Sem Suporte |
| Map.prototype.clear | Compatível | Sem Suporte |
| Mapear.prototipo.paraCada | 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 |
| Mapear cadeia de prototipos de iterador | Compatível | Sem Suporte |
| Mapa[Symbol.species] | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| argumentos do construtor | Compatível | Sem Suporte |
| construtor requer novo | Compatível | Sem Suporte |
| construtor aceita nulo | Compatível | Sem Suporte |
| construtor invoca add | Compatível | Sem Suporte |
| fechamento do iterador | Compatível | Sem Suporte |
| Set.prototype.add retorna isto | Compatível | Sem Suporte |
| A chave -0 é convertida em +0 | Compatível | Sem Suporte |
| Definir.protótipo.tamanho | Compatível | Sem Suporte |
| Definir.protótipo.excluir | Compatível | Sem Suporte |
| Definir.protótipo.limpar | Compatível | Sem Suporte |
| Definir.protótipo.paraCada | Compatível | Sem Suporte |
| Definir.protótipo.chaves | Compatível | Sem Suporte |
| Definir.protótipo.valores | Compatível | Sem Suporte |
| Definir.prototipo.entradas | Compatível | Sem Suporte |
| Set.prototype[Symbol.iterator] | Compatível | Sem Suporte |
| Set.prototype não é uma instância | Compatível | Sem Suporte |
| Definir cadeia de prototipos do iterador | Compatível | Sem Suporte |
| Definir [Symbol.species] | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Não permitido | Não permitido |
| argumentos do construtor | Não permitido | Não permitido |
| construtor requer novo | Não permitido | Não permitido |
| construtor aceita nulo | Não permitido | Não permitido |
| O construtor invoca o conjunto | Não permitido | Não permitido |
| objetos congelados como chaves | Não permitido | Não permitido |
| fechamento do iterador | Não permitido | Não permitido |
| WeakMap.prototype.set retorna isto | Não permitido | Não permitido |
| MapaFraco.protótipo.excluir | Não permitido | Não permitido |
| nenhum método WeakMap.prototype.clear | Não permitido | Não permitido |
| Os métodos .ha, .get e .delete aceitam elementos primitivos | Não permitido | Não permitido |
| WeakMap.prototype não é uma instância | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Não permitido | Não permitido |
| argumentos do construtor | Não permitido | Não permitido |
| construtor requer novo | Não permitido | Não permitido |
| construtor aceita nulo | Não permitido | Não permitido |
| construtor invoca add | Não permitido | Não permitido |
| fechamento do iterador | Não permitido | Não permitido |
| WeakSet.prototype.add retorna isto | Não permitido | Não permitido |
| WeakSet.prototype.delete | Não permitido | Não permitido |
| nenhum método WeakSet.prototype.clear | Não permitido | Não permitido |
| Os métodos .has e .delete aceitam elementos primitivos | Não permitido | Não permitido |
| WeakSet.prototype não é uma instância | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| construtor requer novo | Não permitido | Não permitido |
| nenhuma propriedade de "protótipo" | Não permitido | Não permitido |
| manipulador "get" | Não permitido | Não permitido |
| manipulador "get", instâncias de proxies | Não permitido | Não permitido |
| Invariantes do manipulador "get" | Não permitido | Não permitido |
| manipulador "set" | Não permitido | Não permitido |
| manipulador "set", instâncias de proxies | Não permitido | Não permitido |
| Invariantes do manipulador "set" | Não permitido | Não permitido |
| manipulador "tem" | Não permitido | Não permitido |
| manipulador "tem", instâncias de proxies | Não permitido | Não permitido |
| invariantes do manipulador "tem" | Não permitido | Não permitido |
| Manipulador "deleteProperty" | Não permitido | Não permitido |
| Invariável do manipulador "deleteProperty" | Não permitido | Não permitido |
| Manipulador "getOwnPropertyDescriptor" | Não permitido | Não permitido |
| Invariantes do manipulador "getOwnPropertyDescriptor" | Não permitido | Não permitido |
| Manipulador "defineProperty" | Não permitido | Não permitido |
| Invariantes do manipulador "defineProperty" | Não permitido | Não permitido |
| Manipulador "getPrototypeOf" | Não permitido | Não permitido |
| Invariável do manipulador "getPrototypeOf" | Não permitido | Não permitido |
| Manipulador "setPrototypeOf" | Não permitido | Não permitido |
| Invariável do manipulador "setPrototypeOf" | Não permitido | Não permitido |
| Manipulador "isExtensible" | Não permitido | Não permitido |
| Invariante do manipulador "isExtensible" | Não permitido | Não permitido |
| Manipulador "preventExtensions" | Não permitido | Não permitido |
| Invariável do manipulador "preventExtensions" | Não permitido | Não permitido |
| Manipulador "ownKeys" | Não permitido | Não permitido |
| Invariante do manipulador "ownKeys" | Não permitido | Não permitido |
| manipulador "aplicar" | Não permitido | Não permitido |
| Invariável do manipulador "aplicar" | Não permitido | Não permitido |
| manipulador "construir" | Não permitido | Não permitido |
| Invariantes do manipulador "construir" | Não permitido | Não permitido |
| Proxy.revogável | Não permitido | Não permitido |
| Suporte para Array.isArray | Não permitido | Não permitido |
| Suporte a JSON.stringify | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Refletir.obter | Não permitido | Não permitido |
| Refletir.conjunto | Não permitido | Não permitido |
| Refletir.tem | Não permitido | Não permitido |
| Refletir.excluirPropriedade | Não permitido | Não permitido |
| Refletir.obterDescriptorDePropriedade | Não permitido | Não permitido |
| Refletir.definirPropriedade | Não permitido | Não permitido |
| Refletir.getPrototypeOf | Não permitido | Não permitido |
| Refletir.setPrototypeOf | Não permitido | Não permitido |
| Refletir.éExtensível | 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 metapropriedade new.target | Não permitido | Não permitido |
| Reflect.construct cria instâncias a partir do terceiro argumento | Não permitido | Não permitido |
| Reflect.construct, subclasse de matriz | Não permitido | Não permitido |
| Subclasse Reflect.construct, 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Não permitido | Não permitido |
| construtor requer novo | Não permitido | Não permitido |
| Promise.prototype não é uma instância | Não permitido | Não permitido |
| Promessa.todas | Não permitido | Não permitido |
| Promise.all, iteráveis genéricos | Não permitido | Não permitido |
| Promessa.corrida | Não permitido | Não permitido |
| Promise.race, iteráveis genéricos | Não permitido | Não permitido |
| Promessa[Symbol.species] | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Compatível | Sem Suporte |
| suporte de tipode | Compatível | Sem Suporte |
| chaves de símbolo estão ocultas no código pré-ES6 | Compatível | Sem Suporte |
| Suporte a Object.defineProperty | Compatível | Sem Suporte |
| Os símbolos herdam do símbolo.prototipo | Compatível | Sem Suporte |
| não pode forçar para cadeia de caracteres ou número | Sem Suporte | Sem Suporte |
| pode converter com String() | Sem Suporte | Sem Suporte |
| novos lançamentos de símbolo () | Compatível | Sem Suporte |
| Objeto (símbolo) | Sem Suporte | Sem Suporte |
| JSON.stringify ignora símbolos primitivos | 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Símbolo.temInstância | Não permitido | Não permitido |
| Símbolo.éConcatenavel | Não permitido | Não permitido |
| Símbolo.iterador, existência | Não permitido | Não permitido |
| Símbolo.iterator, objeto de argumentos | Não permitido | Não permitido |
| Símbolo.espécie, existência | Não permitido | 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, matriz.protótipo.mapa | 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.prototipo[Símbolo.split] | Não permitido | Não permitido |
| Símbolo.espécie, Promessa.protótipo.então | Não permitido | Não permitido |
| Símbolo.substituir | Não permitido | Não permitido |
| Símbolo.pesquisar | Não permitido | Não permitido |
| Símbolo.split | Não permitido | Não permitido |
| Símbolo.correspondência | Não permitido | Não permitido |
| Construtor de Type.match, RegExp | Não permitido | Não permitido |
| Símbolo.corresponde, cadeia de caracteres.prototipo.começaCom | Não permitido | Não permitido |
| Símbolo.corresponde, String.prototype.endsWith | Não permitido | Não permitido |
| Símbolo.correspondência, cadeia de caracteres.prototipo.inclui | Não permitido | Não permitido |
| Símbolo.paraPrimitivo | Não permitido | Não permitido |
| Símbolo.paramarcadordecadeiadecadeias | Não permitido | Não permitido |
| O símbolo.toStringTag afeta os integrados existentes | Não permitido | Não permitido |
| Símbolo.toStringTag, novos internos | Não permitido | Não permitido |
| Símbolo.toStringTag, diversos. integrados | Não permitido | Não permitido |
| Símbolos.incompatíveis | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Objeto.atribuído | Compatível | Sem Suporte |
| Object.is | Compatível | Sem Suporte |
| Objeto.getOwnPropertySymbols | Compatível | Sem Suporte |
| Objeto.setPrototypeOf | Sem Suporte | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | 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 abreviados | Compatível | Sem Suporte |
| métodos abreviados (sem vinculação lexical) | Compatível | Sem Suporte |
| métodos de 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) | Com suporte | Sem Suporte |
| métodos de objeto (classe) | Sem Suporte | Sem Suporte |
| métodos de prototipagem de classe | Compatível | Sem Suporte |
| métodos estáticos de classe | Compatível | Sem Suporte |
| não é gravável, é configurável | Sem Suporte | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Cadeia de caracteres.raw | Compatível | Sem Suporte |
| String.fromCodePoint | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | 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 é lançado em RegExp | Sem Suporte | Sem Suporte |
| String.prototype.endsWith | Compatível | Compatível |
| String.prototype.endsWith é lançado em RegExp | Sem Suporte | Sem Suporte |
| String.prototype.includes | Compatível | Compatível |
| String.prototype[Symbol.iterator] | Compatível | Sem Suporte |
| Cadeia de prototipos de iterador de cadeia de caracteres | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| RegExp.prototype.flags | Compatível | Sem Suporte |
| RegExp.prototype[Symbol.match] | Sem Suporte | Sem Suporte |
| RegExp.prototype[Symbol.replace] | Compatível | Sem Suporte |
| RegExp.prototype[Symbol.split] | Compatível | Sem Suporte |
| RegExp.prototype[Symbol.search] | Sem Suporte | Sem Suporte |
| RegExp[Symbol.species] | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Array.from, objetos semelhantes a matriz | Compatível | Sem Suporte |
| Array.from, instâncias do gerador | Não permitido | 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 de gerador | Não permitido | 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Array.prototype.copyWithin | Compatível | Sem Suporte |
| Array.prototype.find | Compatível | Sem Suporte |
| Array.prototype.findIndex | Compatível | Sem Suporte |
| Matriz.protótipo.preenchimento | Compatível | Sem Suporte |
| Matriz.protótipo.chaves | Compatível | Sem Suporte |
| Matriz.protótipo.valores | Compatível | Sem Suporte |
| Matriz.protótipo.entradas | Compatível | Sem Suporte |
| Array.prototype[Symbol.iterator] | Compatível | Sem Suporte |
| Cadeia de prototipagem do iterador de matriz | Compatível | Sem Suporte |
| Array.prototype[Symbol.unscopables] | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Número.éFinal | Compatível | Sem Suporte |
| Número.éInteiro | Compatível | Sem Suporte |
| Número.éInteiroSafe | Compatível | Sem Suporte |
| Número.éNaN | Compatível | Sem Suporte |
| Number.parseFloat | Não permitido | Não permitido |
| Número.analisarInt | Não permitido | Não permitido |
| Número.EPSILON | Compatível | Sem Suporte |
| Número.MIN_SAFE_INTEGER | Compatível | Sem Suporte |
| Número.MAX_SAFE_INTEGER | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Math.clz32 | Compatível | Sem Suporte |
| Math.imul | Compatível | Sem Suporte |
| Math.sinal | 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 |
| Atanh.matemático | Compatível | Sem Suporte |
| Trunc.Mat. | Compatível | Sem Suporte |
| Math.fundo | Compatível | Sem Suporte |
| Math.cbrt | Compatível | Sem Suporte |
| Math.hypot | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Date.prototype[Symbol.toPrimitive] | Compatível | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | 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 prototipação correta | Não permitido | Não permitido |
| Suporte para Array.isArray | Não permitido | Não permitido |
| Array.prototype.concat | Não permitido | Não permitido |
| Array.prototype.filter | Não permitido | Não permitido |
| Array.prototype.map | Não permitido | Não permitido |
| Matriz.protótipo.parte | Não permitido | Não permitido |
| Array.prototype.splice | Não permitido | Não permitido |
| Matriz.de | Não permitido | Não permitido |
| Matriz.de | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Não permitido | Não permitido |
| cadeia de prototipação correta | Não permitido | Não permitido |
| RegExp.protótipo.exec | Não permitido | Não permitido |
| RegExp.prototype.test | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| pode ser chamado | Não permitido | Não permitido |
| cadeia de prototipação correta | Não permitido | Não permitido |
| pode ser usado com "novo" | Não permitido | Não permitido |
| Function.prototype.call | Não permitido | Não permitido |
| Função.protótipo.aplicar | Não permitido | Não permitido |
| Função.protótipo.bind | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Não permitido | Não permitido |
| cadeia de prototipação correta | Não permitido | Não permitido |
| Promessa.todas | Não permitido | Não permitido |
| Promessa.corrida | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Booliano é subclasse | Não permitido | Não permitido |
| O número pode ser subclassificado | Não permitido | Não permitido |
| A cadeia de caracteres pode ser subclassificada | Não permitido | Não permitido |
| O erro é subclasse | Não permitido | Não permitido |
| O mapa é subclasse | Não permitido | Não permitido |
| O conjunto é subclasse | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funções básicas | Não permitido | Não permitido |
| funções de 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| ParaPrimitivo | Não permitido | Não permitido |
| CriarListaDeArrayLike | Não permitido | Não permitido |
| operador instanceof | Não permitido | Não permitido |
| Tem vinculação | Não permitido | Não permitido |
| CriarFunçãoDinâmica | Não permitido | Não permitido |
| ClassDefinitionEvaluation | Não permitido | Não permitido |
| IteratorComplete, IteratorValue | Não permitido | Não permitido |
| ToPropertyDescriptor | Não permitido | Não permitido |
| Objeto.atribuído | Não permitido | Não permitido |
| Objeto.definirPropriedades | Não permitido | Não permitido |
| Função.protótipo.bind | Não permitido | Não permitido |
| Error.prototype.toString | Não permitido | Não permitido |
| Cadeia de caracteres.raw | Não permitido | Não permitido |
| Construtor RegExp | Não permitido | Não permitido |
| RegExp.prototype.flags | Não permitido | Não permitido |
| RegExp.protótipo.teste | Não permitido | Não permitido |
| RegExp.prototype.toString | Não permitido | Não permitido |
| RegExp.prototype[Symbol.match] | Não permitido | Não permitido |
| RegExp.prototype[Symbol.replace] | Não permitido | Não permitido |
| RegExp.prototype[Symbol.search] | Não permitido | Não permitido |
| RegExp.prototype[Symbol.split] | Não permitido | Não permitido |
| Matriz.de | Não permitido | Não permitido |
| Array.prototype.concat | Não permitido | Não permitido |
| Métodos de iteração Array.prototype | Não permitido | Não permitido |
| Matriz.protótipo.pop | Não permitido | Não permitido |
| Matriz.protótipo.reverso | Não permitido | Não permitido |
| Array.prototype.shift | Não permitido | Não permitido |
| Array.prototype.splice | Não permitido | Não permitido |
| Array.prototype.toString | Não permitido | Não permitido |
| JSON.stringify | Não permitido | Não permitido |
| Funções de resolução de promessa | Não permitido | Não permitido |
| String.prototype.match | Não permitido | Não permitido |
| String.prototype.replace | Não permitido | Não permitido |
| String.prototype.search | Não permitido | Não permitido |
| String.prototype.split | Não permitido | Não permitido |
| Data.protótipo.paraJSON | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Objeto.atribuído | Não permitido | Não permitido |
| Matriz.de | Não permitido | Não permitido |
| Matriz.de | Não permitido | Não permitido |
| Array.prototype.copyWithin | Não permitido | Não permitido |
| Matriz.protótipo.preenchimento | Não permitido | Não permitido |
| Matriz.protótipo.pop | Não permitido | Não permitido |
| Array.prototype.push | Não permitido | Não permitido |
| Matriz.protótipo.reverso | Não permitido | Não permitido |
| Array.prototype.shift | Não permitido | Não permitido |
| Array.prototype.splice | Não permitido | Não permitido |
| Array.prototype.unshift | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| [[Definir]] | Não permitido | Não permitido |
| Definir nível de integridade | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Array.prototype.copyWithin | Não permitido | Não permitido |
| Matriz.protótipo.pop | Não permitido | Não permitido |
| Matriz.protótipo.reverso | Não permitido | Não permitido |
| Array.prototype.shift | Não permitido | Não permitido |
| Array.prototype.splice | Não permitido | Não permitido |
| Array.prototype.unshift | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| [[Definir]] | Não permitido | Não permitido |
| Objeto.atribuído | Não permitido | Não permitido |
| Objeto.protótipo.temPropriedadePrópria | Não permitido | Não permitido |
| Função.protótipo.bind | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Definir nível de integridade | Não permitido | Não permitido |
| TestIntegrityLevel | Não permitido | Não permitido |
| SerializarJSONObject | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Objeto.getPrototypeOf | Não permitido | Não permitido |
| Objeto.getOwnPropertyDescriptor | Não permitido | Não permitido |
| Objeto.getOwnPropertyNames | Não permitido | Não permitido |
| Objeto.selo | Não permitido | Não permitido |
| Objeto.congelar | Não permitido | Não permitido |
| Extensões.prevent.objeto | Não permitido | Não permitido |
| Objeto.estáSelado | Não permitido | Não permitido |
| Objeto.estáCongelado | Não permitido | Não permitido |
| Objeto.éExtensível | Não permitido | Não permitido |
| Objeto.chaves | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Objeto.chaves | Não permitido | Não permitido |
| Objeto.getOwnPropertyNames | Não permitido | Não permitido |
| Objeto.atribuído | Não permitido | Não permitido |
| JSON.stringify | Não permitido | Não permitido |
| JSON.análise | Não permitido | Não permitido |
| Reflect.ownKeys, ordem da chave de cadeia de caracteres | Não permitido | Não permitido |
| Reflect.ownKeys, ordem de chave de símbolo | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| declaração de função no nível de bloco suspenso | Não permitido | Não permitido |
| declarações de função rotuladas | Não permitido | Não permitido |
| declarações de função em cláusulas de declaração "if" | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| suporte básico | Não permitido | Não permitido |
| vários __proto__ são um erro | Não permitido | Não permitido |
| não é uma propriedade calculada | Não permitido | Não permitido |
| não é uma propriedade abreviada | Não permitido | Não permitido |
| não é um método abreviado | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| obter prototipo | Não permitido | Não permitido |
| definir prototipo | Não permitido | Não permitido |
| ausente de Object.create(null) | 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| existência | Não permitido | Não permitido |
| os nomes dos marcadores estão minúsculos | Não permitido | Não permitido |
| as aspas nos argumentos têm escape | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| funcionalidade básica | Não permitido | Não permitido |
| retorna isto | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| hifens em conjuntos de caracteres | Não permitido | Não permitido |
| escapes de caracteres inválidos | Não permitido | Não permitido |
| escapes inválidos de caracteres de controle | Não permitido | Não permitido |
| escapes de Unicode inválidos | Não permitido | Não permitido |
| escapes hexadecimais inválidos | Não permitido | Não permitido |
| padrões e quantificadores incompletos | Não permitido | Não permitido |
| sequências de escape octal | Não permitido | Não permitido |
| referências inversas inválidas se tornam escapes octais | Não permitido | Não permitido |
ECMAScript 2009 (ES5) recursos
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Acessadores getter | Compatível | Compatível |
| Acessadores do definidor | Compatível | Compatível |
| Vírgulas à direita em objetos literais | 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Objeto.criar | Compatível | Compatível |
| Objeto.definirPropriedade | Compatível | Compatível |
| Objeto.definirPropriedades | Compatível | Compatível |
| Objeto.getPrototypeOf | Compatível | Compatível |
| Objeto.chaves | Compatível | Compatível |
| Objeto.selo | Compatível | Compatível |
| Objeto.congelar | Compatível | Compatível |
| Extensões.prevent.objeto | Compatível | Compatível |
| Objeto.estáSelado | Compatível | Compatível |
| Objeto.estáCongelado | Compatível | Compatível |
| Objeto.éExtensível | Compatível | Compatível |
| Objeto.getOwnPropertyDescriptor | Compatível | Compatível |
| Objeto.getOwnPropertyNames | Compatível | Compatível |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Matriz.éArray | Compatível | Compatível |
| Array.prototype.indexOf | Compatível | Compatível |
| Array.prototype.lastIndexOf | Compatível | Compatível |
| Matriz.protótipo.todos | Compatível | Compatível |
| Array.prototype.some | Compatível | Compatível |
| Matriz.protótipo.paraCada | Compatível | Compatível |
| Matriz.protótipo.mapa | Compatível | Compatível |
| Array.prototype.filter | Compatível | Compatível |
| Matriz.protótipo.reduzir | Compatível | Compatível |
| Array.prototype.reduceRight | Compatível | Compatível |
| Array.prototype.sort: compareFn deve ser função ou indefinido | Sem Suporte | Sem Suporte |
| Array.prototype.sort: compareFn pode ser indefinido explícito | Compatível | Compatível |
| Recurso | ECMAScript 2021 (ES12) | 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 | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Data.protótipo.paraISOString | Compatível | Compatível |
| Data.agora | Compatível | Compatível |
| Data.protótipo.paraJSON | Sem Suporte | Sem Suporte |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| indefinido | Com suporte | Compatível |
| NaN | Com suporte | Compatível |
| Infinito | Com suporte | Compatível |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Number.prototype.toExponential é arredondado corretamente | Compatível | Compatível |
| Number.prototype.toExponential lança em ±Infinity openedDigits | Compatível | Compatível |
| Number.prototype.toExponential não lança em casos de borda | Compatível | Compatível |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| palavras reservadas | Não permitido | Não permitido |
| "este" está indefinido em funções | Não permitido | Não permitido |
| "este" não é forçado a objeto em métodos primitivos | Não permitido | Não permitido |
| "este" não é forçado a objeto em acessadores primitivos | Não permitido | Não permitido |
| o octal legado é um SyntaxError | Não permitido | Não permitido |
| a atribuição a identificadores não resolvidos é um Erro de Referência | Não permitido | Não permitido |
| atribuição para eval ou argumentos é um SyntaxError | Não permitido | Não permitido |
| A atribuição a propriedades não graváveis é um TypeError | Não permitido | Não permitido |
| eval ou vinculações de argumentos é um SyntaxError | Não permitido | Não permitido |
| argumentos.caller foi removido ou é um TypeError | Não permitido | Não permitido |
| argumentos.calee é um TypeError | Não permitido | Não permitido |
| (function(){}).caller e (function(){}).arguments é um TypeError | Não permitido | Não permitido |
| 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 |
| a exclusão de propriedades não configuráveis é um TypeError | Não permitido | Não permitido |
| "com" é um SyntaxError | Não permitido | Não permitido |
| nomes de parâmetro repetidos são um SyntaxError | Não permitido | Não permitido |
| expressões de função com nome e argumento correspondentes são válidas | Não permitido | Não permitido |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| Função.protótipo.bind | Compatível | Compatível |
| Recurso | ECMAScript 2021 (ES12) | Padrões ES5 |
|---|---|---|
| JSON | Compatível | Compatível |