Suporte ao recurso do mecanismo JavaScript

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 37 min. de leitura
  • 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.
    Tabela 1. Campos de classe de instância
    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
    Tabela 2. Campos de classe estática
    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
    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 Compatível Sem Suporte
    propriedades do acessador privado Sem Suporte Sem Suporte
    propriedades do acessador estático privado Compatível Sem Suporte
    Tabela 4. Método .at() nos indexáveis integrados
    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
    Tabela 5. Objeto.temPróprio
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Funcionalidade básica Compatível Sem Suporte
    ToObject chamado antes de ToPropertyKey Compatível Sem Suporte
    Tabela 6. Propriedade Error.cause
    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
    Tabela 7. Índices de correspondência 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 Compatível 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
    Erro agregado Não permitido Não permitido
    Tabela 11. Referências Fracas
    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
    Tabela 12. Atribuição lógica
    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
    Tabela 13. Separadores numéricos
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    separadores numéricos Compatível Sem Suporte
    Tabela 14. String.prototype.replaceAll
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    String.prototype.replaceAll Compatível Compatível

    Recursos do ECMAScript 2020 (ES11)

    Tabela 15. String.prototype.matchAll
    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
    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.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
    Tabela 17. globalEste
    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
    Tabela 18. Operador de encadeamento opcional (?.)
    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
    Tabela 19. Promessa.tudoConsolidado
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Promessa.tudoConsolidado Não permitido Não permitido
    Tabela 20. Operador de aglutinação nulo (??)
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    operador de aglutinação nullish (??) Compatível Sem Suporte

    ECMAScript 2019 (ES10) recursos

    Tabela 21. Símbolo.protótipo.descrição
    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
    Tabela 22. Corte de cadeia de caracteres
    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
    Tabela 23. Array.prototype.{flat, planoMap}
    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
    Tabela 24. Objeto.deEntradas
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Objeto.deEntradas Compatível 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. Revisão de Function.prototype.toString
    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
    Tabela 27. Superconjunto JSON
    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
    Tabela 28. JSON.stringify bem formado
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    JSON.stringify 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 de objeto Compatível Sem Suporte
    propriedades de propagação de objeto Compatível Sem Suporte
    Tabela 30. Promessa.protótipo.finalmente
    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
    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 Compatível Sem Suporte
    Tabela 33. Grupos de captura nomeados RegExp
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Grupos de captura nomeados RegExp Compatível Sem Suporte
    Tabela 34. Asserções de Lookbehind de RegExp
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Asserções de Lookbehind de RegExp Sem Suporte Sem Suporte
    Tabela 35. Escapes de propriedade Unicode RegExp
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Escapes de propriedade Unicode RegExp Sem Suporte Sem Suporte
    Tabela 36. Revisão literal do modelo
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    revisão literal do 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 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
    Tabela 38. Preenchimento de cadeia de caracteres
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    String.prototype.padStart Compatível Sem Suporte
    String.prototype.padEnd Compatível Sem Suporte
    Tabela 39. Vírgulas à direita na sintaxe da função
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    em listas de parâmetros Compatível Sem Suporte
    em listas de argumentos Compatível 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í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
    Tabela 41. Memória compartilhada e atômica
    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
    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 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
    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 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
    Tabela 45. Matriz.protótipo.inclui
    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

    Tabela 46. Chamadas finais apropriadas (otimização de chamadas finais)
    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 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
    Tabela 48. Parâmetros REST
    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
    Tabela 49. Sintaxe de propagação para objetos iteráveis
    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
    Tabela 50. Extensões literais de objeto
    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
    Tabela 51. Loops para-de
    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
    Tabela 52. Literais octais e binários
    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
    Tabela 53. Literais do modelo
    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
    Tabela 54. Sinalizadores RegExp "y" e "u"
    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
    Tabela 55. Destruição, declarações
    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
    Tabela 56. Desestruturação, atribuição
    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
    Tabela 57. Desestruturando, parâmetros
    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
    Tabela 58. Escapes de ponto de código Unicode
    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
    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 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
    Tabela 61. Permitir
    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
    Tabela 62. Declaração de função no nível de bloco
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    declaração de função no nível de bloco Compatível Sem Suporte
    Tabela 63. Funções de seta
    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
    Tabela 64. Classe
    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
    Tabela 65. Super
    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
    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 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
    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 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
    Tabela 68. Mapa
    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
    Tabela 69. Conjunto
    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
    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
    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
    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 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
    Tabela 72. Proxy
    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
    Tabela 73. Refletir
    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
    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.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
    Tabela 75. Símbolo
    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
    Tabela 76. Símbolos conhecidos
    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
    Tabela 77. Métodos estáticos de objeto
    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
    Tabela 78. Propriedade "nome" da função
    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
    Tabela 79. Métodos estáticos de cadeia de caracteres
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Cadeia de caracteres.raw Compatível Sem Suporte
    String.fromCodePoint Compatível Sem Suporte
    Tabela 80. Métodos String.prototype
    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
    Tabela 81. Propriedades de RegExp.prototype
    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
    Tabela 82. Métodos estáticos de matriz
    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
    Tabela 83. Métodos Array.prototype
    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
    Tabela 84. Propriedades numéricas
    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
    Tabela 85. Métodos matemáticos
    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
    Tabela 86. Date.prototype[Symbol.toPrimitive]
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Date.prototype[Symbol.toPrimitive] Compatível Sem Suporte
    Tabela 87. A matriz é subclassável
    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
    Tabela 88. RegExp é subclasse
    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
    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 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
    Tabela 90. A promessa é subclassável
    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
    Tabela 91. Subclasses diversas
    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
    Tabela 92. Protótipo 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
    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
    Tabela 94. Proxy, chamadas "definidas" internas
    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
    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
    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
    Tabela 97. Proxy, chamadas "getOwnPropertyDescriptor" internas
    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
    Tabela 98. Proxy, chamadas "ownKeys" internas
    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
    Tabela 99. Métodos estáticos de objeto aceitam primitivos
    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
    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.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
    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 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
    Tabela 103. __proto__ em literais de objeto
    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
    Tabela 104. Objeto.prototipo.__proto__
    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
    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 minúsculos 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 isto 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 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

    Tabela 108. Extensões literais de objeto/matriz
    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
    Tabela 109. Métodos estáticos de objeto
    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
    Tabela 110. Métodos de matriz
    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
    Tabela 111. Propriedades e métodos de cadeia de caracteres
    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
    Tabela 112. Métodos de data
    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
    Tabela 113. Globais imutáveis
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    indefinido Com suporte Compatível
    NaN Com suporte Compatível
    Infinito Com suporte Compatível
    Tabela 114. Métodos numéricos
    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
    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 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
    Tabela 116. Função.protótipo.bind
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    Função.protótipo.bind Compatível Compatível
    Tabela 117. JSON
    Recurso ECMAScript 2021 (ES12) Padrões ES5
    JSON Compatível Compatível