Fix insert_semicolon
This commit is contained in:
+10
-8
@@ -889,13 +889,6 @@ lexer_next_token_private (void)
|
|||||||
{
|
{
|
||||||
char c = LA (0);
|
char c = LA (0);
|
||||||
|
|
||||||
if (!is_empty (saved_token))
|
|
||||||
{
|
|
||||||
token res = saved_token;
|
|
||||||
saved_token = empty_token;
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
JERRY_ASSERT (token_start == NULL);
|
JERRY_ASSERT (token_start == NULL);
|
||||||
|
|
||||||
if (__isalpha (c) || c == '$' || c == '_')
|
if (__isalpha (c) || c == '$' || c == '_')
|
||||||
@@ -1043,20 +1036,29 @@ lexer_next_token (void)
|
|||||||
dump_current_line ();
|
dump_current_line ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!is_empty (saved_token))
|
||||||
|
{
|
||||||
|
sent_token = saved_token;
|
||||||
|
saved_token = empty_token;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
prev_token = sent_token;
|
prev_token = sent_token;
|
||||||
sent_token = lexer_next_token_private ();
|
sent_token = lexer_next_token_private ();
|
||||||
|
|
||||||
if (sent_token.type == TOK_NEWLINE)
|
if (sent_token.type == TOK_NEWLINE)
|
||||||
{
|
{
|
||||||
dump_current_line ();
|
dump_current_line ();
|
||||||
return sent_token;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
end:
|
||||||
return sent_token;
|
return sent_token;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
lexer_save_token (token tok)
|
lexer_save_token (token tok)
|
||||||
{
|
{
|
||||||
|
JERRY_ASSERT (is_empty (saved_token));
|
||||||
saved_token = tok;
|
saved_token = tok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1132,7 +1132,7 @@ parse_function_expression (void)
|
|||||||
parse_source_element_list (false);
|
parse_source_element_list (false);
|
||||||
pop_nesting (NESTING_FUNCTION);
|
pop_nesting (NESTING_FUNCTION);
|
||||||
|
|
||||||
token_after_newlines_must_be (TOK_CLOSE_BRACE);
|
next_token_must_be (TOK_CLOSE_BRACE);
|
||||||
|
|
||||||
DUMP_VOID_OPCODE (ret);
|
DUMP_VOID_OPCODE (ret);
|
||||||
rewrite_meta_opcode_counter (STACK_TOP (U16), OPCODE_META_TYPE_FUNCTION_END);
|
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
|
// We cannot use TOK (), since we may use lexer_save_token
|
||||||
skip_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;
|
return;
|
||||||
}
|
}
|
||||||
if (!token_is (TOK_SEMICOLON))
|
if (!token_is (TOK_SEMICOLON))
|
||||||
|
|||||||
@@ -439,9 +439,7 @@ pp_opcode (opcode_counter_t oc, opcode_t opcode, bool is_rewrite)
|
|||||||
CASE_SINGLE_ADDRESS (retval, "return", ret_value)
|
CASE_SINGLE_ADDRESS (retval, "return", ret_value)
|
||||||
CASE_ZERO_ADDRESS (ret, "return")
|
CASE_ZERO_ADDRESS (ret, "return")
|
||||||
CASE_ZERO_ADDRESS (nop, "")
|
CASE_ZERO_ADDRESS (nop, "")
|
||||||
TODO (Refine to match new opcodes)
|
|
||||||
CASE_VARG_1_LHS (array_decl, lhs, "=", "[", list, "]")
|
CASE_VARG_1_LHS (array_decl, lhs, "=", "[", list, "]")
|
||||||
TODO (Refine to match new opcodes)
|
|
||||||
CASE_VARG_0_LHS (obj_decl, lhs, "=", "{", "}")
|
CASE_VARG_0_LHS (obj_decl, lhs, "=", "{", "}")
|
||||||
CASE_VARG_1_NAME_LHS (prop_getter, lhs, "=", "", obj, "[", prop, "]")
|
CASE_VARG_1_NAME_LHS (prop_getter, lhs, "=", "", obj, "[", prop, "]")
|
||||||
CASE_VARG_1_NAME_LHS (prop_setter, obj, "", "[", prop, " ] = ", rhs, "")
|
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_VARG_0_NAME (var_decl, "var", variable_name, "", "")
|
||||||
CASE_REG_VAR_DECL (reg_var_decl, min, max)
|
CASE_REG_VAR_DECL (reg_var_decl, min, max)
|
||||||
CASE_NATIVE_CALL (native_call, lhs, "=", "", name, arg_list)
|
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)
|
if (is_rewrite)
|
||||||
|
|||||||
Reference in New Issue
Block a user