LibJS: Handle FinishUnwind in GenerateCFG

This commit is contained in:
Hendiadyoin1 2022-11-02 14:55:37 +01:00 committed by Ali Mohammad Pur
parent 6998b72d22
commit a00c421d61
Notes: sideshowbarker 2024-07-17 05:05:51 +09:00
2 changed files with 7 additions and 0 deletions

View file

@ -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;
};

View file

@ -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();