return njs_parser_failed(parser);
default:
- if (!parser->strict_semicolon
- && parser->lexer->prev_type == NJS_TOKEN_LINE_END)
- {
- break;
- }
-
if (njs_lexer_token_is_label_identifier(token)) {
+ if (parser->lexer->prev_type == NJS_TOKEN_LINE_END) {
+ return njs_parser_stack_pop(parser);
+ }
+
if (njs_label_find(parser->vm, parser->scope,
token->unique_id) == NULL)
{
{ njs_str("var i; for (i in [1,2,3]) {Object.seal({});}"),
njs_str("undefined") },
+ { njs_str("while (0) {continue\n}"),
+ njs_str("undefined") },
+
/* break. */
{ njs_str("break"),
"for (i in a) if (a[i] > 4) break; s += a[i]; s"),
njs_str("5") },
+ { njs_str("while (0) {break\n}"),
+ njs_str("undefined") },
+
/* Labels. */
{ njs_str("var n = 0; a:{n++}; a:{n++}; n"),