anchor.diff:        if (_runningInTurn == 0) _finishTurn(zone, delegate);
       }
     }
  +
     // Called from the parent zone.
  -  _onRun(async.Zone self, async.ZoneDelegate delegate, async.Zone zone, fn()) =>
  +  dynamic _onRun(async.Zone self, async.ZoneDelegate delegate, async.Zone zone, fn()) =>
         _onRunBase(self, delegate, zone, () => delegate.run(zone, fn));
   
  -  _onRunUnary(async.Zone self, async.ZoneDelegate delegate, async.Zone zone,
  -              fn(args), args) =>
  +  dynamic _onRunUnary(async.Zone self, async.ZoneDelegate delegate, async.Zone zone,
  +                      fn(args), args) =>
         _onRunBase(self, delegate, zone, () => delegate.runUnary(zone, fn, args));
   
  -  _onScheduleMicrotask(async.Zone self, async.ZoneDelegate delegate,
  -                       async.Zone zone, fn()) {
  +  void _onScheduleMicrotask(async.Zone self, async.ZoneDelegate delegate, async.Zone zone, fn()) {
       onScheduleMicrotask(() => delegate.run(zone, fn));
       if (_runningInTurn == 0 && !_inFinishTurn)  _finishTurn(zone, delegate);
     }
   
  -  _uncaughtError(async.Zone self, async.ZoneDelegate delegate, async.Zone zone,
  -                 e, StackTrace s) {
  +  void _uncaughtError(async.Zone self, async.ZoneDelegate delegate, async.Zone zone,
  +                      e, StackTrace s) {
       if (!_errorThrownFromOnRun) onError(e, s, _longStacktrace);
       _errorThrownFromOnRun = false;
     }
   
     var _inFinishTurn = false;
  -  _finishTurn(zone, delegate) {
  +
  +  void _finishTurn(zone, delegate) {
       if (_inFinishTurn) return;
       _inFinishTurn = true;
       try {
  
positive.code: 
    /**
     * Runs [body] in the inner zone and returns whatever it returns.
     */
    dynamic run(body()) => _innerZone.run(body);
  
    /**
     * Runs [body] in the outer zone and returns whatever it returns.
     * In a typical app where the inner zone is the Angular zone, this allows
     * one to escape Angular's auto-digest mechanism.
     *
     *     myFunction(VmTurnZone zone, Element element) {
     *       element.onClick.listen(() {
     *         // auto-digest will run after element click.
     *       });
  
negative.code:   bool _errorThrownFromOnRun = false;
  
    var _currentlyInTurn = false;
  
    dynamic _onRunBase(async.Zone self, async.ZoneDelegate delegate, async.Zone zone, fn()) {
      _runningInTurn++;
      try {
        if (!_currentlyInTurn) {
  