anchor.diff:  
     @override
     Local getLocalVariable(ir.VariableDeclaration node) {
  -    return _variableMap.putIfAbsent(node, () {
  -      JLocal local = new JLocal(node.name, currentMember,
  +    final variableMap = _variableMap ??= {};
  +    return variableMap.putIfAbsent(node, () {
  +      JLocal local = JLocal(node.name, currentMember,
             isRegularParameter: node.parent is ir.FunctionNode);
  -      _locals.register<JLocal, LocalData>(local, new LocalData(node));
  +      _locals.register<JLocal, LocalData>(local, LocalData(node));
         return local;
       });
     }
  
positive.code:   int jumpIndex = 0;
    int labelIndex = 0;
    final MemberEntity member;
    final Map<ir.TreeNode, JJumpTarget> jumpTargetMap =
        <ir.TreeNode, JJumpTarget>{};
    final Set<ir.BreakStatement> breaksAsContinue = new Set<ir.BreakStatement>();
  
    JumpVisitor(this.member);
  
  
negative.code:   // TODO(johnniwinther): Compute this eagerly from the root of the member.
    void _ensureJumpMap(ir.TreeNode node) {
      if (_jumpTargetMap == null) {
        JumpVisitor visitor = JumpVisitor(currentMember);
  
        // Find the root node for the current member.
        while (node is! ir.Member) {
  