proto_init = 0;
- if (property != NULL && property->index != NJS_TOKEN_OPEN_BRACKET
+ if (property->index != NJS_TOKEN_OPEN_BRACKET
&& njs_is_string(&property->u.value))
{
njs_string_get(&property->u.value, &name);
return njs_parser_stack_pop(parser);
}
- if (node != NULL) {
- type = node->token_type;
+ type = node->token_type;
- if (parser->lexer->prev_type != NJS_TOKEN_CLOSE_PARENTHESIS
- && (type == NJS_TOKEN_LOGICAL_OR || type == NJS_TOKEN_LOGICAL_AND))
- {
- njs_parser_syntax_error(parser, "Either \"??\" or \"%s\" "
- "expression must be parenthesized",
- (type == NJS_TOKEN_LOGICAL_OR) ? "||"
- : "&&");
- return NJS_DONE;
- }
+ if (parser->lexer->prev_type != NJS_TOKEN_CLOSE_PARENTHESIS
+ && (type == NJS_TOKEN_LOGICAL_OR || type == NJS_TOKEN_LOGICAL_AND))
+ {
+ return njs_parser_failed(parser);
}
njs_lexer_consume_token(parser->lexer, 1);
njs_str("false") },
{ njs_str("1 && 1 ?? true"),
- njs_str("SyntaxError: Either \"??\" or \"&&\" expression "
- "must be parenthesized in 1") },
+ njs_str("SyntaxError: Unexpected token \"??\" in 1") },
{ njs_str("null ?? 0 || 1"),
njs_str("SyntaxError: Unexpected token \"||\" in 1") },