return b.add(s, stk.add(s))
}
+func (b *builder) addNot(stk stack, desc string) stack {
+ return b.add("NOT", stk.drop().add(desc))
+}
+
func (b *builder) addEqual(stk stack, desc string) stack {
return b.add("EQUAL", stk.dropN(2).add(desc))
}
}
// jump to falseBody when condition is false, while the JUMPIF instruction will be run success when
- // the value of dataStack is true, therefore add this check
+ // the value of dataStack is true, therefore add this negation
conditionExpr := stk.str
- stk = b.addBoolean(stk, false)
- stk = b.addEqual(stk, fmt.Sprintf("(%s == false)", conditionExpr)) // stack: [... <condition_result == false>]
+ stk = b.addNot(stk, fmt.Sprintf("!%s", conditionExpr))
// add label
var label string
{
"TestSigIf",
equitytest.TestSigIf,
- "53797b879169765379a00087641c00000052795279a0696321000000765279a069",
+ "53797b879169765379a091641b00000052795279a0696320000000765279a069",
},
{
"TestIfAndMultiClause",
equitytest.TestIfAndMultiClause,
- "7b641f0000007087916976547aa00087641a000000765379a06963240000007b7bae7cac",
+ "7b641e0000007087916976547aa0916419000000765379a06963230000007b7bae7cac",
},
{
"TestIfNesting",
equitytest.TestIfNesting,
- "7b644400000054795279879169765579a00087643500000052795479a000876429000000765379a06952795579879169633a000000765479a06953797b8791635c0000007654798791695279a000876459000000527978a0697d8791",
+ "7b644200000054795279879169765579a091643300000052795479a0916427000000765379a069527955798791696338000000765479a06953797b879163590000007654798791695279a0916456000000527978a0697d8791",
},
{
"TestConstantMath",