diff --git a/jerry-core/parser/js/parser.cpp b/jerry-core/parser/js/parser.cpp index 91900067e..897c6f323 100644 --- a/jerry-core/parser/js/parser.cpp +++ b/jerry-core/parser/js/parser.cpp @@ -2561,7 +2561,7 @@ insert_semicolon (void) { lexer_save_token (tok); } - else if (!token_is (TOK_SEMICOLON)) + else if (!token_is (TOK_SEMICOLON) && !token_is (TOK_EOF)) { EMIT_ERROR ("Expected either ';' or newline token"); } @@ -2847,23 +2847,13 @@ parse_statement (jsp_label_t *outermost_stmt_label_p) /**< outermost (first) lab tok = temp; operand expr = parse_expression (true, JSP_EVAL_RET_STORE_DUMP); dump_assignment_of_lhs_if_literal (expr); - skip_newlines (); - if (!token_is (TOK_SEMICOLON)) - { - lexer_save_token (tok); - } - return; + insert_semicolon (); } } else { parse_expression (true, JSP_EVAL_RET_STORE_DUMP); - skip_newlines (); - if (!token_is (TOK_SEMICOLON)) - { - lexer_save_token (tok); - } - return; + insert_semicolon (); } } diff --git a/tests/unit/test-api.cpp b/tests/unit/test-api.cpp index 0b1c85814..c299e7d14 100644 --- a/tests/unit/test-api.cpp +++ b/tests/unit/test-api.cpp @@ -31,7 +31,7 @@ const char *test_source = ( "this.foo = f; " "this.bar = function (a) { " "return a + t; " - "} " + "}; " "function A () { " "this.t = 12; " "} "