nxt_int_t
njs_vm_compile(njs_vm_t *vm, u_char **start, u_char *end)
{
- nxt_int_t ret;
- njs_lexer_t lexer;
- njs_parser_t *parser, *prev;
- njs_generator_t generator;
+ nxt_int_t ret;
+ njs_lexer_t lexer;
+ njs_parser_t *parser, *prev;
+ njs_generator_t generator;
+ njs_parser_scope_t *scope;
if (vm->parser != NULL && !vm->options.accumulative) {
return NJS_ERROR;
goto fail;
}
- ret = njs_variables_scope_reference(vm, parser->scope);
+ scope = parser->scope;
+
+ ret = njs_variables_scope_reference(vm, scope);
if (nxt_slow_path(ret != NXT_OK)) {
goto fail;
}
nxt_memzero(&generator, sizeof(njs_generator_t));
- ret = njs_generate_scope(vm, &generator, parser->scope);
+ ret = njs_generate_scope(vm, &generator, scope);
if (nxt_slow_path(ret != NXT_OK)) {
goto fail;
}
vm->global_scope = generator.local_scope;
vm->scope_size = generator.scope_size;
- vm->variables_hash = parser->scope->variables;
+ vm->variables_hash = scope->variables;
if (vm->options.init) {
ret = njs_vm_init(vm);