/*
* We can ignore intermediate expressions as long as they have no
* side-effects.
*/
if (op.getArg2().hasSideEffects()) {
statements.add(0, new JsExprStmt(op.getArg2()));
}
e = op.getArg1();
}
/*
* We know the return value from the original invocation was ignored, so
* it may be possible to ignore the final expressions as long as it has no
* side-effects.
*/
if (e.hasSideEffects()) {
statements.add(0, new JsExprStmt(e));
}
if (statements.size() == 0) {
// The expression contained no side effects at all.
if (ctx.canRemove()) {