anchor.diff:    }
   }
   
  -// TODO(kenzie): simplify the API on this class. Reduce duplicated logic for UI
  -// and GPU values.
   /// Data describing a single frame.
   ///
   /// Each TimelineFrame should have 2 distinct pieces of data:
  
positive.code:     // lead to us creating Timeline frames where we shouldn't and therefore
      // showing bad data to the user.
      switch (event.phase) {
        case 's':
          if (event.name.contains('PipelineItem')) {
            _handleFrameStartEvent(event);
          }
          break;
        case 'f':
          if (event.name.contains('PipelineItem')) {
            _handleFrameEndEvent(event);
          }
  
negative.code: 
    bool _shouldProcessTraceEvent(TraceEvent event) {
      // ignore: prefer_collection_literals
      final Set<String> phaseWhitelist = Set.of([
        flowStartPhase,
        flowEndPhase,
        durationBeginPhase,
        durationEndPhase,
        durationCompletePhase,
      ]);
      return phaseWhitelist.contains(event.phase) &&
          // Do not process Garbage Collection events.
          event.category != 'GC' &&
  