diff --git a/jerry-core/parser/js/parser.cpp b/jerry-core/parser/js/parser.cpp index b91d4ffe3..b0b955466 100644 --- a/jerry-core/parser/js/parser.cpp +++ b/jerry-core/parser/js/parser.cpp @@ -2462,10 +2462,7 @@ parse_switch_statement (void) } current_token_must_be (TOK_CLOSE_BRACE); - if (was_default) - { - dump_default_clause_check_for_rewrite (); - } + dump_default_clause_check_for_rewrite (); lexer_seek (start_loc); next_token_must_be (TOK_OPEN_BRACE); @@ -2501,6 +2498,12 @@ parse_switch_statement (void) parse_statement_list (); skip_newlines (); } + + if (!was_default) + { + rewrite_default_clause (); + } + current_token_must_be (TOK_CLOSE_BRACE); skip_token (); diff --git a/tests/jerry/regression-test-issue-667.js b/tests/jerry/regression-test-issue-667.js new file mode 100644 index 000000000..d1533611f --- /dev/null +++ b/tests/jerry/regression-test-issue-667.js @@ -0,0 +1,23 @@ +// Copyright 2015 Samsung Electronics Co., Ltd. +// Copyright 2015 University of Szeged. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +switch (1) { + case 0: + assert(false); + break; + case 2: + assert(false); + break; +}