mirror of
https://github.com/RGBCube/serenity
synced 2025-05-22 17:15:08 +00:00
LibJS: Make EnterUnwindContext a terminator op
Otherwise a basic block could have multiple outgoing edges without having much reason to do so.
This commit is contained in:
parent
e73b142a97
commit
4c7c7c38e2
3 changed files with 11 additions and 3 deletions
|
@ -258,6 +258,7 @@ void Throw::execute(Bytecode::Interpreter& interpreter) const
|
|||
void EnterUnwindContext::execute(Bytecode::Interpreter& interpreter) const
|
||||
{
|
||||
interpreter.enter_unwind_context(m_handler_target, m_finalizer_target);
|
||||
interpreter.jump(m_entry_point);
|
||||
}
|
||||
|
||||
void LeaveUnwindContext::execute(Bytecode::Interpreter& interpreter) const
|
||||
|
@ -453,7 +454,7 @@ String EnterUnwindContext::to_string(Bytecode::Executable const&) const
|
|||
{
|
||||
auto handler_string = m_handler_target.has_value() ? String::formatted("{}", *m_handler_target) : "<empty>";
|
||||
auto finalizer_string = m_finalizer_target.has_value() ? String::formatted("{}", *m_finalizer_target) : "<empty>";
|
||||
return String::formatted("EnterUnwindContext handler:{} finalizer:{}", handler_string, finalizer_string);
|
||||
return String::formatted("EnterUnwindContext handler:{} finalizer:{} entry:{}", handler_string, finalizer_string, m_entry_point);
|
||||
}
|
||||
|
||||
String LeaveUnwindContext::to_string(Bytecode::Executable const&) const
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue