anchor.diff:        handleNextChunk(file);
   
         try {
  -        await reader.root;
  -        write(reader.context);
  +        reader.root.then((_) {
  +          write(reader.context);
  +          if (iterator.moveNext()) handleFile(iterator.current);
  +        });
         } on Context catch (e) {
           // Failed before Gltf.fromMap call
           write(e);
  +        if (iterator.moveNext()) handleFile(iterator.current);
         }
  +    }
   
  -      write("<strong>${file.name} done</strong><br>");
  -    }
  +    if (iterator.moveNext()) handleFile(iterator.current);
       dropZone.classes.remove('drop');
     });
   }
  
positive.code:     e.preventDefault();
    });
  
    dropZone.onDrop.listen((MouseEvent e) async {
      e.preventDefault();
      output.text = "";
      dropZone.classes.remove('hover');
      dropZone.classes.add('drop');
  
      for (final file in e.dataTransfer.files) {
        final controller = new StreamController<List<int>>();
        GltfReader reader;
        if (file.name.endsWith(".glb")) {
  
negative.code:         reader = new GltfReader(controller.stream);
        } else {
          write("<strong>${file.name}: Unknown file extension.</strong><br>");
          if (iterator.moveNext()) handleFile(iterator.current);
        }
  
        int index = 0;
  