From 8cdc1f74ced4f771aa844f1cbc565b1d4c4451b8 Mon Sep 17 00:00:00 2001 From: dcodeIO Date: Fri, 22 Jul 2016 18:38:35 +0200 Subject: [PATCH] Added toBytesLE/BE, see #34. Cleanup --- bower.json | 2 +- dist/long.js | 115 ++++++++++++++++++-------------------------- dist/long.min.js | 2 +- dist/long.min.js.gz | Bin 2669 -> 2752 bytes dist/long.min.map | 4 +- package.json | 4 +- src/long.js | 115 ++++++++++++++++++-------------------------- tests/suite.js | 13 +++++ 8 files changed, 113 insertions(+), 142 deletions(-) diff --git a/bower.json b/bower.json index a5907ed..9a64302 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "long", - "version": "3.1.0", + "version": "3.2.0", "author": "Daniel Wirtz ", "description": "A Long class for representing a 64 bit two's-complement integer value.", "main": "dist/long.js", diff --git a/dist/long.js b/dist/long.js index 5007a3a..555485a 100644 --- a/dist/long.js +++ b/dist/long.js @@ -47,21 +47,18 @@ /** * The low 32 bits as a signed value. * @type {number} - * @expose */ this.low = low | 0; /** * The high 32 bits as a signed value. * @type {number} - * @expose */ this.high = high | 0; /** * Whether unsigned or not. * @type {boolean} - * @expose */ this.unsigned = !!unsigned; } @@ -87,7 +84,6 @@ * An indicator used to reliably determine if an object is a Long or not. * @type {boolean} * @const - * @expose * @private */ Long.prototype.__isLong__; @@ -113,7 +109,6 @@ * @function * @param {*} obj Object * @returns {boolean} - * @expose */ Long.isLong = isLong; @@ -170,7 +165,6 @@ * @param {number} value The 32 bit integer in question * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed * @returns {!Long} The corresponding Long value - * @expose */ Long.fromInt = fromInt; @@ -205,7 +199,6 @@ * @param {number} value The number in question * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed * @returns {!Long} The corresponding Long value - * @expose */ Long.fromNumber = fromNumber; @@ -228,7 +221,6 @@ * @param {number} highBits The high 32 bits * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed * @returns {!Long} The corresponding Long value - * @expose */ Long.fromBits = fromBits; @@ -298,7 +290,6 @@ * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to `false` for signed * @param {number=} radix The radix in which the text is written (2-36), defaults to 10 * @returns {!Long} The corresponding Long value - * @expose */ Long.fromString = fromString; @@ -324,7 +315,6 @@ * @function * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value * @returns {!Long} - * @expose */ Long.fromValue = fromValue; @@ -382,7 +372,6 @@ /** * Signed zero. * @type {!Long} - * @expose */ Long.ZERO = ZERO; @@ -395,7 +384,6 @@ /** * Unsigned zero. * @type {!Long} - * @expose */ Long.UZERO = UZERO; @@ -408,7 +396,6 @@ /** * Signed one. * @type {!Long} - * @expose */ Long.ONE = ONE; @@ -421,7 +408,6 @@ /** * Unsigned one. * @type {!Long} - * @expose */ Long.UONE = UONE; @@ -434,7 +420,6 @@ /** * Signed negative one. * @type {!Long} - * @expose */ Long.NEG_ONE = NEG_ONE; @@ -447,7 +432,6 @@ /** * Maximum signed value. * @type {!Long} - * @expose */ Long.MAX_VALUE = MAX_VALUE; @@ -460,7 +444,6 @@ /** * Maximum unsigned value. * @type {!Long} - * @expose */ Long.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE; @@ -473,7 +456,6 @@ /** * Minimum signed value. * @type {!Long} - * @expose */ Long.MIN_VALUE = MIN_VALUE; @@ -486,7 +468,6 @@ /** * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer. * @returns {number} - * @expose */ LongPrototype.toInt = function toInt() { return this.unsigned ? this.low >>> 0 : this.low; @@ -495,7 +476,6 @@ /** * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa). * @returns {number} - * @expose */ LongPrototype.toNumber = function toNumber() { if (this.unsigned) @@ -509,7 +489,6 @@ * @returns {string} * @override * @throws {RangeError} If `radix` is out of range - * @expose */ LongPrototype.toString = function toString(radix) { radix = radix || 10; @@ -552,7 +531,6 @@ /** * Gets the high 32 bits as a signed integer. * @returns {number} Signed high bits - * @expose */ LongPrototype.getHighBits = function getHighBits() { return this.high; @@ -561,7 +539,6 @@ /** * Gets the high 32 bits as an unsigned integer. * @returns {number} Unsigned high bits - * @expose */ LongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() { return this.high >>> 0; @@ -570,7 +547,6 @@ /** * Gets the low 32 bits as a signed integer. * @returns {number} Signed low bits - * @expose */ LongPrototype.getLowBits = function getLowBits() { return this.low; @@ -579,7 +555,6 @@ /** * Gets the low 32 bits as an unsigned integer. * @returns {number} Unsigned low bits - * @expose */ LongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() { return this.low >>> 0; @@ -588,7 +563,6 @@ /** * Gets the number of bits needed to represent the absolute value of this Long. * @returns {number} - * @expose */ LongPrototype.getNumBitsAbs = function getNumBitsAbs() { if (this.isNegative()) // Unsigned Longs are never negative @@ -603,7 +577,6 @@ /** * Tests if this Long's value equals zero. * @returns {boolean} - * @expose */ LongPrototype.isZero = function isZero() { return this.high === 0 && this.low === 0; @@ -612,7 +585,6 @@ /** * Tests if this Long's value is negative. * @returns {boolean} - * @expose */ LongPrototype.isNegative = function isNegative() { return !this.unsigned && this.high < 0; @@ -621,7 +593,6 @@ /** * Tests if this Long's value is positive. * @returns {boolean} - * @expose */ LongPrototype.isPositive = function isPositive() { return this.unsigned || this.high >= 0; @@ -630,7 +601,6 @@ /** * Tests if this Long's value is odd. * @returns {boolean} - * @expose */ LongPrototype.isOdd = function isOdd() { return (this.low & 1) === 1; @@ -639,7 +609,6 @@ /** * Tests if this Long's value is even. * @returns {boolean} - * @expose */ LongPrototype.isEven = function isEven() { return (this.low & 1) === 0; @@ -649,7 +618,6 @@ * Tests if this Long's value equals the specified's. * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.equals = function equals(other) { if (!isLong(other)) @@ -664,7 +632,6 @@ * @function * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.eq = LongPrototype.equals; @@ -672,7 +639,6 @@ * Tests if this Long's value differs from the specified's. * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.notEquals = function notEquals(other) { return !this.eq(/* validates */ other); @@ -683,7 +649,6 @@ * @function * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.neq = LongPrototype.notEquals; @@ -691,7 +656,6 @@ * Tests if this Long's value is less than the specified's. * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.lessThan = function lessThan(other) { return this.comp(/* validates */ other) < 0; @@ -702,7 +666,6 @@ * @function * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.lt = LongPrototype.lessThan; @@ -710,7 +673,6 @@ * Tests if this Long's value is less than or equal the specified's. * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.lessThanOrEqual = function lessThanOrEqual(other) { return this.comp(/* validates */ other) <= 0; @@ -721,7 +683,6 @@ * @function * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.lte = LongPrototype.lessThanOrEqual; @@ -729,7 +690,6 @@ * Tests if this Long's value is greater than the specified's. * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.greaterThan = function greaterThan(other) { return this.comp(/* validates */ other) > 0; @@ -740,7 +700,6 @@ * @function * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.gt = LongPrototype.greaterThan; @@ -748,7 +707,6 @@ * Tests if this Long's value is greater than or equal the specified's. * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) { return this.comp(/* validates */ other) >= 0; @@ -759,7 +717,6 @@ * @function * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.gte = LongPrototype.greaterThanOrEqual; @@ -768,7 +725,6 @@ * @param {!Long|number|string} other Other value * @returns {number} 0 if they are the same, 1 if the this is greater and -1 * if the given one is greater - * @expose */ LongPrototype.compare = function compare(other) { if (!isLong(other)) @@ -794,14 +750,12 @@ * @param {!Long|number|string} other Other value * @returns {number} 0 if they are the same, 1 if the this is greater and -1 * if the given one is greater - * @expose */ LongPrototype.comp = LongPrototype.compare; /** * Negates this Long's value. * @returns {!Long} Negated Long - * @expose */ LongPrototype.negate = function negate() { if (!this.unsigned && this.eq(MIN_VALUE)) @@ -813,7 +767,6 @@ * Negates this Long's value. This is an alias of {@link Long#negate}. * @function * @returns {!Long} Negated Long - * @expose */ LongPrototype.neg = LongPrototype.negate; @@ -821,7 +774,6 @@ * Returns the sum of this and the specified Long. * @param {!Long|number|string} addend Addend * @returns {!Long} Sum - * @expose */ LongPrototype.add = function add(addend) { if (!isLong(addend)) @@ -858,7 +810,6 @@ * Returns the difference of this and the specified Long. * @param {!Long|number|string} subtrahend Subtrahend * @returns {!Long} Difference - * @expose */ LongPrototype.subtract = function subtract(subtrahend) { if (!isLong(subtrahend)) @@ -871,7 +822,6 @@ * @function * @param {!Long|number|string} subtrahend Subtrahend * @returns {!Long} Difference - * @expose */ LongPrototype.sub = LongPrototype.subtract; @@ -879,7 +829,6 @@ * Returns the product of this and the specified Long. * @param {!Long|number|string} multiplier Multiplier * @returns {!Long} Product - * @expose */ LongPrototype.multiply = function multiply(multiplier) { if (this.isZero()) @@ -947,7 +896,6 @@ * @function * @param {!Long|number|string} multiplier Multiplier * @returns {!Long} Product - * @expose */ LongPrototype.mul = LongPrototype.multiply; @@ -956,7 +904,6 @@ * unsigned if this Long is unsigned. * @param {!Long|number|string} divisor Divisor * @returns {!Long} Quotient - * @expose */ LongPrototype.divide = function divide(divisor) { if (!isLong(divisor)) @@ -1049,7 +996,6 @@ * @function * @param {!Long|number|string} divisor Divisor * @returns {!Long} Quotient - * @expose */ LongPrototype.div = LongPrototype.divide; @@ -1057,7 +1003,6 @@ * Returns this Long modulo the specified. * @param {!Long|number|string} divisor Divisor * @returns {!Long} Remainder - * @expose */ LongPrototype.modulo = function modulo(divisor) { if (!isLong(divisor)) @@ -1070,14 +1015,12 @@ * @function * @param {!Long|number|string} divisor Divisor * @returns {!Long} Remainder - * @expose */ LongPrototype.mod = LongPrototype.modulo; /** * Returns the bitwise NOT of this Long. * @returns {!Long} - * @expose */ LongPrototype.not = function not() { return fromBits(~this.low, ~this.high, this.unsigned); @@ -1087,7 +1030,6 @@ * Returns the bitwise AND of this Long and the specified. * @param {!Long|number|string} other Other Long * @returns {!Long} - * @expose */ LongPrototype.and = function and(other) { if (!isLong(other)) @@ -1099,7 +1041,6 @@ * Returns the bitwise OR of this Long and the specified. * @param {!Long|number|string} other Other Long * @returns {!Long} - * @expose */ LongPrototype.or = function or(other) { if (!isLong(other)) @@ -1111,7 +1052,6 @@ * Returns the bitwise XOR of this Long and the given one. * @param {!Long|number|string} other Other Long * @returns {!Long} - * @expose */ LongPrototype.xor = function xor(other) { if (!isLong(other)) @@ -1123,7 +1063,6 @@ * Returns this Long with bits shifted to the left by the given amount. * @param {number|!Long} numBits Number of bits * @returns {!Long} Shifted Long - * @expose */ LongPrototype.shiftLeft = function shiftLeft(numBits) { if (isLong(numBits)) @@ -1141,7 +1080,6 @@ * @function * @param {number|!Long} numBits Number of bits * @returns {!Long} Shifted Long - * @expose */ LongPrototype.shl = LongPrototype.shiftLeft; @@ -1149,7 +1087,6 @@ * Returns this Long with bits arithmetically shifted to the right by the given amount. * @param {number|!Long} numBits Number of bits * @returns {!Long} Shifted Long - * @expose */ LongPrototype.shiftRight = function shiftRight(numBits) { if (isLong(numBits)) @@ -1167,7 +1104,6 @@ * @function * @param {number|!Long} numBits Number of bits * @returns {!Long} Shifted Long - * @expose */ LongPrototype.shr = LongPrototype.shiftRight; @@ -1175,7 +1111,6 @@ * Returns this Long with bits logically shifted to the right by the given amount. * @param {number|!Long} numBits Number of bits * @returns {!Long} Shifted Long - * @expose */ LongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) { if (isLong(numBits)) @@ -1200,14 +1135,12 @@ * @function * @param {number|!Long} numBits Number of bits * @returns {!Long} Shifted Long - * @expose */ LongPrototype.shru = LongPrototype.shiftRightUnsigned; /** * Converts this Long to signed. * @returns {!Long} Signed long - * @expose */ LongPrototype.toSigned = function toSigned() { if (!this.unsigned) @@ -1218,7 +1151,6 @@ /** * Converts this Long to unsigned. * @returns {!Long} Unsigned long - * @expose */ LongPrototype.toUnsigned = function toUnsigned() { if (this.unsigned) @@ -1226,5 +1158,52 @@ return fromBits(this.low, this.high, true); }; + /** + * Converts this Long to its byte representation. + * @param {boolean=} le Whether little or big endian, defaults to big endian + * @returns {!Array.} Byte representation + */ + LongPrototype.toBytes = function(le) { + return le ? this.toBytesLE() : this.toBytesBE(); + } + + /** + * Converts this Long to its little endian byte representation. + * @returns {!Array.} Little endian byte representation + */ + LongPrototype.toBytesLE = function() { + var hi = this.high, + lo = this.low; + return [ + lo & 0xff, + (lo >>> 8) & 0xff, + (lo >>> 16) & 0xff, + (lo >>> 24) & 0xff, + hi & 0xff, + (hi >>> 8) & 0xff, + (hi >>> 16) & 0xff, + (hi >>> 24) & 0xff + ]; + } + + /** + * Converts this Long to its big endian byte representation. + * @returns {!Array.} Big endian byte representation + */ + LongPrototype.toBytesBE = function() { + var hi = this.high, + lo = this.low; + return [ + (hi >>> 24) & 0xff, + (hi >>> 16) & 0xff, + (hi >>> 8) & 0xff, + hi & 0xff, + (lo >>> 24) & 0xff, + (lo >>> 16) & 0xff, + (lo >>> 8) & 0xff, + lo & 0xff + ]; + } + return Long; }); diff --git a/dist/long.min.js b/dist/long.min.js index 348713c..17449bb 100644 --- a/dist/long.min.js +++ b/dist/long.min.js @@ -17,4 +17,4 @@ this.neg().mul(a.neg()):this.neg().mul(a).neg();if(a.isNegative())return this.mu p:k;if(this.isNegative())return a.isNegative()?this.neg().div(a.neg()):this.neg().div(a).neg();if(a.isNegative())return this.div(a.neg()).neg();d=k}for(c=this;c.gte(a);){b=Math.max(1,Math.floor(c.toNumber()/a.toNumber()));for(var e=Math.ceil(Math.log(b)/Math.LN2),e=48>=e?1:v(2,e-48),f=n(b),m=f.mul(a);m.isNegative()||m.gt(c);)b-=e,f=n(b,this.unsigned),m=f.mul(a);f.isZero()&&(f=r);d=d.add(f);c=c.sub(m)}return d};b.div=b.divide;b.modulo=function(a){g(a)||(a=q(a));return this.sub(this.div(a).mul(a))}; b.mod=b.modulo;b.not=function(){return e(~this.low,~this.high,this.unsigned)};b.and=function(a){g(a)||(a=q(a));return e(this.low&a.low,this.high&a.high,this.unsigned)};b.or=function(a){g(a)||(a=q(a));return e(this.low|a.low,this.high|a.high,this.unsigned)};b.xor=function(a){g(a)||(a=q(a));return e(this.low^a.low,this.high^a.high,this.unsigned)};b.shiftLeft=function(a){g(a)&&(a=a.toInt());return 0===(a&=63)?this:32>a?e(this.low<>>32-a,this.unsigned):e(0,this.low<a?e(this.low>>>a|this.high<<32-a,this.high>>a,this.unsigned):e(this.high>>a-32,0<=this.high?0:-1,this.unsigned)};b.shr=b.shiftRight;b.shiftRightUnsigned=function(a){g(a)&&(a=a.toInt());a&=63;if(0===a)return this;var b=this.high;return 32>a?e(this.low>>>a|b<<32-a,b>>>a,this.unsigned):32===a?e(b,0,this.unsigned):e(b>>>a-32,0,this.unsigned)};b.shru=b.shiftRightUnsigned;b.toSigned=function(){return this.unsigned? -e(this.low,this.high,!1):this};b.toUnsigned=function(){return this.unsigned?this:e(this.low,this.high,!0)};return d}); +e(this.low,this.high,!1):this};b.toUnsigned=function(){return this.unsigned?this:e(this.low,this.high,!0)};b.toBytes=function(a){return a?this.toBytesLE():this.toBytesBE()};b.toBytesLE=function(){var a=this.high,b=this.low;return[b&255,b>>>8&255,b>>>16&255,b>>>24&255,a&255,a>>>8&255,a>>>16&255,a>>>24&255]};b.toBytesBE=function(){var a=this.high,b=this.low;return[a>>>24&255,a>>>16&255,a>>>8&255,a&255,b>>>24&255,b>>>16&255,b>>>8&255,b&255]};return d}); diff --git a/dist/long.min.js.gz b/dist/long.min.js.gz index 5f1efef77d7b06a45c11865a663671aded1fd733..eae840a0ef37bf0d09ae9beb3c61e0494d9fc806 100644 GIT binary patch literal 2752 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 G9smGkM=hTK literal 2669 zcmV-z3X=67iwFp`6#rHN18i?@XD)4NZZ2wb0IgYVZ`(K${_bBP8#sfEWkt4AC$&ub z(l+fC$R>;KwRhOXZb3u-rs&hij*k7q*>s;#Nu#fIK!EFhGb4p8b*}F zGwaXHKpr;wc5h(3qjAV0<3C}Ve>cXym-y_T;;$7ZlZNq$MT}<5H`cMwQX`);<8nnk z__+=}7H7;fzOXb4li286cEiXR8yWLFUuC1y(^;6$*RJIy%TuB9AMrUyCmNY4M4E`yFIPhh$RrZ5^f{ z)JohxnU`x*%fw$tFjN1v*uyGG^K4olk{QAyPrQrj4Dv-A0^|czDaAj6KnfQrPYFFN99`RXQ&Z>ZDR%Pv~o) zOQ}#XR$jz~7oaQ5Zs-lTzu7dy?0p!AIq1Slw>w>p7Sc)h3rnb(6{pe(d7}t#3%faW zOuFwBITC!G-h`B-D`gP3I7VG=iWM`S1+ex%&ib#xB|rD>9)7F(|JMwZs6^1*7=((m#AV?$l+jJp%-e%Ji!R}Asb1)ox(z;JH zo-t`+O8xKwY~z_H^3EPZa!@M-=yt2O%&e9ODVE(w8vlxUMau;%CBW#bA zt=+w)NHNBTkQB& zAw^~)2QJCe*8C2CU?ND9C2THP%I_QD4~gaQO$Z>{U_$J!h|wy!my^E;7s-Phe&Obj zZ-Vy?sfzEU`ZV8>H>Z8`Jz1jO@cjI|-y33c0VA6m`RmoETe1-HD^3&e=3AcyeI@8A zm*m9Tn=6tE(g#jbtepHokRO5E6|6T`AHH(>qo7{_;&ppwzjtQB&t9O#|tze9R(KfrK!V9JFc>;5&2^n15aBhM) zZ7|YmIgY|NR~YDFz(C{*(|lp4hq1ClY_Pr-X!1o1-Q6Z5=r94S&TtYaG{pgd?dt>% zU$_GtTOO<#%l`#&6oq^wRd}3tSU)R7Y&;{w?Ui!Z$^COH$egVhOZ~?MH0_Y-T?SEao0eZ?%|R>%J;xrq?Y1qBdA;%2#g5zUmg!Z~ z;C2Rsk=yBU7mDZ|@KrQaB_b3PeZMNt_GO#3qyyPWEtX;SbCQLJMe6{u*}%DTNA}h~ z82KJQ;3@;#JzOwf-Ld$HZ@bKJ?59yy!;P6ZK_W_cpDnktW?_?`y(&+8`ldma40;8P zR)lG@H>!^CYO38X&-mgrS8Ou-MwDSNij(|m-$;GS88?&*#zL|b07}HN?B8=5ACNU< zeBjQtlJZebDiKZkHWdmFDOx`5F1lCq&;V$SpppnmwdwJTO%uMnsZ5EoF_!tFl@1?mHdN(} zR-05|(nJR+u3hTokWO*U5HY)zK9kaQkvqWif~wYVERrym@Q%fguc^$!8BzLR2oulk zthR;H-QG|&P~qqB)vLiPv*8oXOJIqr>Vi?A3aa3a39UF6&Vtw-R8_vl&>?;Yj+~rECC%>;4|LOBrG~#Ko zC?sq1a>W|U(Pmk%o@qmCm;8jHTpsPx)oo82exwWQDk^~@J#zFOi_+pBN-8cU)d3gb z6RHh%;`q{x-c9IxQcut_r;F)jJ;PU8hC}LVsVvrCn{zWWQzwOFy+5H&#*;RcNt;1( z18vS}nW7PtslvEFSvm6#DW;sPO$xn0@<43O#pY6MPS9M5`5?CLkYdW2Yhw2&%R@73 zvWDV0p&jpJ1=34cIM^$sY&>p2&7{)rwWy%^f!cwnk}BaHak>rtAECOI-?irkE-c|Ad688B}O-GN8 z%yZFt!EKWACj7+_ zvHt?2San1wUc@TMrpGiV>EBYk*-^YXs`%k=YW`zK^B+ewXY(+~uUW8v%7C~Rh$Jrm z)h)94F9I13iV7PI`V%^>mL893wJr=cT4NjZyL88f5r3W1WV?g@o|O%5Cdc#ASY`Mp zSmXa@IT$FdEljVhEgJ6u)Adr&pM)QddivLqYWK*Y z+&|>4E4_3l2izO bn%YC<=&(ZmYFNS;b{hW!W>a7W@EiaDnK?7X diff --git a/dist/long.min.map b/dist/long.min.map index 14d4975..a87d85e 100644 --- a/dist/long.min.map +++ b/dist/long.min.map @@ -2,7 +2,7 @@ "version":3, "file":"", "lineCount":20, -"mappings":"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", +"mappings":"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", "sources":["dist/long.js"], -"names":["global","factory","define","require","module","Long","low","high","unsigned","isLong","obj","fromInt","value","cache","cachedObj","UINT_CACHE","fromBits","INT_CACHE","fromNumber","isNaN","isFinite","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","neg","TWO_PWR_32_DBL","lowBits","highBits","fromString","str","radix","length","Error","RangeError","p","indexOf","substring","radixToPower","pow_dbl","result","i","size","Math","min","parseInt","power","mul","add","fromValue","val","Object","defineProperty","prototype","enumerable","configurable","pow","TWO_PWR_24","TWO_PWR_24_DBL","ONE","UONE","NEG_ONE","LongPrototype","toInt","LongPrototype.toInt","toNumber","LongPrototype.toNumber","toString","LongPrototype.toString","isZero","isNegative","eq","radixLong","div","rem1","sub","rem","remDiv","digits","getHighBits","LongPrototype.getHighBits","getHighBitsUnsigned","LongPrototype.getHighBitsUnsigned","getLowBits","LongPrototype.getLowBits","getLowBitsUnsigned","LongPrototype.getLowBitsUnsigned","getNumBitsAbs","LongPrototype.getNumBitsAbs","bit","LongPrototype.isZero","LongPrototype.isNegative","isPositive","LongPrototype.isPositive","isOdd","LongPrototype.isOdd","isEven","LongPrototype.isEven","equals","LongPrototype.equals","other","notEquals","LongPrototype.notEquals","neq","lessThan","LongPrototype.lessThan","comp","lt","lessThanOrEqual","LongPrototype.lessThanOrEqual","lte","greaterThan","LongPrototype.greaterThan","gt","greaterThanOrEqual","LongPrototype.greaterThanOrEqual","gte","compare","LongPrototype.compare","thisNeg","otherNeg","negate","LongPrototype.negate","not","LongPrototype.add","addend","a48","a32","a16","b48","b32","b16","c00","c16","c32","c48","subtract","LongPrototype.subtract","subtrahend","multiply","LongPrototype.multiply","multiplier","a00","b00","divide","LongPrototype.divide","divisor","approx","res","toUnsigned","shru","shr","halfThis","shl","max","floor","log2","ceil","log","LN2","delta","approxRes","approxRem","modulo","LongPrototype.modulo","mod","LongPrototype.not","and","LongPrototype.and","or","LongPrototype.or","xor","LongPrototype.xor","shiftLeft","LongPrototype.shiftLeft","numBits","shiftRight","LongPrototype.shiftRight","shiftRightUnsigned","LongPrototype.shiftRightUnsigned","toSigned","LongPrototype.toSigned","LongPrototype.toUnsigned"] +"names":["global","factory","define","require","module","Long","low","high","unsigned","isLong","obj","fromInt","value","cache","cachedObj","UINT_CACHE","fromBits","INT_CACHE","fromNumber","isNaN","isFinite","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","neg","TWO_PWR_32_DBL","lowBits","highBits","fromString","str","radix","length","Error","RangeError","p","indexOf","substring","radixToPower","pow_dbl","result","i","size","Math","min","parseInt","power","mul","add","fromValue","val","Object","defineProperty","prototype","enumerable","configurable","pow","TWO_PWR_24","TWO_PWR_24_DBL","ONE","UONE","NEG_ONE","LongPrototype","toInt","LongPrototype.toInt","toNumber","LongPrototype.toNumber","toString","LongPrototype.toString","isZero","isNegative","eq","radixLong","div","rem1","sub","rem","remDiv","digits","getHighBits","LongPrototype.getHighBits","getHighBitsUnsigned","LongPrototype.getHighBitsUnsigned","getLowBits","LongPrototype.getLowBits","getLowBitsUnsigned","LongPrototype.getLowBitsUnsigned","getNumBitsAbs","LongPrototype.getNumBitsAbs","bit","LongPrototype.isZero","LongPrototype.isNegative","isPositive","LongPrototype.isPositive","isOdd","LongPrototype.isOdd","isEven","LongPrototype.isEven","equals","LongPrototype.equals","other","notEquals","LongPrototype.notEquals","neq","lessThan","LongPrototype.lessThan","comp","lt","lessThanOrEqual","LongPrototype.lessThanOrEqual","lte","greaterThan","LongPrototype.greaterThan","gt","greaterThanOrEqual","LongPrototype.greaterThanOrEqual","gte","compare","LongPrototype.compare","thisNeg","otherNeg","negate","LongPrototype.negate","not","LongPrototype.add","addend","a48","a32","a16","b48","b32","b16","c00","c16","c32","c48","subtract","LongPrototype.subtract","subtrahend","multiply","LongPrototype.multiply","multiplier","a00","b00","divide","LongPrototype.divide","divisor","approx","res","toUnsigned","shru","shr","halfThis","shl","max","floor","log2","ceil","log","LN2","delta","approxRes","approxRem","modulo","LongPrototype.modulo","mod","LongPrototype.not","and","LongPrototype.and","or","LongPrototype.or","xor","LongPrototype.xor","shiftLeft","LongPrototype.shiftLeft","numBits","shiftRight","LongPrototype.shiftRight","shiftRightUnsigned","LongPrototype.shiftRightUnsigned","toSigned","LongPrototype.toSigned","LongPrototype.toUnsigned","toBytes","LongPrototype.toBytes","le","toBytesLE","toBytesBE","LongPrototype.toBytesLE","hi","lo","LongPrototype.toBytesBE"] } diff --git a/package.json b/package.json index bcd8fa6..bb91636 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "long", - "version": "3.1.0", + "version": "3.2.0", "author": "Daniel Wirtz ", "description": "A Long class for representing a 64-bit two's-complement integer value.", "main": "dist/long.js", @@ -16,7 +16,7 @@ }, "devDependencies": { "testjs": "latest", - "closurecompiler": "latest", + "closurecompiler": "^1.6", "metascript": "~0" }, "license": "Apache-2.0", diff --git a/src/long.js b/src/long.js index 96137e9..5af2cb9 100644 --- a/src/long.js +++ b/src/long.js @@ -13,21 +13,18 @@ function Long(low, high, unsigned) { /** * The low 32 bits as a signed value. * @type {number} - * @expose */ this.low = low | 0; /** * The high 32 bits as a signed value. * @type {number} - * @expose */ this.high = high | 0; /** * Whether unsigned or not. * @type {boolean} - * @expose */ this.unsigned = !!unsigned; } @@ -53,7 +50,6 @@ function Long(low, high, unsigned) { * An indicator used to reliably determine if an object is a Long or not. * @type {boolean} * @const - * @expose * @private */ Long.prototype.__isLong__; @@ -79,7 +75,6 @@ function isLong(obj) { * @function * @param {*} obj Object * @returns {boolean} - * @expose */ Long.isLong = isLong; @@ -136,7 +131,6 @@ function fromInt(value, unsigned) { * @param {number} value The 32 bit integer in question * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed * @returns {!Long} The corresponding Long value - * @expose */ Long.fromInt = fromInt; @@ -171,7 +165,6 @@ function fromNumber(value, unsigned) { * @param {number} value The number in question * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed * @returns {!Long} The corresponding Long value - * @expose */ Long.fromNumber = fromNumber; @@ -194,7 +187,6 @@ function fromBits(lowBits, highBits, unsigned) { * @param {number} highBits The high 32 bits * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed * @returns {!Long} The corresponding Long value - * @expose */ Long.fromBits = fromBits; @@ -264,7 +256,6 @@ function fromString(str, unsigned, radix) { * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to `false` for signed * @param {number=} radix The radix in which the text is written (2-36), defaults to 10 * @returns {!Long} The corresponding Long value - * @expose */ Long.fromString = fromString; @@ -290,7 +281,6 @@ function fromValue(val) { * @function * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value * @returns {!Long} - * @expose */ Long.fromValue = fromValue; @@ -348,7 +338,6 @@ var ZERO = fromInt(0); /** * Signed zero. * @type {!Long} - * @expose */ Long.ZERO = ZERO; @@ -361,7 +350,6 @@ var UZERO = fromInt(0, true); /** * Unsigned zero. * @type {!Long} - * @expose */ Long.UZERO = UZERO; @@ -374,7 +362,6 @@ var ONE = fromInt(1); /** * Signed one. * @type {!Long} - * @expose */ Long.ONE = ONE; @@ -387,7 +374,6 @@ var UONE = fromInt(1, true); /** * Unsigned one. * @type {!Long} - * @expose */ Long.UONE = UONE; @@ -400,7 +386,6 @@ var NEG_ONE = fromInt(-1); /** * Signed negative one. * @type {!Long} - * @expose */ Long.NEG_ONE = NEG_ONE; @@ -413,7 +398,6 @@ var MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false); /** * Maximum signed value. * @type {!Long} - * @expose */ Long.MAX_VALUE = MAX_VALUE; @@ -426,7 +410,6 @@ var MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true); /** * Maximum unsigned value. * @type {!Long} - * @expose */ Long.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE; @@ -439,7 +422,6 @@ var MIN_VALUE = fromBits(0, 0x80000000|0, false); /** * Minimum signed value. * @type {!Long} - * @expose */ Long.MIN_VALUE = MIN_VALUE; @@ -452,7 +434,6 @@ var LongPrototype = Long.prototype; /** * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer. * @returns {number} - * @expose */ LongPrototype.toInt = function toInt() { return this.unsigned ? this.low >>> 0 : this.low; @@ -461,7 +442,6 @@ LongPrototype.toInt = function toInt() { /** * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa). * @returns {number} - * @expose */ LongPrototype.toNumber = function toNumber() { if (this.unsigned) @@ -475,7 +455,6 @@ LongPrototype.toNumber = function toNumber() { * @returns {string} * @override * @throws {RangeError} If `radix` is out of range - * @expose */ LongPrototype.toString = function toString(radix) { radix = radix || 10; @@ -518,7 +497,6 @@ LongPrototype.toString = function toString(radix) { /** * Gets the high 32 bits as a signed integer. * @returns {number} Signed high bits - * @expose */ LongPrototype.getHighBits = function getHighBits() { return this.high; @@ -527,7 +505,6 @@ LongPrototype.getHighBits = function getHighBits() { /** * Gets the high 32 bits as an unsigned integer. * @returns {number} Unsigned high bits - * @expose */ LongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() { return this.high >>> 0; @@ -536,7 +513,6 @@ LongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() { /** * Gets the low 32 bits as a signed integer. * @returns {number} Signed low bits - * @expose */ LongPrototype.getLowBits = function getLowBits() { return this.low; @@ -545,7 +521,6 @@ LongPrototype.getLowBits = function getLowBits() { /** * Gets the low 32 bits as an unsigned integer. * @returns {number} Unsigned low bits - * @expose */ LongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() { return this.low >>> 0; @@ -554,7 +529,6 @@ LongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() { /** * Gets the number of bits needed to represent the absolute value of this Long. * @returns {number} - * @expose */ LongPrototype.getNumBitsAbs = function getNumBitsAbs() { if (this.isNegative()) // Unsigned Longs are never negative @@ -569,7 +543,6 @@ LongPrototype.getNumBitsAbs = function getNumBitsAbs() { /** * Tests if this Long's value equals zero. * @returns {boolean} - * @expose */ LongPrototype.isZero = function isZero() { return this.high === 0 && this.low === 0; @@ -578,7 +551,6 @@ LongPrototype.isZero = function isZero() { /** * Tests if this Long's value is negative. * @returns {boolean} - * @expose */ LongPrototype.isNegative = function isNegative() { return !this.unsigned && this.high < 0; @@ -587,7 +559,6 @@ LongPrototype.isNegative = function isNegative() { /** * Tests if this Long's value is positive. * @returns {boolean} - * @expose */ LongPrototype.isPositive = function isPositive() { return this.unsigned || this.high >= 0; @@ -596,7 +567,6 @@ LongPrototype.isPositive = function isPositive() { /** * Tests if this Long's value is odd. * @returns {boolean} - * @expose */ LongPrototype.isOdd = function isOdd() { return (this.low & 1) === 1; @@ -605,7 +575,6 @@ LongPrototype.isOdd = function isOdd() { /** * Tests if this Long's value is even. * @returns {boolean} - * @expose */ LongPrototype.isEven = function isEven() { return (this.low & 1) === 0; @@ -615,7 +584,6 @@ LongPrototype.isEven = function isEven() { * Tests if this Long's value equals the specified's. * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.equals = function equals(other) { if (!isLong(other)) @@ -630,7 +598,6 @@ LongPrototype.equals = function equals(other) { * @function * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.eq = LongPrototype.equals; @@ -638,7 +605,6 @@ LongPrototype.eq = LongPrototype.equals; * Tests if this Long's value differs from the specified's. * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.notEquals = function notEquals(other) { return !this.eq(/* validates */ other); @@ -649,7 +615,6 @@ LongPrototype.notEquals = function notEquals(other) { * @function * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.neq = LongPrototype.notEquals; @@ -657,7 +622,6 @@ LongPrototype.neq = LongPrototype.notEquals; * Tests if this Long's value is less than the specified's. * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.lessThan = function lessThan(other) { return this.comp(/* validates */ other) < 0; @@ -668,7 +632,6 @@ LongPrototype.lessThan = function lessThan(other) { * @function * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.lt = LongPrototype.lessThan; @@ -676,7 +639,6 @@ LongPrototype.lt = LongPrototype.lessThan; * Tests if this Long's value is less than or equal the specified's. * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.lessThanOrEqual = function lessThanOrEqual(other) { return this.comp(/* validates */ other) <= 0; @@ -687,7 +649,6 @@ LongPrototype.lessThanOrEqual = function lessThanOrEqual(other) { * @function * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.lte = LongPrototype.lessThanOrEqual; @@ -695,7 +656,6 @@ LongPrototype.lte = LongPrototype.lessThanOrEqual; * Tests if this Long's value is greater than the specified's. * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.greaterThan = function greaterThan(other) { return this.comp(/* validates */ other) > 0; @@ -706,7 +666,6 @@ LongPrototype.greaterThan = function greaterThan(other) { * @function * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.gt = LongPrototype.greaterThan; @@ -714,7 +673,6 @@ LongPrototype.gt = LongPrototype.greaterThan; * Tests if this Long's value is greater than or equal the specified's. * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) { return this.comp(/* validates */ other) >= 0; @@ -725,7 +683,6 @@ LongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) { * @function * @param {!Long|number|string} other Other value * @returns {boolean} - * @expose */ LongPrototype.gte = LongPrototype.greaterThanOrEqual; @@ -734,7 +691,6 @@ LongPrototype.gte = LongPrototype.greaterThanOrEqual; * @param {!Long|number|string} other Other value * @returns {number} 0 if they are the same, 1 if the this is greater and -1 * if the given one is greater - * @expose */ LongPrototype.compare = function compare(other) { if (!isLong(other)) @@ -760,14 +716,12 @@ LongPrototype.compare = function compare(other) { * @param {!Long|number|string} other Other value * @returns {number} 0 if they are the same, 1 if the this is greater and -1 * if the given one is greater - * @expose */ LongPrototype.comp = LongPrototype.compare; /** * Negates this Long's value. * @returns {!Long} Negated Long - * @expose */ LongPrototype.negate = function negate() { if (!this.unsigned && this.eq(MIN_VALUE)) @@ -779,7 +733,6 @@ LongPrototype.negate = function negate() { * Negates this Long's value. This is an alias of {@link Long#negate}. * @function * @returns {!Long} Negated Long - * @expose */ LongPrototype.neg = LongPrototype.negate; @@ -787,7 +740,6 @@ LongPrototype.neg = LongPrototype.negate; * Returns the sum of this and the specified Long. * @param {!Long|number|string} addend Addend * @returns {!Long} Sum - * @expose */ LongPrototype.add = function add(addend) { if (!isLong(addend)) @@ -824,7 +776,6 @@ LongPrototype.add = function add(addend) { * Returns the difference of this and the specified Long. * @param {!Long|number|string} subtrahend Subtrahend * @returns {!Long} Difference - * @expose */ LongPrototype.subtract = function subtract(subtrahend) { if (!isLong(subtrahend)) @@ -837,7 +788,6 @@ LongPrototype.subtract = function subtract(subtrahend) { * @function * @param {!Long|number|string} subtrahend Subtrahend * @returns {!Long} Difference - * @expose */ LongPrototype.sub = LongPrototype.subtract; @@ -845,7 +795,6 @@ LongPrototype.sub = LongPrototype.subtract; * Returns the product of this and the specified Long. * @param {!Long|number|string} multiplier Multiplier * @returns {!Long} Product - * @expose */ LongPrototype.multiply = function multiply(multiplier) { if (this.isZero()) @@ -913,7 +862,6 @@ LongPrototype.multiply = function multiply(multiplier) { * @function * @param {!Long|number|string} multiplier Multiplier * @returns {!Long} Product - * @expose */ LongPrototype.mul = LongPrototype.multiply; @@ -922,7 +870,6 @@ LongPrototype.mul = LongPrototype.multiply; * unsigned if this Long is unsigned. * @param {!Long|number|string} divisor Divisor * @returns {!Long} Quotient - * @expose */ LongPrototype.divide = function divide(divisor) { if (!isLong(divisor)) @@ -1015,7 +962,6 @@ LongPrototype.divide = function divide(divisor) { * @function * @param {!Long|number|string} divisor Divisor * @returns {!Long} Quotient - * @expose */ LongPrototype.div = LongPrototype.divide; @@ -1023,7 +969,6 @@ LongPrototype.div = LongPrototype.divide; * Returns this Long modulo the specified. * @param {!Long|number|string} divisor Divisor * @returns {!Long} Remainder - * @expose */ LongPrototype.modulo = function modulo(divisor) { if (!isLong(divisor)) @@ -1036,14 +981,12 @@ LongPrototype.modulo = function modulo(divisor) { * @function * @param {!Long|number|string} divisor Divisor * @returns {!Long} Remainder - * @expose */ LongPrototype.mod = LongPrototype.modulo; /** * Returns the bitwise NOT of this Long. * @returns {!Long} - * @expose */ LongPrototype.not = function not() { return fromBits(~this.low, ~this.high, this.unsigned); @@ -1053,7 +996,6 @@ LongPrototype.not = function not() { * Returns the bitwise AND of this Long and the specified. * @param {!Long|number|string} other Other Long * @returns {!Long} - * @expose */ LongPrototype.and = function and(other) { if (!isLong(other)) @@ -1065,7 +1007,6 @@ LongPrototype.and = function and(other) { * Returns the bitwise OR of this Long and the specified. * @param {!Long|number|string} other Other Long * @returns {!Long} - * @expose */ LongPrototype.or = function or(other) { if (!isLong(other)) @@ -1077,7 +1018,6 @@ LongPrototype.or = function or(other) { * Returns the bitwise XOR of this Long and the given one. * @param {!Long|number|string} other Other Long * @returns {!Long} - * @expose */ LongPrototype.xor = function xor(other) { if (!isLong(other)) @@ -1089,7 +1029,6 @@ LongPrototype.xor = function xor(other) { * Returns this Long with bits shifted to the left by the given amount. * @param {number|!Long} numBits Number of bits * @returns {!Long} Shifted Long - * @expose */ LongPrototype.shiftLeft = function shiftLeft(numBits) { if (isLong(numBits)) @@ -1107,7 +1046,6 @@ LongPrototype.shiftLeft = function shiftLeft(numBits) { * @function * @param {number|!Long} numBits Number of bits * @returns {!Long} Shifted Long - * @expose */ LongPrototype.shl = LongPrototype.shiftLeft; @@ -1115,7 +1053,6 @@ LongPrototype.shl = LongPrototype.shiftLeft; * Returns this Long with bits arithmetically shifted to the right by the given amount. * @param {number|!Long} numBits Number of bits * @returns {!Long} Shifted Long - * @expose */ LongPrototype.shiftRight = function shiftRight(numBits) { if (isLong(numBits)) @@ -1133,7 +1070,6 @@ LongPrototype.shiftRight = function shiftRight(numBits) { * @function * @param {number|!Long} numBits Number of bits * @returns {!Long} Shifted Long - * @expose */ LongPrototype.shr = LongPrototype.shiftRight; @@ -1141,7 +1077,6 @@ LongPrototype.shr = LongPrototype.shiftRight; * Returns this Long with bits logically shifted to the right by the given amount. * @param {number|!Long} numBits Number of bits * @returns {!Long} Shifted Long - * @expose */ LongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) { if (isLong(numBits)) @@ -1166,14 +1101,12 @@ LongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) { * @function * @param {number|!Long} numBits Number of bits * @returns {!Long} Shifted Long - * @expose */ LongPrototype.shru = LongPrototype.shiftRightUnsigned; /** * Converts this Long to signed. * @returns {!Long} Signed long - * @expose */ LongPrototype.toSigned = function toSigned() { if (!this.unsigned) @@ -1184,10 +1117,56 @@ LongPrototype.toSigned = function toSigned() { /** * Converts this Long to unsigned. * @returns {!Long} Unsigned long - * @expose */ LongPrototype.toUnsigned = function toUnsigned() { if (this.unsigned) return this; return fromBits(this.low, this.high, true); }; + +/** + * Converts this Long to its byte representation. + * @param {boolean=} le Whether little or big endian, defaults to big endian + * @returns {!Array.} Byte representation + */ +LongPrototype.toBytes = function(le) { + return le ? this.toBytesLE() : this.toBytesBE(); +} + +/** + * Converts this Long to its little endian byte representation. + * @returns {!Array.} Little endian byte representation + */ +LongPrototype.toBytesLE = function() { + var hi = this.high, + lo = this.low; + return [ + lo & 0xff, + (lo >>> 8) & 0xff, + (lo >>> 16) & 0xff, + (lo >>> 24) & 0xff, + hi & 0xff, + (hi >>> 8) & 0xff, + (hi >>> 16) & 0xff, + (hi >>> 24) & 0xff + ]; +} + +/** + * Converts this Long to its big endian byte representation. + * @returns {!Array.} Big endian byte representation + */ +LongPrototype.toBytesBE = function() { + var hi = this.high, + lo = this.low; + return [ + (hi >>> 24) & 0xff, + (hi >>> 16) & 0xff, + (hi >>> 8) & 0xff, + hi & 0xff, + (lo >>> 24) & 0xff, + (lo >>> 16) & 0xff, + (lo >>> 8) & 0xff, + lo & 0xff + ]; +} diff --git a/tests/suite.js b/tests/suite.js index aaf3bbe..e95c529 100644 --- a/tests/suite.js +++ b/tests/suite.js @@ -51,6 +51,19 @@ var suite = { test.equal(Long.fromString("-zzzzzz", 36).toString(36), "-zzzzzz"); test.done(); }, + + "toBytes": function(test) { + var longVal = Long.fromBits(0x01234567, 0x12345678); + test.deepEqual(longVal.toBytesBE(), [ + 0x12, 0x34, 0x56, 0x78, + 0x01, 0x23, 0x45, 0x67 + ]); + test.deepEqual(longVal.toBytesLE(), [ + 0x67, 0x45, 0x23, 0x01, + 0x78, 0x56, 0x34, 0x12 + ]); + test.done(); + }, "unsigned": {