]> git.kaiwu.me - njs.git/commitdiff
Printing AST before trying to generate code.
authorDmitry Volyntsev <xeioex@nginx.com>
Fri, 18 Jun 2021 15:01:12 +0000 (15:01 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Fri, 18 Jun 2021 15:01:12 +0000 (15:01 +0000)
src/njs_vm.c

index 144e3d9f1c2e75bfb47bf81d73546b64996174f5..f1c8b21171467a78fd72765a29c6b95d61c19c6b 100644 (file)
@@ -150,6 +150,23 @@ njs_vm_compile(njs_vm_t *vm, u_char **start, u_char *end)
         return NJS_ERROR;
     }
 
+    if (njs_slow_path(vm->options.ast)) {
+        njs_chb_init(&chain, vm->mem_pool);
+        ret = njs_parser_serialize_ast(parser.node, &chain);
+        if (njs_slow_path(ret == NJS_ERROR)) {
+            return ret;
+        }
+
+        if (njs_slow_path(njs_chb_join(&chain, &ast) != NJS_OK)) {
+            return NJS_ERROR;
+        }
+
+        njs_print(ast.start, ast.length);
+
+        njs_chb_destroy(&chain);
+        njs_mp_free(vm->mem_pool, ast.start);
+    }
+
     *start = lexer.start;
     scope = parser.scope;
 
@@ -209,23 +226,6 @@ njs_vm_compile(njs_vm_t *vm, u_char **start, u_char *end)
         njs_disassembler(vm);
     }
 
-    if (njs_slow_path(vm->options.ast)) {
-        njs_chb_init(&chain, vm->mem_pool);
-        ret = njs_parser_serialize_ast(parser.node, &chain);
-        if (njs_slow_path(ret == NJS_ERROR)) {
-            return ret;
-        }
-
-        if (njs_slow_path(njs_chb_join(&chain, &ast) != NJS_OK)) {
-            return NJS_ERROR;
-        }
-
-        njs_print(ast.start, ast.length);
-
-        njs_chb_destroy(&chain);
-        njs_mp_free(vm->mem_pool, ast.start);
-    }
-
     return NJS_OK;
 }