]> git.kaiwu.me - njs.git/commitdiff
A fix of code generation of logical operations.
authorIgor Sysoev <igor@sysoev.ru>
Thu, 21 Jul 2016 18:37:46 +0000 (21:37 +0300)
committerIgor Sysoev <igor@sysoev.ru>
Thu, 21 Jul 2016 18:37:46 +0000 (21:37 +0300)
njs/njs_generator.c
njs/test/njs_unit_test.c

index a06dd512d75a79be3e7a223f33be51981561b509..feacaae4f437a56a8a653fdb36e8da562d29c683 100644 (file)
@@ -1666,11 +1666,6 @@ njs_generate_test_jump_expression(njs_vm_t *vm, njs_parser_t *parser,
     test_jump->code.retval = NJS_VMCODE_RETVAL;
     test_jump->value = node->left->index;
 
-    ret = njs_generator_node_index_release(vm, parser, node->left);
-    if (nxt_slow_path(ret != NXT_OK)) {
-        return ret;
-    }
-
     node->index = njs_generator_dest_index(vm, parser, node);
     if (nxt_slow_path(node->index == NJS_INDEX_ERROR)) {
         return node->index;
index 404d255392eeedfa4b1acb21b2e082ef21c7ec07..a9ebabba93f3416370541051aa1f43a98fa7e732 100644 (file)
@@ -1476,6 +1476,9 @@ static njs_unit_test_t  njs_test[] =
     { nxt_string("var a = 3; if (true) if (false); else; a = 2; a"),
       nxt_string("2") },
 
+    { nxt_string("var a = [3], b; if (1==1||2==2) { b = '1'+'2'+a[0] }; b }"),
+      nxt_string("123") },
+
     /* do while. */
 
     { nxt_string("do { break } if (false)"),