anchor.diff:    /// Flow of events showing the CPU work for the frame.
     TimelineEvent get cpuEventFlow => _cpuEventFlow;
     TimelineEvent _cpuEventFlow;
  +
     set cpuEventFlow(TimelineEvent e) {
       assert(_cpuEventFlow == null, 'cpuEventFlow already set');
       _cpuEventFlow = e;
  
positive.code:   int get startTime =>
        cpuStartTime != null ? min(cpuStartTime, _startTime) : _startTime;
    int _startTime;
    set startTime(int t) {
      assert(_startTime == null);
      _startTime = t;
    }
  
    /// Frame end time in micros.
  
negative.code:   }
  
    List<TimelineFrame> _getAndSortWellFormedFrames() {
      final List<TimelineFrame> frames = _pendingFrames.values
          .where((TimelineFrame frame) => frame.isWellFormed)
          .toList();
  
      // Sort frames by their startTime. Sorting these frames ensures we will
      // handle the oldest frame first when iterating through the list.
      frames.sort((TimelineFrame a, TimelineFrame b) {
        return a.startTime.compareTo(b.startTime);
      });
  
      return frames;
    }
  
  