anchor.diff:    /// * [DiffTreeType.increaseOnly]: returns a tree with nodes with positive [byteSize].
     /// * [DiffTreeType.decreaseOnly]: returns a tree with nodes with negative [byteSize].
     /// * [DiffTreeType.combined]: returns a tree with all nodes.
  -  TreemapNode generateDiffTree(Map<String, dynamic> treeJson) {
  +  TreemapNode generateDiffTree(
  +    Map<String, dynamic> treeJson,
  +    DiffTreeType diffTreeType,
  +  ) {
       final isLeafNode = treeJson['children'] == null;
       if (!isLeafNode) {
  -      return _buildNodeWithChildren(treeJson, showDiff: true);
  +      return _buildNodeWithChildren(
  +        treeJson,
  +        showDiff: true,
  +        diffTreeType: diffTreeType,
  +      );
       } else {
         // TODO(peterdjlee): Investigate why there are leaf nodes with size of null.
         final byteSize = treeJson['value'];
  
positive.code:     _diffRoot.value = null;
      _oldDiffSnapshotJsonFile.value = null;
      _newDiffSnapshotJsonFile.value = null;
    }
  
    void clear(Key activeTabKey) {
  
negative.code: 
      Map<String, dynamic> processedJson;
      if (jsonFile.isApkFile) {
        // APK analysis json should be processed already.
        processedJson = jsonFile.data;
      } else {
        processedJson = treemapFromJson(jsonFile.data);
  