anchor.diff:  part of angular.core_internal;
   
  +/**
  + * Handles an [NgZone] onTurnDone event.
  + */
   typedef void ZoneOnTurn();
  +
  +/**
  + * Handles an [NgZone] onError event.
  + */
   typedef void ZoneOnError(dynamic error, dynamic stacktrace,
                            LongStackTrace longStacktrace);
   
   /**
  - * Contains the locations of runAsync calls across VM turns.
  + * Contains the locations of async calls across VM turns.
    */
   class LongStackTrace {
     final String reason;
  
positive.code:    */
    dynamic runOutsideAngular(body()) => _outerZone.run(body);
  
    void assertInTurn() {
      assert(_runningInTurn > 0 || _inFinishTurn);
    }
  
    void assertInZone() {
      assertInTurn();
    }
  
negative.code:   int _runningInTurn = 0;
  
    /**
     * Called with any errors from the inner zone.
     */
    ZoneOnError onError;
  
    /// Prevent silently ignoring uncaught exceptions by forwarding such exceptions to the outer zone.
    void _defaultOnError(dynamic e, dynamic s, LongStackTrace ls) =>
        _outerZone.handleUncaughtError(e, s);
  
    /**
     * Called at the end of each VM turn in which inner zone code runs.
     * "At the end" means after the private microtask queue of the inner zone is
     * exhausted but before the next VM turn.  Notes
     * - This won't wait for microtasks scheduled in zones other than the inner
     *   zone, e.g. those scheduled with [runOutsideAngular].
     * - [onTurnDone] runs repeatedly until it fails to schedule any more
     *   microtasks, so you usually don't want it to schedule any.  For example,
     *   if its first line of code is `new Future.value()`, the turn will _never_
     *   end.
     */
    ZoneOnTurn onTurnDone;
    void _defaultOnTurnDone() => null;
  
    LongStackTrace _longStacktrace = null;
  
  