anchor.diff:  
   import 'optimizers.dart';
   
  +import '../closure.dart' show
  +    ClosureClassElement, Identifiers;
   import '../common/names.dart' show
  -    Selectors;
  +    Selectors, Identifiers;
   import '../compiler.dart' as dart2js show
       Compiler;
   import '../constants/constant_system.dart';
  
positive.code:     if (specializeFieldAccess(node)) return;
      if (specializeIndexableAccess(node)) return;
      if (specializeArrayAccess(node)) return;
      if (specializeClosureCall(node)) return;
  
      AbstractValue receiver = getValue(node.receiver.definition);
  
negative.code:     values.remove(node.variable);
    }
  }
  
  
  class ContainsTry extends RecursiveVisitor {
    bool _found = false;
    ContainsTry._();
  
    /// Scans [root] for evidence of try-catch and try-finally.
    static bool analyze(Node root) {
      ContainsTry visitor = new ContainsTry._();
      visitor.visit(root);
      return visitor._found;
    }
  
    visit(Node node) {
      if (_found) return;  // Early exit if we know the answer.
      super.visit(node);
    }
  
    processLetHandler(LetHandler node) {
      _found = true;
    }
  }
  