Code Duplication    Length = 24-24 lines in 2 locations

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

@@ 5813-5836 (lines=24) @@
5810
      }
5811
      return anyUriToBlob(src);
5812
    }
5813
    function blobToImage(blob) {
5814
      return new Promise(function (resolve, reject) {
5815
        var blobUrl = URL.createObjectURL(blob);
5816
        var image = new Image();
5817
        var removeListeners = function () {
5818
          image.removeEventListener('load', loaded);
5819
          image.removeEventListener('error', error);
5820
        };
5821
        function loaded() {
5822
          removeListeners();
5823
          resolve(image);
5824
        }
5825
        function error() {
5826
          removeListeners();
5827
          reject('Unable to load data of type ' + blob.type + ': ' + blobUrl);
5828
        }
5829
        image.addEventListener('load', loaded);
5830
        image.addEventListener('error', error);
5831
        image.src = blobUrl;
5832
        if (image.complete) {
5833
          loaded();
5834
        }
5835
      });
5836
    }
5837
    function anyUriToBlob(url) {
5838
      return new Promise(function (resolve, reject) {
5839
        var xhr = new XMLHttpRequest();

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

@@ 448-471 (lines=24) @@
445
      }
446
      return anyUriToBlob(src);
447
    }
448
    function blobToImage(blob) {
449
      return new Promise(function (resolve, reject) {
450
        var blobUrl = URL.createObjectURL(blob);
451
        var image = new Image();
452
        var removeListeners = function () {
453
          image.removeEventListener('load', loaded);
454
          image.removeEventListener('error', error);
455
        };
456
        function loaded() {
457
          removeListeners();
458
          resolve(image);
459
        }
460
        function error() {
461
          removeListeners();
462
          reject('Unable to load data of type ' + blob.type + ': ' + blobUrl);
463
        }
464
        image.addEventListener('load', loaded);
465
        image.addEventListener('error', error);
466
        image.src = blobUrl;
467
        if (image.complete) {
468
          loaded();
469
        }
470
      });
471
    }
472
    function anyUriToBlob(url) {
473
      return new Promise(function (resolve, reject) {
474
        var xhr = new XMLHttpRequest();