anchor.diff:      // The CPS translation of
       // [[for (initializer; condition; update) body; successor]] is:
       //
  +    // _enterForLoopInitializer();
       // [[initializer]];
       // let cont loop(x, ...) =
       //     let prim cond = [[condition]] in
       //     let cont break() = [[successor]] in
       //     let cont exit() = break(v, ...) in
       //     let cont body() =
  -    //       let cont continue(x, ...) = [[update]]; loop(v, ...) in
  -    //       [[body]]; continue(v, ...) in
  +    //         _enterForLoopBody();
  +    //         let cont continue(x, ...) =
  +    //             _enterForLoopUpdate();
  +    //             [[update]];
  +    //             loop(v, ...) in
  +    //         [[body]];
  +    //         continue(v, ...) in
       //     branch cond (body, exit) in
       // loop(v, ...)
       //
  
positive.code:     state.breakCollectors.add(breakCollector);
      state.continueCollectors.add(continueCollector);
  
      IrBuilder bodyBuilder = condBuilder.makeDelimitedBuilder();
  
      bodyBuilder._enterForLoopBody(closureScope, loopVariables);
  
      buildBody(bodyBuilder);
      assert(state.breakCollectors.last == breakCollector);
      assert(state.continueCollectors.last == continueCollector);
      state.breakCollectors.removeLast();
  
negative.code:       // If there are continues in the body, we need a named continue
        // continuation as a join point.
        continueContinuation = new ir.Continuation(updateBuilder._parameters);
        if (innerBodyBuilder.isOpen) continueCollector.addJump(innerBodyBuilder);
        invokeFullJoin(continueContinuation, continueCollector);
      }
      ir.Continuation loopContinuation =
  