|
27 | 27 | // uses DataView instead. This is required for IE 8 compatibility.
|
28 | 28 |
|
29 | 29 | /**
|
30 |
| - * @param {?Function} Long |
| 30 | + * @param {Function=} Long |
31 | 31 | * @returns {Function}
|
32 | 32 | * @private
|
33 | 33 | */
|
|
167 | 167 | function b2ab(b) {
|
168 | 168 | var ab = new ArrayBuffer(b.length),
|
169 | 169 | view = new Uint8Array(ab);
|
170 |
| - for (var i = 0; i < b.length; ++i) view[i] = b[i]; |
| 170 | + for (var i= 0, k=b.length; i < k; ++i) view[i] = b[i]; |
171 | 171 | return ab;
|
172 | 172 | }
|
173 | 173 |
|
|
621 | 621 | * @expose
|
622 | 622 | */
|
623 | 623 | ByteBuffer.prototype.writeUint8 = function(value, offset) {
|
624 |
| - offset = typeof offset != 'undefined' ? offset : (this.offset+=1)-1; |
| 624 | + offset = typeof offset !== 'undefined' ? offset : (this.offset+=1)-1; |
625 | 625 | this.ensureCapacity(offset+1);
|
626 | 626 | this.view.setUint8(offset, value);
|
| 627 | + this.view.setUint8(offset, value); |
627 | 628 | return this;
|
628 | 629 | };
|
629 | 630 |
|
|
1581 | 1582 | ByteBuffer.calculateUTF8String = function(str) {
|
1582 | 1583 | str = ""+str;
|
1583 | 1584 | var bytes = 0;
|
1584 |
| - for (var i=0; i<str.length; i++) { |
| 1585 | + for (var i=0, k=str.length; i<k; i++) { |
1585 | 1586 | // Does not throw since JS strings are already UTF8 encoded
|
1586 | 1587 | bytes += ByteBuffer.calculateUTF8Char(str.charCodeAt(i));
|
1587 | 1588 | }
|
|
1685 | 1686 | }
|
1686 | 1687 | var o,
|
1687 | 1688 | out = new ByteBuffer(str.length/2, littleEndian);
|
1688 |
| - for (var i=0; i<str.length; i+=2) { |
| 1689 | + for (var i= 0, k=str.length; i<k; i+=2) { |
1689 | 1690 | out.writeUint8(parseInt(str.substring(i, i+2), 16));
|
1690 | 1691 | }
|
1691 | 1692 | return out.flip();
|
|
1703 | 1704 | var advance = typeof offset === 'undefined';
|
1704 | 1705 | offset = typeof offset !== 'undefined' ? offset : this.offset;
|
1705 | 1706 | var start = offset;
|
1706 |
| - var encLen = ByteBuffer.calculateUTF8String(str), i; // See [1] |
| 1707 | + var encLen = ByteBuffer.calculateUTF8String(str); // See [1] |
1707 | 1708 | this.ensureCapacity(offset+encLen);
|
1708 |
| - for (i=0; i<str.length; i++) { |
| 1709 | + for (var i=0, j=str.length; i<j; i++) { |
1709 | 1710 | // [1] Does not throw since JS strings are already UTF8 encoded
|
1710 | 1711 | offset += ByteBuffer.encodeUTF8Char(str.charCodeAt(i), this, offset);
|
1711 | 1712 | }
|
|
1972 | 1973 | // Left colum: hex with offsets
|
1973 | 1974 | var out = "",
|
1974 | 1975 | lines = [],
|
1975 |
| - val; |
| 1976 | + val, |
| 1977 | + view = this.view; |
1976 | 1978 | if (this.offset == 0 && this.length == 0) {
|
1977 | 1979 | out += "|";
|
1978 | 1980 | } else if (this.length == 0) {
|
|
1982 | 1984 | } else {
|
1983 | 1985 | out += " ";
|
1984 | 1986 | }
|
1985 |
| - for (var i=0; i<this.array.byteLength; i++) { |
| 1987 | + for (var i=0, k=this.array.byteLength; i<k; i++) { |
1986 | 1988 | if (i>0 && i%wrap == 0) {
|
1987 | 1989 | while (out.length < 3*wrap+1) out += " "; // Make it equal to maybe show something on the right
|
1988 | 1990 | lines.push(out);
|
1989 | 1991 | out = " ";
|
1990 | 1992 | }
|
1991 |
| - val = this.view.getUint8(i).toString(16).toUpperCase(); |
| 1993 | + val = view.getUint8(i).toString(16).toUpperCase(); |
1992 | 1994 | if (val.length < 2) val = "0"+val;
|
1993 | 1995 | out += val;
|
1994 | 1996 | if (i+1 == this.offset && i+1 == this.length) {
|
|
2005 | 2007 | lines.push(out);
|
2006 | 2008 | }
|
2007 | 2009 | // Make it equal
|
2008 |
| - for (i=0; i<lines.length; i++) { |
| 2010 | + for (i=0, k=lines.length; i<k; i++) { |
2009 | 2011 | while (lines[i].length < 3*wrap+1) lines[i] += " "; // Make it equal to maybe show something on the right
|
2010 | 2012 | }
|
2011 | 2013 |
|
2012 | 2014 | // Right column: ASCII, using dots for (usually) non-printable characters
|
2013 | 2015 | var n = 0;
|
2014 | 2016 | out = "";
|
2015 |
| - for (i=0; i<this.array.byteLength; i++) { |
| 2017 | + for (i=0, k=this.array.byteLength; i<k; i++) { |
2016 | 2018 | if (i>0 && i%wrap == 0) {
|
2017 | 2019 | lines[n] += " "+out;
|
2018 | 2020 | out = ""; n++;
|
2019 | 2021 | }
|
2020 |
| - val = this.view.getUint8(i); |
| 2022 | + val = view.getUint8(i); |
2021 | 2023 | out += val > 32 && val < 127 ? String.fromCharCode(val) : ".";
|
2022 | 2024 | }
|
2023 | 2025 | if (out != "") {
|
|
2047 | 2049 | * @expose
|
2048 | 2050 | */
|
2049 | 2051 | ByteBuffer.prototype.toHex = function(debug) {
|
2050 |
| - var out = "", val, i; |
| 2052 | + var out = "", |
| 2053 | + val, |
| 2054 | + view = this.view, |
| 2055 | + i, k; |
2051 | 2056 | if (!debug) {
|
2052 | 2057 | if (this.array == null) return "";
|
2053 |
| - for (i=this.offset; i<this.length; i++) { |
2054 |
| - val = this.view.getUint8(i).toString(16).toUpperCase(); |
| 2058 | + for (i=this.offset, k=this.length; i<k; i++) { |
| 2059 | + val = view.getUint8(i).toString(16).toUpperCase(); |
2055 | 2060 | if (val.length < 2) val = "0"+val;
|
2056 | 2061 | out += val;
|
2057 | 2062 | }
|
2058 | 2063 | return out;
|
2059 | 2064 | } else {
|
2060 | 2065 | if (this.array == null) return "DESTROYED";
|
2061 |
| - var lines = []; |
2062 | 2066 | if (this.offset == 0 && this.length == 0) {
|
2063 | 2067 | out += "|";
|
2064 | 2068 | } else if (this.length == 0) {
|
|
2068 | 2072 | } else {
|
2069 | 2073 | out += " ";
|
2070 | 2074 | }
|
2071 |
| - for (i=0; i<this.array.byteLength; i++) { |
2072 |
| - val = this.view.getUint8(i).toString(16).toUpperCase(); |
| 2075 | + for (i=0, k=this.array.byteLength; i<k; i++) { |
| 2076 | + val = view.getUint8(i).toString(16).toUpperCase(); |
2073 | 2077 | if (val.length < 2) val = "0"+val;
|
2074 | 2078 | out += val;
|
2075 |
| - if (i+1 == this.offset && i+1 == this.length) { |
| 2079 | + if (i+1 === this.offset && i+1 === this.length) { |
2076 | 2080 | out += "|";
|
2077 | 2081 | } else if (i+1 == this.offset) {
|
2078 | 2082 | out += "<";
|
|
2175 | 2179 | }
|
2176 | 2180 | return new Buffer(new Uint8Array(this.array).subarray(offset, length));
|
2177 | 2181 | };
|
| 2182 | + |
2178 | 2183 | }
|
2179 | 2184 |
|
2180 | 2185 | return ByteBuffer;
|
2181 | 2186 | }
|
2182 |
| - |
2183 |
| - |
2184 |
| - |
| 2187 | + |
2185 | 2188 | // Enable module loading if available
|
2186 | 2189 | if (typeof module !== 'undefined' && module["exports"]) { // CommonJS
|
2187 | 2190 | module["exports"] = loadByteBuffer(require("long"));
|
|
0 commit comments