Add support of array initialization like [1,,,'4']
This commit is contained in:
@@ -890,8 +890,21 @@ parse_argument_list (argument_list_type alt, idx_t obj)
|
||||
STACK_PUSH (IDX, token_data ());
|
||||
break;
|
||||
}
|
||||
case AL_FUNC_EXPR:
|
||||
case AL_ARRAY_DECL:
|
||||
{
|
||||
if (token_is (TOK_COMMA))
|
||||
{
|
||||
STACK_PUSH (IDX, next_temp_name ());
|
||||
DUMP_OPCODE_3 (assignment, ID(1), OPCODE_ARG_TYPE_SIMPLE, ECMA_SIMPLE_VALUE_UNDEFINED);
|
||||
DUMP_OPCODE_3 (meta, OPCODE_META_TYPE_VARG, ID(1), INVALID_VALUE);
|
||||
STACK_INCR_HEAD(U8, 1);
|
||||
STACK_DROP (IDX, 1);
|
||||
skip_newlines ();
|
||||
continue;
|
||||
}
|
||||
/* FALLTHRU */
|
||||
}
|
||||
case AL_FUNC_EXPR:
|
||||
case AL_CONSTRUCT_EXPR:
|
||||
{
|
||||
parse_assignment_expression ();
|
||||
|
||||
@@ -156,6 +156,9 @@ dump_variable (idx_t id)
|
||||
case ECMA_SIMPLE_VALUE_TRUE: \
|
||||
__printf ("true"); \
|
||||
break; \
|
||||
case ECMA_SIMPLE_VALUE_UNDEFINED: \
|
||||
__printf ("undefined"); \
|
||||
break; \
|
||||
default: \
|
||||
JERRY_UNREACHABLE (); \
|
||||
} \
|
||||
|
||||
@@ -71,3 +71,9 @@ assert(Array.prototype.length === 0);
|
||||
Array.prototype[0] = 'string value';
|
||||
assert(Array.prototype.length === 1);
|
||||
assert(Array.prototype[0] === 'string value');
|
||||
|
||||
var c = [0,,,'3'];
|
||||
assert (c[0] === 0);
|
||||
assert (c[1] === undefined);
|
||||
assert (c[2] === undefined);
|
||||
assert (c[3] === '3');
|
||||
|
||||
Reference in New Issue
Block a user