Suporte ao recurso do mecanismo JavaScript

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 39 min. de leitura
  • Compare os recursos do ECMAScript entre os modos JavaScript ECMAScript 2021 (ES12) e Padrões ES5 em Washington DC . Ambos os modos oferecem suporte a 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

    Com suporte
    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 ao modelo de programação Now Platform ou representa um risco à segurança ou ao desempenho. Recursos não permitidos resultam em um erro.

    Recursos do ECMAScript 2022 (ES13)

    Importante:
    Antes de implantar o código na produção, você deve testar completamente os scripts usando recursos compatíveis com ECMAScript 2022 (ES13) devido ao suporte parcial recém-adicionado de recursos nesta versão do ECMAScript.
    Tabela 1. Campos de classe de instância
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    campos de classe de instância pública Com suporte 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
    campos de classe de instância privada opcional acesso Sem Suporte Sem Suporte
    campos de classe de instância privada profunda opcional acesso Sem Suporte Sem Suporte
    campos de classe de instância calculada Com suporte Sem Suporte
    Tabela 2. Campos de classe estática
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    campos de classe estática pública Com suporte Sem Suporte
    campos de classe estática usam [[Definir]] Com suporte Sem Suporte
    campos de classe estática privada Com suporte Sem Suporte
    campos de classe estática calculada Com suporte Sem Suporte
    Tabela 3. Métodos de classe privada
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    métodos de instância privada Sem Suporte Sem Suporte
    métodos estáticos privados Com suporte Sem Suporte
    propriedades do acessador privado Sem Suporte Sem Suporte
    propriedades de acessador estático privado Com suporte Sem Suporte
    Tabela 4. Método .at() nos indexáveis internos
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Array.prototype.at() Sem Suporte Sem Suporte
    Cadeia de caracteres.prototype.at() Com suporte Sem Suporte
    %TypedArray%.prototype.at() Não permitido Não permitido
    Tabela 5. Objeto.temPróprio
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Funcionalidade básica Com suporte Sem Suporte
    ToObject chamado antes de ToPropertyKey Com suporte Sem Suporte
    Tabela 6. Propriedade Error.cause
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    O erro tem causa Com suporte Sem Suporte
    Error.prototype não tem causa Com suporte Sem Suporte
    EvalError tem causa Com suporte Sem Suporte
    EvalError.prototype não tem causa Com suporte Sem Suporte
    RangeError tem causa Com suporte Sem Suporte
    RangeError.prototype não tem causa Com suporte Sem Suporte
    ReferenceError tem causa Com suporte Sem Suporte
    ReferenceError.prototype não tem causa Com suporte Sem Suporte
    SyntaxError tem causa Com suporte Sem Suporte
    SyntaxError.prototype não tem causa Com suporte Sem Suporte
    TypeError tem causa Com suporte Sem Suporte
    TypeError.prototype não tem causa Com suporte Sem Suporte
    URIError tem causa Com suporte Sem Suporte
    URIError.prototype não tem causa Com suporte Sem Suporte
    AggregateError tem causa Com suporte Sem Suporte
    AggregateError.prototype não tem causa Com suporte Sem Suporte
    Tabela 7. Índices de correspondência de RegExp (sinalizador `hasIndices` / `d`)
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    O construtor oferece suporte a ele Sem Suporte Sem Suporte
    aparece em sinalizadores Sem Suporte Sem Suporte
    Tabela 8. Verificações ergonômicas de marca para campos privados
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Verificações ergonômicas de marca para campos privados Sem Suporte Sem Suporte
    Tabela 9. Blocos de inicialização estática de classe
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Blocos de inicialização estática de classe Com suporte Sem Suporte

    ECMAScript 2021 (ES12) recursos

    Tabela 10. Promessa.qualquer
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    execução Não permitido Não permitido
    ErroAgregado Não permitido Não permitido
    Tabela 11. WeakReferences
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Suporte mínimo para WeakRef Não permitido Não permitido
    Suporte mínimo a FinalizationRegistry Não permitido Não permitido
    Tabela 12. Atribuição lógica
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    ||= suporte básico Com suporte Sem Suporte
    ||= comportamento de curto- circuito Com suporte Sem Suporte
    ||= definidor não invocado desnecessariamente Com suporte Sem Suporte
    &&= suporte básico Com suporte Sem Suporte
    &&= comportamento de curto- circuito Com suporte Sem Suporte
    O definidor &&= não foi invocado desnecessariamente Com suporte Sem Suporte
    ?”= suporte básico Com suporte Sem Suporte
    ?”= comportamento de curto- circuito Com suporte Sem Suporte
    ?”= definidor não invocado desnecessariamente Com suporte Sem Suporte
    Tabela 13. Separadores numéricos
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    separadores numéricos Com suporte Sem Suporte
    Tabela 14. Cadeia de caracteres.prototype.replaceAll
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Cadeia de caracteres.prototype.replaceAll Com suporte Com suporte

    ECMAScript 2020 (ES11) recursos

    Tabela 15. Cadeia de caracteres.prototype.matchAll
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    funcionalidade básica Com suporte Sem Suporte
    lança em regex não global Com suporte Sem Suporte
    Tabela 16. BigInt
    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.comoIntN 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
    Tabela 17. globalEste
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    A propriedade global "globalEste" é um objeto global Não permitido Não permitido
    A propriedade global "globalEste" tem o descritor de propriedade correto Não permitido Não permitido
    Tabela 18. Operador de encadeamento opcional (?).
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    acesso à propriedade opcional Com suporte Sem Suporte
    acesso ao suporte opcional Com suporte Sem Suporte
    chamada de método opcional Com suporte Sem Suporte
    chamada de função opcional Com suporte Sem Suporte
    parâmetros de propagação após o encadeamento opcional Com suporte Sem Suporte
    Tabela 19. Promessa.tudoResolvido
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Promessa.tudoResolvido Não permitido Não permitido
    Tabela 20. Operador de aglutinação nula (??)
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    anular operador de aglutinação (??) Com suporte Sem Suporte

    ECMAScript 2019 (ES10) recursos

    Tabela 21. Símbolo.prototipo.descrição
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    básico Com suporte Sem Suporte
    descrição vazia Com suporte Sem Suporte
    descrição indefinida Com suporte Sem Suporte
    Tabela 22. Corte de cadeia de caracteres
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Cadeia de caracteres.prototype.trimLeft Com suporte Com suporte
    Cadeia de caracteres.prototype.trimRight Com suporte Com suporte
    Cadeia de caracteres.prototype.trimStart Com suporte Sem Suporte
    Cadeia de caracteres.prototype.trimEnd Com suporte Sem Suporte
    Tabela 23. Matriz.prototipo.{plano, mapa plano}
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Array.prototype.flat Com suporte Sem Suporte
    Array.prototype.flatMap Com suporte Sem Suporte
    plano e planoMap em Array.prototype[@@unscopables] Com suporte Sem Suporte
    Tabela 24. Objeto.deEntradas
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Objeto.deEntradas Com suporte Sem Suporte
    Tabela 25. Vinculação de captura opcional
    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
    Tabela 26. Função.prototipo.toRevisão de cadeia de caracteres
    Recurso ECMAScript 2021 (ES12) 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
    métodos e nomes de propriedade calculada Não permitido Não permitido
    Tabela 27. Superconjunto JSON
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    O separador de linhas 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
    Tabela 28. Stringify.JSON bem formado
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Stringify.JSON bem formado Não permitido Não permitido

    ECMAScript 2018 (ES9) recursos

    Tabela 29. Propriedades de rest/spread do objeto
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    propriedades de REST do objeto Com suporte Sem Suporte
    propriedades de propagação de objeto Com suporte Sem Suporte
    Tabela 30. Promessa.prototipo.finalmente
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    suporte básico Não permitido Não permitido
    não mude o valor da resolução Não permitido Não permitido
    mudar valor de rejeição Não permitido Não permitido
    Tabela 31. Iteradores assíncronos
    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
    Tabela 32. Sinalizador s (dotAll) para expressões regulares
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Sinalizador s (dotAll) para expressões regulares Com suporte Sem Suporte
    Tabela 33. Grupos de captura nomeados RegExp
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Grupos de captura nomeados RegExp Com suporte Sem Suporte
    Tabela 34. Declarações de Lookbehind do RegExp
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Declarações de Lookbehind do RegExp Sem Suporte Sem Suporte
    Tabela 35. Escapes de propriedade Unicode de RegExp
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Escapes de propriedade Unicode de RegExp Sem Suporte Sem Suporte
    Tabela 36. Revisão de literal de modelo
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    revisão de literal de modelo Não permitido Não permitido

    ECMAScript 2017 (ES8) recursos

    Tabela 37. Métodos estáticos de objeto
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Objeto.valores Com suporte Sem Suporte
    Objeto.entradas Com suporte Sem Suporte
    Object.getOwnPropertyDescriptors Com suporte Sem Suporte
    Object.getOwnPropertyDescriptors não fornece descritores indefinidos Sem Suporte Sem Suporte
    Tabela 38. Preenchimento de cadeia de caracteres
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Cadeia de caracteres.prototype.padStart Com suporte Sem Suporte
    String.prototype.padEnd Com suporte Sem Suporte
    Tabela 39. Vírgulas à direita na sintaxe da função
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    em listas de parâmetros Com suporte Sem Suporte
    em listas de argumentos Com suporte Sem Suporte
    Tabela 40. Funções assíncronas
    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íncrona e função Não permitido Não permitido
    nenhuma propriedade "prototype" 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 que não sejam de compromisso 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 protótipo 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
    Tabela 41. Memória compartilhada e atomáticos
    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.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.carga 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
    Tabela 42. Métodos getter/setter de Object.prototype
    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 protótipo 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__, as propriedades de dados podem sombrear os acessadores Não permitido Não permitido
    __lookupSetter__ Não permitido Não permitido
    __lookupSetter__, cadeia de protótipo 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__, as propriedades de dados podem sombrear os acessadores Não permitido Não permitido
    Tabela 43. Chamadas internas de proxy, métodos getter/setter
    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

    Tabela 44. Operador de exponenciação (**)
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    suporte básico Com suporte Sem Suporte
    atribuição Com suporte Sem Suporte
    erro de sintaxe antecipada para negação unária sem parênteses Não permitido Não permitido
    Tabela 45. Array.prototype.includes
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Array.prototype.includes Com suporte Sem Suporte
    Array.prototype.includes é genérico Sem Suporte Sem Suporte
    %TypedArray%.prototype.includes Não permitido Não permitido

    ECMAScript 2015 (ES6) recursos

    Tabela 46. Chamadas de final apropriadas (otimização de chamada de final)
    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
    Tabela 47. Parâmetros de função padrão
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    funcionalidade básica Com suporte Sem Suporte
    indefinidos explícitos adiam para o padrão Com suporte Sem Suporte
    os padrões podem se referir a parâmetros anteriores Com suporte Sem Suporte
    interação de objeto de argumentos Com suporte Sem Suporte
    zona morta temporal Não permitido Não permitido
    escopo separado Com suporte Sem Suporte
    suporte a nova função () Não permitido Não permitido
    Tabela 48. Parâmetros REST
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    funcionalidade básica Com suporte Sem Suporte
    propriedade de "comprimento" da função Com suporte Sem Suporte
    interação de objeto de argumentos Sem Suporte Sem Suporte
    não pode ser usado em definidores Não permitido Não permitido
    suporte a nova função () Não permitido Não permitido
    Tabela 49. Sintaxe de propagação para objetos iteráveis
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    com matrizes, em chamadas de função Com suporte Sem Suporte
    com matrizes, em literais de matriz Com suporte Sem Suporte
    com matrizes esparsas, em chamadas de função Com suporte Sem Suporte
    com matrizes esparsas, em literais de matriz Com suporte Sem Suporte
    com cadeias de caracteres, em chamadas de função Com suporte Sem Suporte
    com cadeias de caracteres, em literais de matriz Com suporte 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 Com suporte 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 Com suporte Sem Suporte
    com iteráveis genéricos, em matrizes Com suporte Sem Suporte
    com instâncias de iteráveis, em chamadas Com suporte Sem Suporte
    com instâncias de iteráveis, em matrizes Com suporte Sem Suporte
    distribuir não iteráveis é um erro de tempo de execução Com suporte Sem Suporte
    Tabela 50. Extensões literais do objeto
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    propriedades calculadas Com suporte Sem Suporte
    propriedades de abreviação Com suporte Sem Suporte
    métodos de abreviação Com suporte Sem Suporte
    métodos abreviados com chave de cadeia de caracteres Com suporte Sem Suporte
    métodos de abreviação calculados Com suporte Sem Suporte
    acessadores calculados Com suporte Sem Suporte
    Tabela 51. Loops for-of
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    com matrizes Com suporte Sem Suporte
    com matrizes esparsas Com suporte Sem Suporte
    com cadeias de caracteres Com suporte Sem Suporte
    com cadeias de caracteres de plano astral Com suporte Sem Suporte
    com instâncias de gerador Não permitido Não permitido
    com iteráveis genéricos Com suporte Sem Suporte
    com instâncias de iteráveis genéricos Com suporte Sem Suporte
    iterador fechando, pausa Com suporte Sem Suporte
    fechamento do iterador, lançamento Com suporte Sem Suporte
    Tabela 52. Literais octais e binários
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    literais octais Com suporte Sem Suporte
    Literais binários Com suporte Sem Suporte
    octal suportado por Número () Sem Suporte Sem Suporte
    binário compatível com Number() Sem Suporte Sem Suporte
    Tabela 53. Literais do modelo
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    funcionalidade básica Com suporte Sem Suporte
    Conversão de toString Com suporte Sem Suporte
    literais de modelo marcado Com suporte Sem Suporte
    a matriz passada está congelada Com suporte Sem Suporte
    normalização de quebra de linha Não permitido Não permitido
    Cache do site de chamada TemplateStrings Com suporte Sem Suporte
    Cache permanente de TemplateStrings Com suporte Sem Suporte
    Tabela 54. Sinalizadores RegExp "y" e "u"
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Sinalizador "y" Com suporte Sem Suporte
    Sinalizador "y", lastIndex Com suporte Sem Suporte
    Sinalizador "u" Sem Suporte Sem Suporte
    Sinalizador "u", caracteres Unicode não BMP Sem Suporte Sem Suporte
    Sinalizador "u", escapes de ponto de código Unicode Sem Suporte Sem Suporte
    Sinalizador "u", dobragem de maiúsculas e minúsculas Sem Suporte Sem Suporte
    Tabela 55. Destruição, declarações
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    com matrizes Com suporte Sem Suporte
    com matrizes esparsas Com suporte Sem Suporte
    com cadeias de caracteres Com suporte Sem Suporte
    com cadeias de caracteres de plano astral Com suporte Sem Suporte
    com instâncias de gerador Não permitido Não permitido
    com iteráveis genéricos Com suporte Sem Suporte
    com instâncias de iteráveis genéricos Com suporte Sem Suporte
    encerramento do iterador Com suporte Sem Suporte
    vírgulas à direita em padrões iteráveis Com suporte Sem Suporte
    com objetos Com suporte Sem Suporte
    desestruturação de objeto com elementos primários Com suporte Sem Suporte
    vírgulas à direita em padrões de objeto Com suporte Sem Suporte
    lança em nulo e indefinido Com suporte Sem Suporte
    propriedades calculadas Com suporte Sem Suporte
    múltiplos em uma única declaração de variável Com suporte Sem Suporte
    aninhado Com suporte Sem Suporte
    em cabeçalhos de loop for-in Com suporte Sem Suporte
    em cabeçalhos de loop for-of Com suporte Sem Suporte
    em cabeçalhos alternativos Com suporte Sem Suporte
    descanso Com suporte Sem Suporte
    padrões Com suporte Sem Suporte
    padrões, deixar zona morta temporal Não permitido Não permitido
    Tabela 56. Desestruturação, atribuição
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    com matrizes Com suporte Sem Suporte
    com matrizes esparsas Com suporte Sem Suporte
    com cadeias de caracteres Com suporte Sem Suporte
    com cadeias de caracteres de plano astral Com suporte Sem Suporte
    com instâncias de gerador Não permitido Não permitido
    com iteráveis genéricos Com suporte Sem Suporte
    com instâncias de iteráveis genéricos Com suporte Sem Suporte
    encerramento do iterador Com suporte Sem Suporte
    expressão de desestruturação iterável Com suporte Sem Suporte
    desestruturação iterável encadeada Com suporte Sem Suporte
    vírgulas à direita em padrões iteráveis Com suporte Sem Suporte
    com objetos Com suporte Sem Suporte
    desestruturação de objeto com elementos primários Com suporte Sem Suporte
    vírgulas à direita em padrões de objeto Com suporte Sem Suporte
    expressão de desestruturação de objeto Com suporte Sem Suporte
    entre parênteses no lado esquerdo é um erro de sintaxe Não permitido Não permitido
    desestruturação de objeto encadeado Com suporte Sem Suporte
    lança em nulo e indefinido Com suporte Sem Suporte
    propriedades calculadas Com suporte Sem Suporte
    aninhado Com suporte Sem Suporte
    descanso Com suporte Sem Suporte
    descanso aninhado Com suporte Sem Suporte
    padrões vazios Com suporte Sem Suporte
    padrões Com suporte Sem Suporte
    Tabela 57. Desestruturação, parâmetros
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    com matrizes Com suporte Sem Suporte
    com matrizes esparsas Com suporte Sem Suporte
    com cadeias de caracteres Com suporte Sem Suporte
    com cadeias de caracteres de plano astral Com suporte Sem Suporte
    com instâncias de gerador Não permitido Não permitido
    com iteráveis genéricos Com suporte Sem Suporte
    com instâncias de iteráveis genéricos Com suporte Sem Suporte
    encerramento do iterador Com suporte Sem Suporte
    vírgulas à direita em padrões iteráveis Com suporte Sem Suporte
    com objetos Com suporte Sem Suporte
    desestruturação de objeto com elementos primários Com suporte Sem Suporte
    vírgulas à direita em padrões de objeto Com suporte Sem Suporte
    lança em nulo e indefinido Com suporte Sem Suporte
    propriedades calculadas Com suporte Sem Suporte
    aninhado Com suporte Sem Suporte
    interação "argumentos" Com suporte Sem Suporte
    suporte a nova função () Não permitido Não permitido
    em parâmetros, propriedade "length" da função Com suporte Sem Suporte
    descanso Com suporte Sem Suporte
    padrões vazios Com suporte Sem Suporte
    padrões Com suporte Sem Suporte
    padrões, escopo separado Com suporte Sem Suporte
    padrões, suporte a nova função () Não permitido Não permitido
    padrões com alias, função de seta Com suporte Sem Suporte
    padrões de abreviação, função de seta Com suporte Sem Suporte
    identificador duplicado Não permitido Não permitido
    Tabela 58. Escapes de ponto de código Unicode
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    em cadeias de caracteres Com suporte 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
    Tabela 59. Novo.destino
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    em construtores Sem Suporte Sem Suporte
    atribuição é um erro inicial Não permitido Não permitido
    Tabela 60. Const
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    suporte básico Com suporte Com suporte
    tem escopo de bloco Com suporte Sem Suporte
    resolução de sombra de escopo Com suporte 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 de declaração de loop for Com suporte Sem Suporte
    escopo de iteração de loop for-in Com suporte Sem Suporte
    escopo de iteração de loop for-of Com suporte Sem Suporte
    zona morta temporal Sem Suporte Sem Suporte
    suporte básico (modo estrito) Com suporte Com suporte
    tem escopo de bloco (modo estrito) Com suporte Sem Suporte
    resolução de sombra do escopo (modo estrito) Com suporte 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 de declaração de loop for (modo estrito) Com suporte Sem Suporte
    escopo de iteração de loop for-in (modo estrito) Com suporte Sem Suporte
    escopo de iteração de loop for-of (modo estrito) Com suporte Sem Suporte
    zona morta temporal (modo estrito) Sem Suporte Sem Suporte
    Tabela 61. Permitir
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    suporte básico Com suporte Sem Suporte
    tem escopo de bloco Com suporte Sem Suporte
    resolução de sombra de escopo Com suporte Sem Suporte
    não pode estar em declarações Não permitido Não permitido
    escopo de declaração de loop for Com suporte Sem Suporte
    zona morta temporal Sem Suporte Sem Suporte
    escopo de iteração de loop for/for-in Com suporte Sem Suporte
    parâmetro de sombreamento de vinculação de loop for-in Não permitido Não permitido
    suporte básico (modo estrito) Com suporte Sem Suporte
    tem escopo de bloco (modo estrito) Com suporte Sem Suporte
    resolução de sombra do escopo (modo estrito) Com suporte Sem Suporte
    não pode estar em declarações (modo estrito) Não permitido Não permitido
    escopo de declaração de loop for (modo estrito) Com suporte Sem Suporte
    zona morta temporal (modo estrito) Sem Suporte Sem Suporte
    escopo de iteração de loop for/for-in (modo estrito) Com suporte Sem Suporte
    parâmetro de sombreamento de vinculação de loop for-in (modo estrito) Não permitido Não permitido
    Tabela 62. Declaração de função no nível de bloco
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    declaração de função de nível de bloco Com suporte Sem Suporte
    Tabela 63. Funções de seta
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    0 parâmetro Com suporte Sem Suporte
    1 parâmetro, sem colchetes Com suporte Sem Suporte
    parâmetros múltiplos Com suporte Sem Suporte
    vinculação léxica "este" Com suporte Sem Suporte
    "este" inalterado por chamada ou aplicação Com suporte Sem Suporte
    não pode ser vinculado, pode ser modificado Com suporte Sem Suporte
    vinculação de "argumentos" lexicais Com suporte 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 "prototype" Sem Suporte Sem Suporte
    vinculação "super" léxica em construtores Com suporte Sem Suporte
    vinculação "super" léxica em métodos Com suporte Sem Suporte
    vinculação léxica "new.target" Sem Suporte Sem Suporte
    Tabela 64. Classe
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    declaração de classe Com suporte Sem Suporte
    tem escopo de bloco Com suporte Sem Suporte
    expressão de classe Com suporte Sem Suporte
    classe anônima Com suporte Sem Suporte
    construtor Com suporte Sem Suporte
    métodos de protótipo Com suporte Sem Suporte
    métodos com chave de cadeia de caracteres Com suporte Sem Suporte
    métodos de protótipo computado Com suporte Sem Suporte
    ponto e vírgula opcionais Com suporte Sem Suporte
    métodos estáticos Com suporte Sem Suporte
    métodos estáticos calculados Com suporte Sem Suporte
    propriedades do acessador Com suporte Sem Suporte
    propriedades do acessador calculado Com suporte Sem Suporte
    propriedades do acessador estático Com suporte Sem Suporte
    propriedades do acessador estático calculado Com suporte Sem Suporte
    o nome da classe tem escopo léxico Com suporte Sem Suporte
    nomes calculados, zona morta temporal Sem suporte Sem Suporte
    métodos não são enumeráveis Com suporte Sem Suporte
    modo estrito implícito Sem Suporte Sem Suporte
    construtor requer novo Com suporte Sem Suporte
    estendidos Com suporte Sem Suporte
    estende expressões Com suporte Sem Suporte
    estende nulo Com suporte Sem Suporte
    novo.destino Com suporte Sem Suporte
    Tabela 65. Super
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    declaração em construtores Com suporte Sem Suporte
    expressão em construtores Com suporte Sem Suporte
    em métodos, acesso à propriedade Com suporte Sem Suporte
    em métodos, chamadas de método Com suporte Sem Suporte
    chamadas de método usam a vinculação "esta" correta Com suporte Sem Suporte
    chamadas de construtor usam a vinculação "new.target" correta Com suporte Sem Suporte
    está vinculado estaticamente Com suporte Sem Suporte
    super() invoca o construtor correto Com suporte Sem Suporte
    Tabela 66. Geradores
    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 protótipos %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 *, iterador fechando via arremesso () Não permitido Não permitido
    métodos do gerador de abreviação Não permitido Não permitido
    métodos de gerador de abreviação 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 de abreviação, classes Não permitido Não permitido
    geradores de abreviação calculados, classes Não permitido Não permitido
    geradores de abreviação não podem ser construtores Não permitido Não permitido
    Tabela 67. Matrizes digitadas
    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 protótipo 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.class 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
    Tabela 68. Mapa
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    funcionalidade básica Com suporte Sem Suporte
    argumentos do construtor Com suporte Sem Suporte
    construtor requer novo Com suporte Sem Suporte
    construtor aceita nulo Com suporte Sem Suporte
    construtor invoca conjunto Com suporte Sem Suporte
    encerramento do iterador Com suporte Sem Suporte
    Map.prototype.set retorna este Com suporte Sem Suporte
    A chave -0 é convertida em +0 Com suporte Sem Suporte
    Map.prototype.size Com suporte Sem Suporte
    Map.prototype.delete Com suporte Sem Suporte
    Map.prototype.clear Com suporte Sem Suporte
    Map.prototype.forCada Com suporte Sem Suporte
    Map.prototype.keys Com suporte Sem Suporte
    Map.prototype.values Com suporte Sem Suporte
    Map.prototype.entries Com suporte Sem Suporte
    Map.prototype [Symbol.iterator] Com suporte Sem Suporte
    Map.prototype não é uma instância Com suporte Sem Suporte
    Mapear cadeia de protótipos do iterador Com suporte Sem Suporte
    Mapa [Symbol.species] Com suporte Sem Suporte
    Tabela 69. Conjunto
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    funcionalidade básica Com suporte Sem Suporte
    argumentos do construtor Com suporte Sem Suporte
    construtor requer novo Com suporte Sem Suporte
    construtor aceita nulo Com suporte Sem Suporte
    construtor invoca adicionar Com suporte Sem Suporte
    encerramento do iterador Com suporte Sem Suporte
    Set.prototype.add retorna este Com suporte Sem Suporte
    A chave -0 é convertida em +0 Com suporte Sem Suporte
    Set.prototype.size Com suporte Sem Suporte
    Definir.prototipo.excluir Com suporte Sem Suporte
    Definir.prototipo.limpar Com suporte Sem Suporte
    Definir.prototipo.paraCada Com suporte Sem Suporte
    Set.prototype.keys Com suporte Sem Suporte
    Definir.prototipo.valores Com suporte Sem Suporte
    Set.prototype.entries Com suporte Sem Suporte
    Set.prototype[Symbol.iterator] Com suporte Sem Suporte
    Set.prototype não é uma instância Com suporte Sem Suporte
    Definir cadeia de protótipos de iterador Com suporte Sem Suporte
    Definir [Symbol.species] Com suporte Sem Suporte
    Tabela 70. Mapa fraco
    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 conjunto Não permitido Não permitido
    objetos congelados como chaves Não permitido Não permitido
    encerramento do iterador Não permitido Não permitido
    WeakMap.prototype.set retorna isso Não permitido Não permitido
    WeakMap.prototype.delete Não permitido Não permitido
    nenhum método WeakMap.prototype.clear Não permitido Não permitido
    Os métodos .has, .get e .delete aceitam elementos primários Não permitido Não permitido
    WeakMap.prototype não é uma instância Não permitido Não permitido
    Tabela 71. Conjunto Fraco
    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 adicionar Não permitido Não permitido
    encerramento do iterador Não permitido Não permitido
    WeakSet.prototype.add retorna este 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 primários Não permitido Não permitido
    WeakSet.prototype não é uma instância Não permitido Não permitido
    Tabela 72. Proxy
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    construtor requer novo Não permitido Não permitido
    nenhuma propriedade "prototype" 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
    "tem" manipulador Não permitido Não permitido
    "tem" manipulador, instâncias de proxies Não permitido Não permitido
    "tem" invariantes do manipulador 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
    "aplicar" manipulador invariante Não permitido Não permitido
    manipulador de "construção" Não permitido Não permitido
    Invariantes do manipulador de "construir" Não permitido Não permitido
    Proxy.revogável Não permitido Não permitido
    Suporte Array.isArray Não permitido Não permitido
    Suporte a JSON.stringify Não permitido Não permitido
    Tabela 73. Refletir
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Refletir.get Não permitido Não permitido
    Refletir.conjunto Não permitido Não permitido
    Reflete.tem Não permitido Não permitido
    Refletir.excluirPropriedade Não permitido Não permitido
    Refletir.getOwnPropertyDescriptor 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
    Refletir.preventExtensões 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 meta-propriedade 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
    Subclasse de Reflect.construct, Promessa Não permitido Não permitido
    Tabela 74. Promessa
    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.tudo 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
    Tabela 75. Símbolo
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    funcionalidade básica Com suporte Sem Suporte
    suporte de tipo Com suporte Sem Suporte
    as chaves de símbolo estão ocultas no código anterior ao ES6 Com suporte Sem Suporte
    Suporte a Object.defineProperty Com suporte Sem Suporte
    símbolos herdam de símbolo.prototipo Com suporte Sem Suporte
    não pode forçar para cadeia de caracteres ou número Sem Suporte Sem Suporte
    pode converter com Cadeia de caracteres () Sem Suporte Sem Suporte
    novos lançamentos de símbolo () Com suporte Sem Suporte
    Objeto (símbolo) Sem Suporte Sem Suporte
    JSON.stringify ignora símbolos primários Com suporte Sem Suporte
    JSON.stringify ignora objetos de símbolo Sem Suporte Sem Suporte
    registro de símbolo global Com suporte Sem Suporte
    Tabela 76. Símbolos conhecidos
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Símbolo.temInstância Não permitido Não permitido
    Símbolo.éContactávelEspalhável Não permitido Não permitido
    Símbolo.iterator, existência Não permitido Não permitido
    Símbolo.iterator, objeto de argumentos Não permitido Não permitido
    Símbolo.espécies, 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, matriz.prototipo.filtro Não permitido Não permitido
    Símbolo.espécie, matriz.prototipo.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.prototype[Symbol.split] Não permitido Não permitido
    Símbolo.espécie, Promessa.prototipo.então Não permitido Não permitido
    Símbolo.substituir Não permitido Não permitido
    Símbolo.search Não permitido Não permitido
    Símbolo.dividido Não permitido Não permitido
    Símbolo.correspondência Não permitido Não permitido
    Construtor de Símbolo.correspondência, RegExp Não permitido Não permitido
    Correspondência.símbolo, String.prototype.startsWith Não permitido Não permitido
    Correspondência.símbolo, String.prototype.endsWith Não permitido Não permitido
    Correspondência.símbolo, cadeia de caracteres.prototipo.inclui Não permitido Não permitido
    Símbolo.paraPrimitivo Não permitido Não permitido
    Símbolo.paraTagDeCadeiadecadeia Não permitido Não permitido
    A propriedade "Symbol.toStringTag" afeta os internos existentes Não permitido Não permitido
    Símbolo.toStringTag, novos internos Não permitido Não permitido
    Símbolo.toStringTag, diversos. internos Não permitido Não permitido
    Símbolos.uncopables Não permitido Não permitido
    Tabela 77. Métodos estáticos de objeto
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Objeto.atribuir Com suporte Sem Suporte
    Objeto.é Com suporte Sem Suporte
    Objeto.getOwnPropertySymbols Com suporte Sem Suporte
    Objeto.setPrototypeOf Sem Suporte Sem Suporte
    Tabela 78. Propriedade "name" da função
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    declarações de função Com suporte Com suporte
    expressões de função Com suporte Com suporte
    nova função Sem Suporte Sem Suporte
    funções vinculadas Sem Suporte Sem Suporte
    variáveis (função) Com suporte Sem Suporte
    métodos de objeto (função) Com suporte Sem Suporte
    propriedades do acessador Sem Suporte Sem Suporte
    métodos de abreviação Com suporte Sem Suporte
    métodos abreviados (sem vinculação léxica) Com suporte Sem Suporte
    métodos com chave de símbolo Sem Suporte Sem Suporte
    declarações de classe Com suporte Sem Suporte
    expressões de classe Com suporte Sem Suporte
    variáveis (classe) Com suporte Sem Suporte
    métodos de objeto (classe) Sem Suporte Sem Suporte
    métodos de protótipo de classe Com suporte Sem Suporte
    métodos estáticos de classe Com suporte Sem Suporte
    não é gravável, é configurável Sem Suporte Sem Suporte
    Tabela 79. Métodos estáticos de cadeia de caracteres
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Cadeia de caracteres.raw Com suporte Sem Suporte
    Cadeia de caracteres.deCodePoint Com suporte Sem Suporte
    Tabela 80. Métodos String.prototype
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Cadeia de caracteres.prototype.codePointAt Com suporte Com suporte
    Cadeia de caracteres.prototype.normalize Com suporte Com suporte
    Cadeia de caracteres.prototype.repeat Com suporte Com suporte
    Cadeia de caracteres.prototype.startsWith Com suporte Com suporte
    String.prototype.startsWith é lançado em RegExp Sem Suporte Sem Suporte
    Cadeia de caracteres.prototype.endsWith Com suporte Com suporte
    String.prototype.endsWith é lançado no RegExp Sem Suporte Sem Suporte
    Cadeia de caracteres.prototype.includes Com suporte Com suporte
    String.prototype[Symbol.iterator] Com suporte Sem Suporte
    Cadeia de protótipo de iterador de cadeia de caracteres Com suporte Sem Suporte
    Tabela 81. Propriedades de RegExp.prototype
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    RegExp.prototype.flags Com suporte Sem Suporte
    RegExp.prototype[Symbol.match] Sem Suporte Sem Suporte
    RegExp.prototype[Symbol.replace] Com suporte Sem Suporte
    RegExp.prototype[Symbol.split] Com suporte Sem Suporte
    RegExp.prototype[Symbol.search] Sem Suporte Sem Suporte
    RegExp[Symbol.species] Com suporte Sem Suporte
    Tabela 82. Métodos estáticos de matriz
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Array.from, objetos semelhantes a matriz Com suporte Sem Suporte
    Array.from, instâncias do gerador Não permitido Não permitido
    Array.from, iteráveis genéricos Com suporte Sem Suporte
    Array.from, instâncias de iteráveis genéricos Com suporte Sem Suporte
    Função de mapa Array.from, objetos semelhantes a matriz Com suporte Sem Suporte
    Função de mapa Array.from, instâncias do gerador Não permitido Não permitido
    Função de mapa Array.from, iteráveis genéricos Com suporte Sem Suporte
    Função de mapa Array.from, instâncias de iteráveis Com suporte Sem Suporte
    Array.from, iterador fechando Com suporte Sem Suporte
    Matriz.de Com suporte Sem Suporte
    Matriz [Symbol.species] Com suporte Sem Suporte
    Tabela 83. Métodos Array.prototype
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Array.prototype.copyWithin Com suporte Sem Suporte
    Array.prototype.find Com suporte Sem Suporte
    Array.prototype.findIndex Com suporte Sem Suporte
    Array.prototype.fill Com suporte Sem Suporte
    Array.prototype.keys Com suporte Sem Suporte
    Array.prototype.values Com suporte Sem Suporte
    Array.prototype.entries Com suporte Sem Suporte
    Array.prototype[Symbol.iterator] Com suporte Sem Suporte
    Cadeia de protótipo do iterador de matriz Com suporte Sem Suporte
    Array.prototype[Symbol.unscopables] Com suporte Sem Suporte
    Tabela 84. Propriedades de número
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Número.éFinito Com suporte Sem Suporte
    Número.éInteiro Com suporte Sem Suporte
    Number.isSafeInteger Com suporte Sem Suporte
    Número.éNaN Com suporte Sem Suporte
    Number.parseFloat Não permitido Não permitido
    Number.parseInt Não permitido Não permitido
    Número.EPSILON Com suporte Sem Suporte
    Número.MIN_SAFE_INTEGER Com suporte Sem Suporte
    Número.MAX_SAFE_INTEGER Com suporte Sem Suporte
    Tabela 85. Métodos matemáticos
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Math.clz32 Com suporte Sem Suporte
    Math.imul Com suporte Sem Suporte
    Math.sinal Com suporte Sem Suporte
    Math.log10 Com suporte Sem Suporte
    Math.log2 Com suporte Sem Suporte
    Math.log1p Com suporte Sem Suporte
    Math.expm1 Com suporte Sem Suporte
    Math.cosh Com suporte Sem Suporte
    Math.sinh Com suporte Sem Suporte
    Math.tanh Com suporte Sem Suporte
    Math.acosh Com suporte Sem Suporte
    Math.asinh Com suporte Sem Suporte
    Math.atanh Com suporte Sem Suporte
    Math.trunc Com suporte Sem Suporte
    Math.fund Com suporte Sem Suporte
    Math.cbrt Com suporte Sem Suporte
    Math.hypot Com suporte Sem Suporte
    Tabela 86. Date.prototype[Symbol.toPrimitive]
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Date.prototype[Symbol.toPrimitive] Com suporte Sem Suporte
    Tabela 87. A matriz pode ser subclassificada
    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 protótipo correta Não permitido Não permitido
    Suporte 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
    Matriz.prototipo.mapa Não permitido Não permitido
    Array.prototype.slice 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
    Tabela 88. RegExp é subclassificável
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    funcionalidade básica Não permitido Não permitido
    cadeia de protótipo 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
    Tabela 89. A função pode ser subclassificada
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    pode ser chamado Não permitido Não permitido
    cadeia de protótipo correta Não permitido Não permitido
    pode ser usado com "novo" Não permitido Não permitido
    Função.prototipo.chamada Não permitido Não permitido
    Função.prototipo.aplicar Não permitido Não permitido
    Função.prototipo.bind Não permitido Não permitido
    Tabela 90. Promessa é subclassificável
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    funcionalidade básica Não permitido Não permitido
    cadeia de protótipo correta Não permitido Não permitido
    Promessa.tudo Não permitido Não permitido
    Promessa.corrida Não permitido Não permitido
    Tabela 91. Subclassificações diversas
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    O booliano é subclassificado 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 pode ser subclassificado Não permitido Não permitido
    O mapa pode ser subclassificado Não permitido Não permitido
    O conjunto pode ser subclassificado Não permitido Não permitido
    Tabela 92. Prottipo de funções vinculadas
    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
    Tabela 93. Proxy, chamadas internas "get"
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    ParaPrimitivo Não permitido Não permitido
    CreateListFromArrayLike Não permitido Não permitido
    operador instanceof Não permitido Não permitido
    HasBinding Não permitido Não permitido
    CreateDynamicFunction 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.atribuir Não permitido Não permitido
    Objeto.definirPropriedades Não permitido Não permitido
    Função.prototipo.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.prototype.test 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
    Array.prototype.pop Não permitido Não permitido
    Array.prototype.reverse 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 compromisso Não permitido Não permitido
    Cadeia de caracteres.prototype.match Não permitido Não permitido
    Cadeia de caracteres.prototype.replace Não permitido Não permitido
    Cadeia de caracteres.prototype.search Não permitido Não permitido
    Cadeia de caracteres.prototype.split Não permitido Não permitido
    Data.prototype.toJSON Não permitido Não permitido
    Tabela 94. Proxy, chamadas internas "definidas"
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Objeto.atribuir 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
    Array.prototype.fill Não permitido Não permitido
    Array.prototype.pop Não permitido Não permitido
    Array.prototype.push Não permitido Não permitido
    Array.prototype.reverse 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
    Tabela 95. Proxy, chamadas "defineProperty" internas
    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
    Tabela 96. Proxy, chamadas "deleteProperty" internas
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Array.prototype.copyWithin Não permitido Não permitido
    Array.prototype.pop Não permitido Não permitido
    Array.prototype.reverse 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
    Tabela 97. Proxy, chamadas internas de "getOwnPropertyDescriptor"
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    [[Definir]] Não permitido Não permitido
    Objeto.atribuir Não permitido Não permitido
    Object.prototype.hasOwnProperty Não permitido Não permitido
    Função.prototipo.bind Não permitido Não permitido
    Tabela 98. Proxy, chamadas internas de "ownKeys"
    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
    SerializeJSONObject Não permitido Não permitido
    Tabela 99. Os métodos estáticos de objeto aceitam elementos primários
    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
    Object.preventExtensions Não permitido Não permitido
    Objeto.estáLacrado 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
    Tabela 100. Pedido de propriedade própria
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Objeto.chaves Não permitido Não permitido
    Objeto.getOwnPropertyNames Não permitido Não permitido
    Objeto.atribuir Não permitido Não permitido
    JSON.stringify Não permitido Não permitido
    JSON.analisar Não permitido Não permitido
    Reflect.ownKeys, ordem da chave da cadeia de caracteres Não permitido Não permitido
    Reflect.ownKeys, ordem de chave de símbolo Não permitido Não permitido
    Tabela 101. Sintaxe do identificador atualizada
    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
    Tabela 102. Semântica de função não estrita
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    declaração de função de nível de bloco elevado 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
    Tabela 103. __proto__ em literais de objeto
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    suporte básico Não permitido Não permitido
    __proto__ múltiplo é um erro Não permitido Não permitido
    não é uma propriedade calculada Não permitido Não permitido
    não é uma propriedade de abreviação Não permitido Não permitido
    não é um método de abreviação Não permitido Não permitido
    Tabela 104. Objeto.prototipo.__proto__
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    obter protótipo Não permitido Não permitido
    definir protótipo 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
    Tabela 105. Métodos HTML String.prototype
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    existência Não permitido Não permitido
    os nomes dos marcadores estão em minúsculas Não permitido Não permitido
    as aspas nos argumentos têm escape Não permitido Não permitido
    Tabela 106. RegExp.prototype.compile
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    funcionalidade básica Não permitido Não permitido
    retorna este Não permitido Não permitido
    Tabela 107. Extensões de sintaxe RegExp
    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 de caractere de controle inválidos 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 inválidas se tornam escapes octais Não permitido Não permitido

    ECMAScript 2009 (ES5) recursos

    Tabela 108. Extensões literais de objeto/matriz
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Acessadores getters Com suporte Com suporte
    Acessadores definidores Com suporte Com suporte
    Vírgulas finais em literais de objeto Com suporte Com suporte
    Vírgulas finais em literais de matriz Com suporte Com suporte
    Palavras reservadas como nomes de propriedade Com suporte Com suporte
    Tabela 109. Métodos estáticos de objeto
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Objeto.criar Com suporte Com suporte
    Objeto.definirPropriedade Com suporte Com suporte
    Objeto.definirPropriedades Com suporte Com suporte
    Objeto.getPrototypeOf Com suporte Com suporte
    Objeto.chaves Com suporte Com suporte
    Objeto.selo Com suporte Com suporte
    Objeto.congelar Com suporte Com suporte
    Object.preventExtensions Com suporte Com suporte
    Objeto.estáLacrado Com suporte Com suporte
    Objeto.estáCongelado Com suporte Com suporte
    Objeto.éExtensível Com suporte Com suporte
    Objeto.getOwnPropertyDescriptor Com suporte Com suporte
    Objeto.getOwnPropertyNames Com suporte Com suporte
    Tabela 110. Métodos de matriz
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Matriz.éMatriz Com suporte Com suporte
    Array.prototype.indexOf Com suporte Com suporte
    Array.prototype.lastIndexOf Com suporte Com suporte
    Array.prototype.every Com suporte Com suporte
    Array.prototype.some Com suporte Com suporte
    Array.prototype.forCada Com suporte Com suporte
    Matriz.prototipo.mapa Com suporte Com suporte
    Array.prototype.filter Com suporte Com suporte
    Array.prototype.reduce Com suporte Com suporte
    Array.prototype.reduceRight Com suporte Com suporte
    Array.prototype.class: compareFn deve ser função ou indefinido Sem Suporte Sem Suporte
    Array.prototype.sort: compareFn pode ser indefinido explícito Com suporte Com suporte
    Tabela 111. Propriedades e métodos de cadeia de caracteres
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Acesso à propriedade em cadeias de caracteres Com suporte Com suporte
    Cadeia de caracteres.prototype.split Com suporte Sem Suporte
    Cadeia de caracteres.prototype.trim Com suporte Com suporte
    Tabela 112. Métodos de data
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Date.prototype.toISOString Com suporte Com suporte
    Data.agora Com suporte Com suporte
    Data.prototype.toJSON Sem Suporte Sem Suporte
    Tabela 113. Globais imutáveis
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    indefinido Com suporte Com suporte
    NdN Com suporte Com suporte
    Infinito Com suporte Com suporte
    Tabela 114. Métodos numéricos
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Number.prototype.toExponential arredonda corretamente Com suporte Com suporte
    Number.prototype.toExponential lança em ±Digits Fração Infinita Com suporte Com suporte
    Number.prototype.toExponential não gera casos de edge Com suporte Com suporte
    Tabela 115. Modo estrito
    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 primários Não permitido Não permitido
    "este" não é coagido a objeto em acessadores primários Não permitido Não permitido
    o octal legado é um SyntaxError Não permitido Não permitido
    a atribuição de identificadores que não podem ser resolvidos é um ReferenceError Não permitido Não permitido
    atribuição para eval ou argumentos é um SyntaxError Não permitido Não permitido
    atribuição a propriedades não graváveis é um TypeError Não permitido Não permitido
    vinculações de eval ou 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á mapeado 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 Não permitido Não permitido
    nomes de parâmetro repetidos é 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
    Tabela 116. Função.prototipo.bind
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Função.prototipo.bind Com suporte Com suporte
    Tabela 117. JSON
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    JSON Com suporte Com suporte