nxt_array_reset(vm->backtrace);
}
+ vm->retval = njs_value_void;
+
node = njs_parser(vm, parser, prev);
if (nxt_slow_path(node == NULL)) {
goto fail;
while (token != NJS_TOKEN_CLOSE_PARENTHESIS) {
if (nxt_slow_path(token != NJS_TOKEN_NAME)) {
- return NJS_TOKEN_ERROR;
+ return NJS_TOKEN_ILLEGAL;
}
arg = njs_variable_add(vm, parser, NJS_VARIABLE_VAR);
}
if (nxt_slow_path(token != NJS_TOKEN_OPEN_BRACE)) {
- return NJS_TOKEN_ERROR;
+ return NJS_TOKEN_ILLEGAL;
}
token = njs_parser_token(parser);
}
if (nxt_slow_path(token != NJS_TOKEN_CLOSE_PARENTHESIS)) {
- return token;
+ return NJS_TOKEN_ILLEGAL;
}
token = njs_parser_try_block(vm, parser);
if (try->right == NULL) {
njs_parser_syntax_error(vm, parser,
- "Missing catch or finally after try", NULL);
+ "Missing catch or finally after try");
return NJS_TOKEN_ILLEGAL;
}
"f({})" ENTER),
nxt_string("1") },
+ { nxt_string("arguments" ENTER
+ "function(){}()" ENTER),
+ nxt_string("SyntaxError: Unexpected token \"(\" in 1") },
+
/* Backtraces */
{ nxt_string("function ff(o) {return o.a.a}" ENTER
{ nxt_string("try {}"),
nxt_string("SyntaxError: Missing catch or finally after try in 1") },
+ { nxt_string("try{}catch(a[]"),
+ nxt_string("SyntaxError: Unexpected token \"[\" in 1") },
+
{ nxt_string("function f(a) {return a;}; "
"function thrower() {throw TypeError('Oops')}; "
"f(thrower())"),