anchor.diff:      }
   
       switch (event.phase) {
  -      case 'B':
  +      case durationBeginPhase:
           _handleDurationBeginEvent(eventWrapper);
           break;
  -      case 'E':
  +      case durationEndPhase:
           _handleDurationEndEvent(eventWrapper);
           break;
  -      case 'X':
  +      case durationCompletePhase:
           _handleDurationCompleteEvent(eventWrapper);
           break;
         // We do not need to handle other event types (phases 'b', 'n', 'e', etc.)
  
positive.code: 
    bool _shouldProcessTraceEvent(TraceEvent event) {
      // ignore: prefer_collection_literals
      final Set<String> phaseWhitelist = Set.of(['s', 'f', 'B', 'E', 'X']);
      return phaseWhitelist.contains(event.phase) &&
          // Do not process Garbage Collection events.
          event.category != 'GC' &&
  
negative.code:   }
  
    void writeTraceToBuffer(StringBuffer buf) {
      buf.writeln(beginTraceEventJson);
      for (TimelineEvent child in children) {
        child.writeTraceToBuffer(buf);
      }
      if (!collectionEquals(beginTraceEventJson, endTraceEventJson)) {
        buf.writeln(endTraceEventJson);
      }
    }
  
  