The problem is that in this case:
10��ifTrue:��[ #falseResult. ]. #unexpectedResult.��
#falseResult => is used for effect. Opal removes it.
10��ifTrue:��[ #falseResult. ] => is used for effect. Opal removes it.
The bytecode ends up being:
29 <20> pushConstant: 10
30 <87> pop
31 <78> pushConstant: #unexpectedResult
So the DNU does not happen.
Such bytecode optimisation should be postponed to runtime (Cogit, Sista) and not be performed by Opal. We did not know that when we wrote Opal. We may want to fix this.