anchor.diff:      for (TimelineEvent child in children) {
         child.writeTraceToBuffer(buf);
       }
  -    if (!collectionEquals(beginTraceEventJson, endTraceEventJson)) {
  +    if (endTraceEventJson != null) {
         buf.writeln(endTraceEventJson);
       }
     }
  
positive.code:     for (TimelineEvent event in children) {
        event.recordTrace();
      }
      if (!collectionEquals(beginTraceEventJson, endTraceEventJson)) {
        timelineTraceEvents.add(endTraceEventJson);
      }
    }
  
negative.code: 
    Map<String, dynamic> get beginTraceEventJson => traceEvents.first.json;
  
    Map<String, dynamic> get endTraceEventJson =>
        traceEvents.length > 1 ? traceEvents.last.json : null;
  
    bool get isUiEvent => type == TimelineEventType.ui;
  
  