diff --git a/jerry-core/parser/js/opcodes-dumper.cpp b/jerry-core/parser/js/opcodes-dumper.cpp index c9e1b95bb9..70aa600b9c 100644 --- a/jerry-core/parser/js/opcodes-dumper.cpp +++ b/jerry-core/parser/js/opcodes-dumper.cpp @@ -2340,9 +2340,9 @@ rewrite_default_clause (void) void finish_dumping_case_clauses (void) { - STACK_DROP (U8, 1); STACK_DROP (case_clauses, STACK_SIZE (case_clauses) - STACK_TOP (U8)); STACK_DROP (U8, 1); + STACK_DROP (U8, 1); } /** diff --git a/tests/jerry/switch-case.js b/tests/jerry/switch-case.js index a74197ea55..3cced188fc 100644 --- a/tests/jerry/switch-case.js +++ b/tests/jerry/switch-case.js @@ -73,3 +73,25 @@ switch ("var") { } assert (counter === 4); + +var flow = ''; + +switch ("var") { + case "var": + flow += '1'; + case "var1": + flow += '2'; + case "var2": + flow += '3'; + switch (flow) { + case '123': + flow += 'a'; + break; + default: + flow += 'b'; + } + default: + flow += '4'; +} + +assert (flow === '123a4');