LibJS: Shrink DeclarativeEnvironment bindings vector to fit

After setting up all the bindings in function_declaration_instantiation,
we now ask DeclarativeEnvironment to do a shrink_to_fit() on its vector
of bindings.

This ends up saving 5.6 MiB on twitter.com/awesomekling :^)
This commit is contained in:
Andreas Kling 2022-11-26 20:33:52 +01:00 committed by Linus Groh
parent d77ce7bae9
commit 2e98c17347
Notes: sideshowbarker 2024-07-17 03:36:30 +09:00
3 changed files with 12 additions and 0 deletions

View file

@ -577,6 +577,11 @@ ThrowCompletionOr<void> ECMAScriptFunctionObject::function_declaration_instantia
MUST(var_environment->set_mutable_binding(vm, declaration.name(), function, false));
}
if (is<DeclarativeEnvironment>(*lex_environment))
static_cast<DeclarativeEnvironment*>(lex_environment)->shrink_to_fit();
if (is<DeclarativeEnvironment>(*var_environment))
static_cast<DeclarativeEnvironment*>(var_environment)->shrink_to_fit();
return {};
}