|
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