anchor.diff:    /// Emits the section that installs tear-off getters.
     js.Statement emitInstallTearOffs(Fragment fragment) {
       List<js.Statement> inits = <js.Statement>[];
  +    js.Expression temp;
   
       for (Library library in fragment.libraries) {
         for (StaticMethod method in library.statics) {
  
positive.code:         {
            "container": container,
            "getterName": js.quoteName(method.tearOffName),
            "isStatic": new js.LiteralBool(method.isStatic),
            "isIntercepted": new js.LiteralBool(isIntercepted),
            "requiredParameterCount": js.number(requiredParameterCount),
            "optionalParameterDefaultValues": optionalParameterDefaultValues,
            "callNames": callNameArray,
  
negative.code:         }
        }
        for (Class cls in library.classes) {
          var methods = cls.methods.where((m) => m.needsTearOff).toList();
          js.Expression container = js.js("#.prototype", classReference(cls));
          js.Expression reference = container;
          if (methods.length > 1) {
            if (temp == null) {
              inits.add(js.js.statement('var _;'));
              temp = js.js('_');
            }
            // First call uses assignment to temp to cache the container.
            reference = js.js('# = #', [temp, container]);
          }
          for (InstanceMethod method in methods) {
            inits.add(emitInstallTearOff(reference, method));
            reference = temp; // Second and subsequent calls use temp.
          }
        }
      }
  