LibJS: Add method to VM to clear the execution context stack

This is needed for the spin the event loop AO in LibWeb
This commit is contained in:
Andrew Kaster 2024-01-18 12:49:35 -07:00 committed by Alexander Kalenik
parent 682a6d5882
commit aef5932235
Notes: sideshowbarker 2024-07-16 20:21:48 +09:00
2 changed files with 6 additions and 0 deletions

View file

@ -742,6 +742,11 @@ void VM::save_execution_context_stack()
m_saved_execution_context_stacks.append(move(m_execution_context_stack));
}
void VM::clear_execution_context_stack()
{
m_execution_context_stack.clear_with_capacity();
}
void VM::restore_execution_context_stack()
{
m_execution_context_stack = m_saved_execution_context_stacks.take_last();

View file

@ -229,6 +229,7 @@ public:
ThrowCompletionOr<Value> named_evaluation_if_anonymous_function(ASTNode const& expression, DeprecatedFlyString const& name);
void save_execution_context_stack();
void clear_execution_context_stack();
void restore_execution_context_stack();
// Do not call this method unless you are sure this is the only and first module to be loaded in this vm.