LibJS: Do not execute scripts with parse errors

This adds missing checks in several LibJS consumers.
This commit is contained in:
Stephan Unverwerth 2020-04-13 02:05:21 +02:00 committed by Andreas Kling
parent 50b6b6ef86
commit 984c290ec0
Notes: sideshowbarker 2024-07-19 07:38:28 +09:00
4 changed files with 36 additions and 7 deletions

View file

@ -59,7 +59,11 @@ void HTMLScriptElement::children_changed()
if (source.is_empty())
return;
auto program = JS::Parser(JS::Lexer(source)).parse_program();
auto parser = JS::Parser(JS::Lexer(source));
auto program = parser.parse_program();
if (parser.has_errors())
return;
document().interpreter().run(*program);
}
@ -90,7 +94,11 @@ void HTMLScriptElement::inserted_into(Node& new_parent)
return;
}
auto program = JS::Parser(JS::Lexer(source)).parse_program();
auto parser = JS::Parser(JS::Lexer(source));
auto program = parser.parse_program();
if (parser.has_errors())
return;
document().interpreter().run(*program);
}