anchor.diff:    final String id;
   
     // TODO(kenzie): we should query the device for targetFps at some point.
  -  static const targetFps = 60;
  -  static const targetMaxDuration = 1000 / targetFps;
  +  static const targetFps = 60.0;
  +  static const targetMaxDuration = 1000.0 / targetFps;
   
     /// Marks whether this frame has been added to the timeline.
     ///
     /// This should only be set once.
     bool get addedToTimeline => _addedToTimeline;
     bool _addedToTimeline;
  +
     set addedToTimeline(v) {
       assert(_addedToTimeline == null);
       _addedToTimeline = v;
  
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:   /// Looks through [_pendingEvents] and attempts to add events to frames in
    /// [_pendingFrames].
    void _maybeAddPendingEvents() {
      // Sort _pendingEvents by their startTime. This ensures we will add the
      // first matching event within the time boundary to the frame.
      _pendingEvents.sort((TimelineEvent a, TimelineEvent b) {
        return a.startTime.compareTo(b.startTime);
      });
  
      final List<TimelineFrame> frames = _getAndSortWellFormedFrames();
      for (TimelineFrame frame in frames) {
        final List<TimelineEvent> eventsToRemove = [];
  
        for (TimelineEvent event in _pendingEvents) {
          final bool eventAdded = _maybeAddEventToFrame(event, frame);
          if (eventAdded) {
            eventsToRemove.add(event);
            break;
          }
        }
  
        if (eventsToRemove.isNotEmpty) {
          // ignore: prefer_foreach
          for (TimelineEvent event in eventsToRemove) {
            _pendingEvents.remove(event);
          }
        }
      }
    }
  
    /// Add event to an available frame in [_pendingFrames] if we can, or
    /// otherwise add it to [_pendingEvents].
    void _maybeAddEvent(TimelineEvent event) {
      if (!event.isCpuEventFlow && !event.isGpuEventFlow) {
        // We do not care about events that are neither the main flow of CPU
  