Code coverage report for imgly-sdk-html5/src/js/lib/array-stream.js

Statements: 33.78% (25 / 74)      Branches: 25% (10 / 40)      Functions: 27.78% (5 / 18)      Lines: 15.52% (9 / 58)      Ignored: 3 statements, 1 function, 5 branches     

All files » imgly-sdk-html5/src/js/lib/ » array-stream.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146                        1         12       1   1 1             1                                                                                                                                                                                                                         1     1 1  
/*
 * Photo Editor SDK - photoeditorsdk.com
 * Copyright (c) 2013-2015 9elements GmbH
 *
 * Released under Attribution-NonCommercial 3.0 Unported
 * http://creativecommons.org/licenses/by-nc/3.0/
 *
 * For commercial use, please contact us at contact@9elements.com
 */
 
'use strict';
 
Object.defineProperty(exports, '__esModule', {
  value: true
});
// istanbul ignore next
 
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; Eif ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { Eif (protoProps) defineProperties(Constructor.prototype, protoProps); Iif (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
 
// istanbul ignore next
 
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
 
var ArrayStream = (function () {
  function ArrayStream(buf) {
    _classCallCheck(this, ArrayStream);
 
    this._head = 0;
    this._buf = buf;
  }
 
  _createClass(ArrayStream, [{
    key: 'getHead',
    value: function getHead() {
      return this._head;
    }
  }, {
    key: 'setHead',
    value: function setHead(head) {
      this._head = head;
    }
  }, {
    key: 'peekInt8',
    value: function peekInt8() {
      return this._buf[this._head];
    }
  }, {
    key: 'peekInt16',
    value: function peekInt16() {
      var littleEndian = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
 
      var a = this._buf[this._head];
      var b = this._buf[this._head + 1];
      if (!littleEndian) {
        return (a << 8) + b;
      } else {
        return (b << 8) + a;
      }
    }
  }, {
    key: 'peekInt24',
    value: function peekInt24() {
      var littleEndian = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
 
      var a = this._buf[this._head];
      var b = this._buf[this._head + 1];
      var c = this._buf[this._head + 2];
      if (!littleEndian) {
        return (a << 16) + (b << 8) + c;
      } else {
        return (c << 16) + (b << 8) + a;
      }
    }
  }, {
    key: 'peekInt32',
    value: function peekInt32() {
      var littleEndian = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
 
      var a = this._buf[this._head];
      var b = this._buf[this._head + 1];
      var c = this._buf[this._head + 2];
      var d = this._buf[this._head + 3];
      if (!littleEndian) {
        return (a << 32) + (b << 16) + (c << 8) + d;
      } else {
        return (d << 32) + (c << 16) + (b << 8) + a;
      }
    }
  }, {
    key: 'writeInt16',
    value: function writeInt16(num) {
      this._buf[this._head] = num >> 8; // upper
      this._buf[this._head + 1] = num & 0xff; // lower
    }
  }, {
    key: 'readInt8',
    value: function readInt8() {
      var num = this.peekInt8();
      this._head += 1;
      return num;
    }
  }, {
    key: 'readInt16',
    value: function readInt16() {
      var littleEndian = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
 
      var num = this.peekInt16(littleEndian);
      this._head += 2;
      return num;
    }
  }, {
    key: 'readInt24',
    value: function readInt24() {
      var littleEndian = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
 
      var num = this.peekInt24(littleEndian);
      this._head += 3;
      return num;
    }
  }, {
    key: 'readInt32',
    value: function readInt32() {
      var littleEndian = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
 
      var num = this.peekInt32(littleEndian);
      this._head += 4;
      return num;
    }
  }, {
    key: 'readString',
    value: function readString(length) {
      var str = '';
      for (var i = 0; i < length; i++) {
        var character = this.readInt8();
        str += String.fromCharCode(character);
      }
      return str;
    }
  }]);
 
  return ArrayStream;
})();
 
exports['default'] = ArrayStream;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9yb290L1NFUlZFUi9pbWdseS1zZGstaHRtbDUvc3JjL2pzL2xpYi9hcnJheS1zdHJlYW0uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFVcUIsV0FBVztBQUNsQixXQURPLFdBQVcsQ0FDakIsR0FBRyxFQUFFOzBCQURDLFdBQVc7O0FBRTVCLFFBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFBO0FBQ2QsUUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUE7R0FDaEI7O2VBSmtCLFdBQVc7O1dBTXRCLG1CQUFHO0FBQ1QsYUFBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0tBQ2xCOzs7V0FFTyxpQkFBQyxJQUFJLEVBQUU7QUFDYixVQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtLQUNsQjs7O1dBRVEsb0JBQUc7QUFDVixhQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0tBQzdCOzs7V0FFUyxxQkFBdUI7VUFBdEIsWUFBWSx5REFBRyxLQUFLOztBQUM3QixVQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUMvQixVQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFDbkMsVUFBSSxDQUFDLFlBQVksRUFBRTtBQUNqQixlQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxHQUFJLENBQUMsQ0FBQTtPQUNwQixNQUFNO0FBQ0wsZUFBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUEsR0FBSSxDQUFDLENBQUE7T0FDcEI7S0FDRjs7O1dBRVMscUJBQXVCO1VBQXRCLFlBQVkseURBQUcsS0FBSzs7QUFDN0IsVUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDL0IsVUFB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RSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQy9CLFlBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtBQUNqQyxXQUFHLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQTtPQUN0QztBQUNELGFBQU8sR0FBRyxDQUFBO0tBQ1g7OztTQXZGa0IsV0FBVzs7O3FCQUFYLFdBQVciLCJmaWxlIjoiL3Jvb3QvU0VSVkVSL2ltZ2x5LXNkay1odG1sNS9zcmMvanMvbGliL2FycmF5LXN0cmVhbS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQaG90byBFZGl0b3IgU0RLIC0gcGhvdG9lZGl0b3JzZGsuY29tXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAxNSA5ZWxlbWVudHMgR21iSFxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIEF0dHJpYnV0aW9uLU5vbkNvbW1lcmNpYWwgMy4wIFVucG9ydGVkXG4gKiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1uYy8zLjAvXG4gKlxuICogRm9yIGNvbW1lcmNpYWwgdXNlLCBwbGVhc2UgY29udGFjdCB1cyBhdCBjb250YWN0QDllbGVtZW50cy5jb21cbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcnJheVN0cmVhbSB7XG4gIGNvbnN0cnVjdG9yIChidWYpIHtcbiAgICB0aGlzLl9oZWFkID0gMFxuICAgIHRoaXMuX2J1ZiA9IGJ1ZlxuICB9XG5cbiAgZ2V0SGVhZCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hlYWRcbiAgfVxuXG4gIHNldEhlYWQgKGhlYWQpIHtcbiAgICB0aGlzLl9oZWFkID0gaGVhZFxuICB9XG5cbiAgcGVla0ludDggKCkge1xuICAgIHJldHVybiB0aGlzLl9idWZbdGhpcy5faGVhZF1cbiAgfVxuXG4gIHBlZWtJbnQxNiAobGl0dGxlRW5kaWFuID0gZmFsc2UpIHtcbiAgICBjb25zdCBhID0gdGhpcy5fYnVmW3RoaXMuX2hlYWRdXG4gICAgY29uc3QgYiA9IHRoaXMuX2J1Zlt0aGlzLl9oZWFkICsgMV1cbiAgICBpZiAoIWxpdHRsZUVuZGlhbikge1xuICAgICAgcmV0dXJuIChhIDw8IDgpICsgYlxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKGIgPDwgOCkgKyBhXG4gICAgfVxuICB9XG5cbiAgcGVla0ludDI0IChsaXR0bGVFbmRpYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IGEgPSB0aGlzLl9idWZbdGhpcy5faGVhZF1cbiAgICBjb25zdCBiID0gdGhpcy5fYnVmW3RoaXMuX2hlYWQgKyAxXVxuICAgIGNvbnN0IGMgPSB0aGlzLl9idWZbdGhpcy5faGVhZCArIDJdXG4gICAgaWYgKCFsaXR0bGVFbmRpYW4pIHtcbiAgICAgIHJldHVybiAoYSA8PCAxNikgKyAoYiA8PCA4KSArIGNcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIChjIDw8IDE2KSArIChiIDw8IDgpICsgYVxuICAgIH1cbiAgfVxuXG4gIHBlZWtJbnQzMiAobGl0dGxlRW5kaWFuID0gZmFsc2UpIHtcbiAgICBjb25zdCBhID0gdGhpcy5fYnVmW3RoaXMuX2hlYWRdXG4gICAgY29uc3QgYiA9IHRoaXMuX2J1Zlt0aGlzLl9oZWFkICsgMV1cbiAgICBjb25zdCBjID0gdGhpcy5fYnVmW3RoaXMuX2hlYWQgKyAyXVxuICAgIGNvbnN0IGQgPSB0aGlzLl9idWZbdGhpcy5faGVhZCArIDNdXG4gICAgaWYgKCFsaXR0bGVFbmRpYW4pIHtcbiAgICAgIHJldHVybiAoYSA8PCAzMikgKyAoYiA8PCAxNikgKyAoYyA8PCA4KSArIGRcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIChkIDw8IDMyKSArIChjIDw8IDE2KSArIChiIDw8IDgpICsgYVxuICAgIH1cbiAgfVxuXG4gIHdyaXRlSW50MTYgKG51bSkge1xuICAgIHRoaXMuX2J1Zlt0aGlzLl9oZWFkXSA9IG51bSA+PiA4IC8vIHVwcGVyXG4gICAgdGhpcy5fYnVmW3RoaXMuX2hlYWQgKyAxXSA9IG51bSAmIDB4ZmYgLy8gbG93ZXJcbiAgfVxuXG4gIHJlYWRJbnQ4ICgpIHtcbiAgICBjb25zdCBudW0gPSB0aGlzLnBlZWtJbnQ4KClcbiAgICB0aGlzLl9oZWFkICs9IDFcbiAgICByZXR1cm4gbnVtXG4gIH1cblxuICByZWFkSW50MTYgKGxpdHRsZUVuZGlhbiA9IGZhbHNlKSB7XG4gICAgY29uc3QgbnVtID0gdGhpcy5wZWVrSW50MTYobGl0dGxlRW5kaWFuKVxuICAgIHRoaXMuX2hlYWQgKz0gMlxuICAgIHJldHVybiBudW1cbiAgfVxuXG4gIHJlYWRJbnQyNCAobGl0dGxlRW5kaWFuID0gZmFsc2UpIHtcbiAgICBjb25zdCBudW0gPSB0aGlzLnBlZWtJbnQyNChsaXR0bGVFbmRpYW4pXG4gICAgdGhpcy5faGVhZCArPSAzXG4gICAgcmV0dXJuIG51bVxuICB9XG5cbiAgcmVhZEludDMyIChsaXR0bGVFbmRpYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IG51bSA9IHRoaXMucGVla0ludDMyKGxpdHRsZUVuZGlhbilcbiAgICB0aGlzLl9oZWFkICs9IDRcbiAgICByZXR1cm4gbnVtXG4gIH1cblxuICByZWFkU3RyaW5nIChsZW5ndGgpIHtcbiAgICBsZXQgc3RyID0gJydcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjaGFyYWN0ZXIgPSB0aGlzLnJlYWRJbnQ4KClcbiAgICAgIHN0ciArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoYXJhY3RlcilcbiAgICB9XG4gICAgcmV0dXJuIHN0clxuICB9XG59XG4iXX0=