njs_parser_next(parser, njs_parser_property_definition_list);
- return njs_parser_after(parser, current, node, 0,
+ return njs_parser_after(parser, current, node, 1,
njs_parser_object_literal_after);
}
{
njs_parser_next(parser, njs_parser_property_definition);
- return njs_parser_after(parser, current, parser->target, 0,
+ return njs_parser_after(parser, current, parser->target, 1,
njs_parser_property_definition_list_after);
}
njs_parser_next(parser, njs_parser_property_definition);
- return njs_parser_after(parser, current, parser->target, 0,
+ return njs_parser_after(parser, current, parser->target, 1,
njs_parser_property_definition_list_after);
}
temp = parser->target;
switch (token->type) {
+ case NJS_TOKEN_CLOSE_BRACE:
+ return njs_parser_stack_pop(parser);
+
/* PropertyName */
case NJS_TOKEN_STRING:
case NJS_TOKEN_ESCAPE_STRING:
njs_str("RangeError: Maximum call stack size exceeded") },
{ njs_str("new Function(\"{[\".repeat(2**13));"),
- njs_str("SyntaxError: Unexpected token \")\" in runtime:1") },
+ njs_str("SyntaxError: Unexpected token \"}\" in runtime:1") },
{ njs_str("new Function(\"{;\".repeat(2**13));"),
njs_str("SyntaxError: Unexpected token \")\" in runtime:1") },
{ njs_str("object?."),
njs_str("SyntaxError: Unexpected end of input in 1") },
+
+ { njs_str("`${{a: 1, b}}`"),
+ njs_str("ReferenceError: \"b\" is not defined in 1") },
+
+ { njs_str("`${{a: 1, b:}}`"),
+ njs_str("SyntaxError: Unexpected token \"}\" in 1") },
+
+ { njs_str("`${{a: 1, b:,}}`"),
+ njs_str("SyntaxError: Unexpected token \",\" in 1") },
+
+ { njs_str("`${{a: 1, b: 2,}}`"),
+ njs_str("[object Object]") },
+
+ { njs_str("`${{a: 1,, b: 2}}`"),
+ njs_str("SyntaxError: Unexpected token \",\" in 1") },
+
+ { njs_str("`${{f(){-} - {}}`"),
+ njs_str("SyntaxError: Unexpected token \"}\" in 1") },
};