anchor.diff:      return unreachable(node);
     }
   
  -  visitCascadeExpression(ast.CascadeExpression node) => (f, s) {
  -    visit(node.target)(f, (target) {
  +  visitCascadeExpression(ast.CascadeExpression node) => (s) {
  +    visit(node.target)((target) {
         if (node.cascadeSections.any(awaits.contains)) {
           target = addTempDeclaration(target);
         }
  
positive.code:     s();
  
      var continueBlock = currentBlock = emptyBlock();
      visit(node.condition)(f, (expr) {
        var savedBlock = currentBlock;
        var bodyBlock = currentBlock = emptyBlock();
  
        _addJumpTargets(node, breakName, breakTargets, breakLabels);
        _addJumpTargets(node, continueName, continueTargets, continueLabels);
        visit(node.body)(f, r, () {
          addStatement(
              AstFactory.returnStatement2(
                  AstFactory.functionExpressionInvocation(
  
negative.code:          });
          });
        } else {
          return visit(lhs.index)((index) {
            if (awaits.contains(node.rightHandSide)) {
              index = addTempDeclaration(index);
            }
  