Browse Source

Fix constructor bytecode generation for conditional values.

Mike Pall 15 years ago
parent
commit
2ddea3838d
1 changed files with 1 additions and 1 deletions
  1. 1 1
      src/lj_parse.c

+ 1 - 1
src/lj_parse.c

@@ -1348,8 +1348,8 @@ static void expr_table(LexState *ls, ExpDesc *e)
       if (val.k == VKSTR)
       if (val.k == VKSTR)
 	lj_gc_objbarriert(fs->L, t, val.u.sval);
 	lj_gc_objbarriert(fs->L, t, val.u.sval);
     } else {
     } else {
+      if (val.k != VCALL) { expr_toanyreg(fs, &val); vcall = 0; }
       if (expr_isk(&key)) expr_index(fs, e, &key);
       if (expr_isk(&key)) expr_index(fs, e, &key);
-      if (val.k != VCALL) vcall = 0;
       bcemit_store(fs, e, &val);
       bcemit_store(fs, e, &val);
     }
     }
     fs->freereg = freg;
     fs->freereg = freg;