1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 08:08:12 +00:00

LibJS: Handle exception in for loop test execution

This commit is contained in:
Linus Groh 2020-04-28 20:16:40 +01:00 committed by Andreas Kling
parent 5eaa7ff406
commit 8ad11df89f
2 changed files with 40 additions and 1 deletions

View file

@ -236,9 +236,12 @@ Value ForStatement::execute(Interpreter& interpreter) const
}
if (m_test) {
while (m_test->execute(interpreter).to_boolean()) {
while (true) {
auto test_result = m_test->execute(interpreter);
if (interpreter.exception())
return {};
if (!test_result.to_boolean())
break;
last_value = interpreter.run(*m_body);
if (interpreter.exception())
return {};