O Novo Superpoder do JavaScript: Gerenciamento Explícito de Recursos
A proposta de Gerenciamento Explícito de Recursos introduz uma abordagem determinística para gerenciar explicitamente o ciclo de vida de recursos como manipuladores de arquivos, conexões de rede e mais. Esta proposta traz as seguintes adições à linguagem: as declarações using e await using, que chamam automaticamente o método dispose quando um recurso sai do escopo; os símbolos [Symbol.dispose]() e [Symbol.asyncDispose]() para operações de limpeza; dois novos objetos globais DisposableStack e AsyncDisposableStack como contêineres para agregar recursos descartáveis; e SuppressedError como um novo tipo de erro (contém tanto o erro que foi lançado mais recentemente, quanto o erro que foi suprimido) para lidar com o cenário onde um erro ocorre durante o descarte de um recurso, potencialmente mascarando um erro existente lançado pelo corpo ou pelo descarte de outro recurso. Essas adições permitem que os desenvolvedores escrevam códigos mais robustos, performáticos e mantíveis, fornecendo controle granular sobre o descarte de recursos.