Previously, "from" was declared as a reserved word.
NJS_TOKEN_CLEAR_TIMEOUT,
NJS_TOKEN_IMPORT,
- NJS_TOKEN_FROM,
NJS_TOKEN_EXPORT,
NJS_TOKEN_RESERVED,
/* Module. */
{ njs_str("import"), NJS_TOKEN_IMPORT, 0 },
- { njs_str("from"), NJS_TOKEN_FROM, 0 },
{ njs_str("export"), NJS_TOKEN_EXPORT, 0 },
/* Reserved words. */
return token;
}
- token = njs_parser_match(vm, parser, token, NJS_TOKEN_FROM);
+ token = njs_parser_match_name(vm, parser, token, "from");
if (njs_slow_path(token <= NJS_TOKEN_ILLEGAL)) {
return token;
}
}
+njs_inline njs_token_t
+njs_parser_match_name(njs_vm_t *vm, njs_parser_t *parser, njs_token_t token,
+ const char *name)
+{
+ size_t len;
+ njs_str_t *text;
+
+ len = njs_strlen(name);
+ text = njs_parser_text(parser);
+
+ if (njs_fast_path(token == NJS_TOKEN_NAME
+ && text->length == len
+ && memcmp(text->start, name, len) == 0))
+ {
+ return njs_parser_token(vm, parser);
+ }
+
+ return njs_parser_unexpected_token(vm, parser, token);
+}
+
+
njs_inline njs_variable_t *
njs_parser_variable_add(njs_vm_t *vm, njs_parser_t *parser,
njs_variable_type_t type)
{ njs_str("var \n a, \n b; b"),
njs_str("undefined") },
+ { njs_str("var from = 2; from + 2"),
+ njs_str("4") },
+
{ njs_str("var a / ="),
njs_str("SyntaxError: Unexpected token \"/\" in 1") },