LibJS: Disallow 'continue' & 'break' outside of their respective scopes

'continue' is no longer allowed outside of a loop, and an unlabeled
'break' is not longer allowed outside of a loop or switch statement.
Labeled 'break' statements are still allowed everywhere, even if the
label does not exist.
This commit is contained in:
Matthew Olsson 2020-10-07 12:21:15 -07:00 committed by Andreas Kling
commit e49ea1b520
Notes: sideshowbarker 2024-07-19 01:58:28 +09:00
3 changed files with 44 additions and 5 deletions

View file

@ -159,6 +159,8 @@ private:
bool m_allow_super_property_lookup { false };
bool m_allow_super_constructor_call { false };
bool m_in_function_context { false };
bool m_in_break_context { false };
bool m_in_continue_context { false };
explicit ParserState(Lexer);
};