anchor.diff:      if (!_hasTimeline) {
         return;
       }
  -    if (_stack.length == 0) {
  +    if (_stack.isEmpty) {
         throw new StateError('Uneven calls to startSync and finishSync');
       }
       // Pop top item off of stack.
  
positive.code: 
    /// An (optional) set of arguments which will be serialized to JSON and
    /// associated with this block.
    Map? _arguments;
  
    /// An (optional) flow event associated with this block.
    Flow? _flow;
  
    _SyncBlock._(this.name);
  
    /// Start this block of time.
    void _startSync() {
      _reportTaskEvent(0, 'B', category, name, _argumentsAsJson(_arguments));
    }
  
    /// Finish this block of time. At this point, this block can no longer be
    /// used.
    void finish() {
      // Report event to runtime.
      _reportTaskEvent(0, 'E', category, name, _argumentsAsJson(_arguments));
      if (_flow != null) {
        _reportFlowEvent(category, "${_flow!.id}", _flow!._type, _flow!.id,
            _argumentsAsJson(null));
      }
    }
  
    void set flow(Flow f) {
      _flow = f;
    }
  }
  
  
negative.code:       _stack.add(null);
        return;
      }
      var block = new _SyncBlock._(name, arguments: arguments, flow: flow);
      _stack.add(block);
      block._startSync();
    }
  