ret = njs_parser_escape_string_create(parser, token, &node->u.value);
if (ret != NJS_TOKEN_STRING) {
- return NJS_DONE;
+ return NJS_ERROR;
}
parser->node = node;
njs_parser_syntax_error(parser, "Unterminated string \"%V\"",
&token->text);
- return NJS_DONE;
+ return NJS_ERROR;
/* ArrayLiteral */
case NJS_TOKEN_OPEN_BRACKET:
ret = njs_parser_regexp_literal(parser, token, current);
if (ret != NJS_OK) {
- return NJS_DONE;
+ return NJS_ERROR;
}
goto done;
return NJS_OK;
}
+ if (njs_is_error(&parser->vm->retval)) {
+ return NJS_DONE;
+ }
+
return ret;
}
"function foo() {}"),
njs_str("undefined") },
+ { njs_str("new\""),
+ njs_str("SyntaxError: Unterminated string \"\"\" in 1") },
+ { njs_str("new\"\\UFFFF"),
+ njs_str("SyntaxError: Unterminated string \"\"\\UFFFF\" in 1") },
+
+ { njs_str("new/la"),
+ njs_str("SyntaxError: Unterminated RegExp \"/la\" in 1") },
};