Make 'break' and 'continue' be marked as safe

(cherry picked from commit a8826ad3b8)
This commit is contained in:
Michael Alexsander Silva Dias 2019-08-27 23:10:33 -03:00 committed by Rémi Verschelde
parent 90abe89662
commit b7e644bd26

View File

@ -2768,12 +2768,12 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) {
_mark_line_as_safe(tokenizer->get_token_line()); _mark_line_as_safe(tokenizer->get_token_line());
tokenizer->advance(); tokenizer->advance();
if (tokenizer->get_token() == GDScriptTokenizer::TK_SEMICOLON) { if (tokenizer->get_token() == GDScriptTokenizer::TK_SEMICOLON) {
// Ignore semicolon after 'pass' // Ignore semicolon after 'pass'.
tokenizer->advance(); tokenizer->advance();
} }
} break; } break;
case GDScriptTokenizer::TK_PR_VAR: { case GDScriptTokenizer::TK_PR_VAR: {
//variale declaration and (eventual) initialization // Variable declaration and (eventual) initialization.
tokenizer->advance(); tokenizer->advance();
int var_line = tokenizer->get_token_line(); int var_line = tokenizer->get_token_line();
@ -3174,6 +3174,7 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) {
} break; } break;
case GDScriptTokenizer::TK_CF_CONTINUE: { case GDScriptTokenizer::TK_CF_CONTINUE: {
_mark_line_as_safe(tokenizer->get_token_line());
tokenizer->advance(); tokenizer->advance();
ControlFlowNode *cf_continue = alloc_node<ControlFlowNode>(); ControlFlowNode *cf_continue = alloc_node<ControlFlowNode>();
cf_continue->cf_type = ControlFlowNode::CF_CONTINUE; cf_continue->cf_type = ControlFlowNode::CF_CONTINUE;
@ -3185,6 +3186,7 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) {
} break; } break;
case GDScriptTokenizer::TK_CF_BREAK: { case GDScriptTokenizer::TK_CF_BREAK: {
_mark_line_as_safe(tokenizer->get_token_line());
tokenizer->advance(); tokenizer->advance();
ControlFlowNode *cf_break = alloc_node<ControlFlowNode>(); ControlFlowNode *cf_break = alloc_node<ControlFlowNode>();
cf_break->cf_type = ControlFlowNode::CF_BREAK; cf_break->cf_type = ControlFlowNode::CF_BREAK;