mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 00:31:14 +00:00
LibJS: Handle FinishUnwind in GenerateCFG
This commit is contained in:
parent
6998b72d22
commit
a00c421d61
Notes:
sideshowbarker
2024-07-17 05:05:51 +09:00
Author: https://github.com/Hendiadyoin1 Commit: https://github.com/SerenityOS/serenity/commit/a00c421d61 Pull-request: https://github.com/SerenityOS/serenity/pull/15971 Reviewed-by: https://github.com/FireFox317 Reviewed-by: https://github.com/alimpfard Reviewed-by: https://github.com/kleinesfilmroellchen ✅
|
@ -795,6 +795,8 @@ public:
|
|||
String to_string_impl(Bytecode::Executable const&) const;
|
||||
void replace_references_impl(BasicBlock const&, BasicBlock const&);
|
||||
|
||||
Label next_target() const { return m_next_target; }
|
||||
|
||||
private:
|
||||
Label m_next_target;
|
||||
};
|
||||
|
|
|
@ -90,6 +90,11 @@ void GenerateCFG::perform(PassPipelineExecutable& executable)
|
|||
enter_label(&resume_target, current_block);
|
||||
continue;
|
||||
}
|
||||
case FinishUnwind: {
|
||||
auto const& next_target = static_cast<Op::FinishUnwind const&>(instruction).next_target();
|
||||
enter_label(&next_target, current_block);
|
||||
continue;
|
||||
}
|
||||
default:
|
||||
// Otherwise, pop the current block off, it doesn't jump anywhere.
|
||||
iterators.take_last();
|
||||
|
|
Loading…
Reference in a new issue