anchor.diff:  
   import 'dart:async';
   import 'dart:typed_data';
  +
  +import 'dart:html';
   
   import 'package:chrome/chrome_app.dart' as chrome;
   import 'package:crypto/crypto.dart' as crypto;
  
positive.code:       ByteBuffer packBuffer, ByteBuffer packIdxBuffer) {
      return FileOps.createDirectoryRecursive(root, '.git/objects').then(
          (chrome.DirectoryEntry objectsDir) {
        return FileOps.createFileWithContent(root, 'pack/${packName}.pack',
            packBuffer, 'ArrayBuffer').then((_) {
          return FileOps.createFileWithContent(root, 'pack/${packName}.idx',
              packIdxBuffer, 'ArrayBuffer').then((_) {
            return new Future.value(objectsDir);
          });
        });
  
negative.code:             Uint8List packSha = result.data.sublist(result.data.length - 20);
              Uint8List packIdxData = PackIndex.writePackIndex(result.objects,
                  packSha);
  
              // Get a veiw of the sorted shas.
              int offset = 4 + 4 + (256 * 4);
              Uint8List sortedShas = packIdxData.sublist(offset,
                  offset + result.objects.length * 20);
  
              crypto.SHA1 sha1 = new crypto.SHA1();
              sha1.add(sortedShas);
              String packNameSha = shaBytesToString(sha1.close());
  
              String packName = 'pack-${packNameSha}';
  
              return _createPackFiles(packName, result.data.buffer,
                  packIdxData.buffer).then((objectsDir) {
                store.objectDir = objectsDir;
  