Fix insert_semicolon

This commit is contained in:
Ilmir Usmanov
2014-10-08 19:15:25 +04:00
parent 24920cba57
commit 1dd94c12b2
3 changed files with 21 additions and 12 deletions
+10 -8
View File
@@ -889,13 +889,6 @@ lexer_next_token_private (void)
{
char c = LA (0);
if (!is_empty (saved_token))
{
token res = saved_token;
saved_token = empty_token;
return res;
}
JERRY_ASSERT (token_start == NULL);
if (__isalpha (c) || c == '$' || c == '_')
@@ -1043,20 +1036,29 @@ lexer_next_token (void)
dump_current_line ();
}
if (!is_empty (saved_token))
{
sent_token = saved_token;
saved_token = empty_token;
goto end;
}
prev_token = sent_token;
sent_token = lexer_next_token_private ();
if (sent_token.type == TOK_NEWLINE)
{
dump_current_line ();
return sent_token;
}
end:
return sent_token;
}
void
lexer_save_token (token tok)
{
JERRY_ASSERT (is_empty (saved_token));
saved_token = tok;
}
+3 -2
View File
@@ -1132,7 +1132,7 @@ parse_function_expression (void)
parse_source_element_list (false);
pop_nesting (NESTING_FUNCTION);
token_after_newlines_must_be (TOK_CLOSE_BRACE);
next_token_must_be (TOK_CLOSE_BRACE);
DUMP_VOID_OPCODE (ret);
rewrite_meta_opcode_counter (STACK_TOP (U16), OPCODE_META_TYPE_FUNCTION_END);
@@ -3001,8 +3001,9 @@ insert_semicolon (void)
{
// We cannot use TOK (), since we may use lexer_save_token
skip_token ();
if (lexer_prev_token ().type == TOK_NEWLINE)
if (token_is (TOK_NEWLINE) || lexer_prev_token ().type == TOK_NEWLINE)
{
lexer_save_token (TOK ());
return;
}
if (!token_is (TOK_SEMICOLON))
+8 -2
View File
@@ -439,9 +439,7 @@ pp_opcode (opcode_counter_t oc, opcode_t opcode, bool is_rewrite)
CASE_SINGLE_ADDRESS (retval, "return", ret_value)
CASE_ZERO_ADDRESS (ret, "return")
CASE_ZERO_ADDRESS (nop, "")
TODO (Refine to match new opcodes)
CASE_VARG_1_LHS (array_decl, lhs, "=", "[", list, "]")
TODO (Refine to match new opcodes)
CASE_VARG_0_LHS (obj_decl, lhs, "=", "{", "}")
CASE_VARG_1_NAME_LHS (prop_getter, lhs, "=", "", obj, "[", prop, "]")
CASE_VARG_1_NAME_LHS (prop_setter, obj, "", "[", prop, " ] = ", rhs, "")
@@ -453,6 +451,14 @@ pp_opcode (opcode_counter_t oc, opcode_t opcode, bool is_rewrite)
CASE_VARG_0_NAME (var_decl, "var", variable_name, "", "")
CASE_REG_VAR_DECL (reg_var_decl, min, max)
CASE_NATIVE_CALL (native_call, lhs, "=", "", name, arg_list)
case NAME_TO_ID (func_expr_n):
{
dump_variable (opcode.data.func_expr_n.lhs);
__printf (" = function ");
dump_variable (opcode.data.func_expr_n.name_lit_idx);
__printf (" (%d args);", opcode.data.func_expr_n.arg_list);
break;
}
}
if (is_rewrite)