Code Duplication    Length = 23-23 lines in 2 locations

public/js/tinymce/themes/mobile/theme.js 1 location

@@ 5863-5885 (lines=23) @@
5860
        xhr.send();
5861
      });
5862
    }
5863
    function dataUriToBlobSync(uri) {
5864
      var data = uri.split(',');
5865
      var matches = /data:([^;]+)/.exec(data[0]);
5866
      if (!matches)
5867
        return Option.none();
5868
      var mimetype = matches[1];
5869
      var base64 = data[1];
5870
      var sliceSize = 1024;
5871
      var byteCharacters = Window.atob(base64);
5872
      var bytesLength = byteCharacters.length;
5873
      var slicesCount = Math.ceil(bytesLength / sliceSize);
5874
      var byteArrays = new Array(slicesCount);
5875
      for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {
5876
        var begin = sliceIndex * sliceSize;
5877
        var end = Math.min(begin + sliceSize, bytesLength);
5878
        var bytes = new Array(end - begin);
5879
        for (var offset = begin, i = 0; offset < end; ++i, ++offset) {
5880
          bytes[i] = byteCharacters[offset].charCodeAt(0);
5881
        }
5882
        byteArrays[sliceIndex] = Uint8Array(bytes);
5883
      }
5884
      return Option.some(Blob(byteArrays, { type: mimetype }));
5885
    }
5886
    function dataUriToBlob(uri) {
5887
      return new Promise(function (resolve, reject) {
5888
        dataUriToBlobSync(uri).fold(function () {

public/js/tinymce/plugins/imagetools/plugin.js 1 location

@@ 498-520 (lines=23) @@
495
        xhr.send();
496
      });
497
    }
498
    function dataUriToBlobSync(uri) {
499
      var data = uri.split(',');
500
      var matches = /data:([^;]+)/.exec(data[0]);
501
      if (!matches)
502
        return Option.none();
503
      var mimetype = matches[1];
504
      var base64 = data[1];
505
      var sliceSize = 1024;
506
      var byteCharacters = Window.atob(base64);
507
      var bytesLength = byteCharacters.length;
508
      var slicesCount = Math.ceil(bytesLength / sliceSize);
509
      var byteArrays = new Array(slicesCount);
510
      for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {
511
        var begin = sliceIndex * sliceSize;
512
        var end = Math.min(begin + sliceSize, bytesLength);
513
        var bytes = new Array(end - begin);
514
        for (var offset = begin, i = 0; offset < end; ++i, ++offset) {
515
          bytes[i] = byteCharacters[offset].charCodeAt(0);
516
        }
517
        byteArrays[sliceIndex] = Uint8Array(bytes);
518
      }
519
      return Option.some(Blob(byteArrays, { type: mimetype }));
520
    }
521
    function dataUriToBlob(uri) {
522
      return new Promise(function (resolve, reject) {
523
        dataUriToBlobSync(uri).fold(function () {