Fix parsing of 'default' switch-case label in 'parse_switch_statement'.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
This commit is contained in:
@@ -2091,7 +2091,8 @@ parse_switch_statement (void)
|
|||||||
{
|
{
|
||||||
token_after_newlines_must_be (TOK_COLON);
|
token_after_newlines_must_be (TOK_COLON);
|
||||||
skip_newlines ();
|
skip_newlines ();
|
||||||
if (is_keyword (KW_CASE) || is_keyword (KW_DEFAULT))
|
rewrite_default_clause ();
|
||||||
|
if (is_keyword (KW_CASE))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -2104,12 +2105,6 @@ parse_switch_statement (void)
|
|||||||
skip_token ();
|
skip_token ();
|
||||||
pop_nesting (NESTING_SWITCH);
|
pop_nesting (NESTING_SWITCH);
|
||||||
|
|
||||||
// Finally, dump 'finally' jump
|
|
||||||
if (was_default)
|
|
||||||
{
|
|
||||||
rewrite_default_clause ();
|
|
||||||
}
|
|
||||||
|
|
||||||
dumper_set_break_target ();
|
dumper_set_break_target ();
|
||||||
rewrite_breaks ();
|
rewrite_breaks ();
|
||||||
finish_dumping_case_clauses ();
|
finish_dumping_case_clauses ();
|
||||||
|
|||||||
@@ -48,6 +48,17 @@ switch (a) {
|
|||||||
assert (0);
|
assert (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
executed_case = '';
|
||||||
|
switch (a) {
|
||||||
|
default:
|
||||||
|
executed_case = 'default';
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
executed_case = 'case 2';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
assert (executed_case === 'default');
|
||||||
|
|
||||||
var counter = 0;
|
var counter = 0;
|
||||||
|
|
||||||
switch ("var") {
|
switch ("var") {
|
||||||
|
|||||||
Reference in New Issue
Block a user