479 var RA = frame.reg[INS_A(instruction)]; |
480 var RA = frame.reg[INS_A(instruction)]; |
480 var RA_bool = RA.type == "nil" || (RA.type == "boolean" && RA.value == false); |
481 var RA_bool = RA.type == "nil" || (RA.type == "boolean" && RA.value == false); |
481 if(RA_bool == (INS_C(instruction)!=0)) |
482 if(RA_bool == (INS_C(instruction)!=0)) |
482 frame.pc++; |
483 frame.pc++; |
483 break; |
484 break; |
|
485 case OP_TESTSET: |
|
486 var RB = frame.reg[INS_B(instruction)]; |
|
487 var RB_bool = RB.type == "nil" || (RB.type == "boolean" && RB.value == false); |
|
488 if(RB_bool == (INS_C(instruction)!=0)) |
|
489 frame.pc++; |
|
490 else |
|
491 frame.reg[INS_A(instruction)] = RB; |
|
492 break; |
484 case OP_JMP: |
493 case OP_JMP: |
485 frame.pc+=INS_sBx(instruction); |
494 frame.pc+=INS_sBx(instruction); |
486 break; |
495 break; |
487 case OP_ADD: |
496 case OP_ADD: |
488 var RB = frame.reg[INS_B(instruction)]; |
497 var RB = frame.reg[INS_B(instruction)]; |