src/sha_dev.js
function safeAdd_64_2(x, y)
	{
		var lsw, msw, lowOrder, highOrder;

		lsw = (x.lowOrder & 0xFFFF) + (y.lowOrder & 0xFFFF);
		msw = (x.lowOrder >>> 16) + (y.lowOrder >>> 16) + (lsw >>> 16);
		lowOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);

		lsw = (x.highOrder & 0xFFFF) + (y.highOrder & 0xFFFF) + (msw >>> 16);
		msw = (x.highOrder >>> 16) + (y.highOrder >>> 16) + (lsw >>> 16);
		highOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);

		return new Int_64(highOrder, lowOrder);
	}
function safeAdd_64_2(x, y)
	{
		var lsw, msw, lowOrder, highOrder;

		lsw = (x.lowOrder & 0xFFFF) + (y.lowOrder & 0xFFFF);
		msw = (x.lowOrder >>> 16) + (y.lowOrder >>> 16) + (lsw >>> 16);
		lowOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);

		lsw = (x.highOrder & 0xFFFF) + (y.highOrder & 0xFFFF) + (msw >>> 16);
		msw = (x.highOrder >>> 16) + (y.highOrder >>> 16) + (lsw >>> 16);
		highOrder = ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);

		return new Int_64(highOrder, lowOrder);
	}
function safeAdd_64_2 ( x , y ) { var lsw , msw , lowOrder , highOrder ; lsw = ( x . lowOrder & 0xFFFF ) + ( y . lowOrder & 0xFFFF ) ; msw = ( x . lowOrder >>> 16 ) + ( y . lowOrder >>> 16 ) + ( lsw >>> 16 ) ; lowOrder = ( ( msw & 0xFFFF ) << 16 ) | ( lsw & 0xFFFF ) ; lsw = ( x . highOrder & 0xFFFF ) + ( y . highOrder & 0xFFFF ) + ( msw >>> 16 ) ; msw = ( x . highOrder >>> 16 ) + ( y . highOrder >>> 16 ) + ( lsw >>> 16 ) ; highOrder = ( ( msw & 0xFFFF ) << 16 ) | ( lsw & 0xFFFF ) ; return new Int_64 ( highOrder , lowOrder ) ; }
Add two 64-bit integers, wrapping at 2^64. This uses 16-bit operations
internally to work around bugs in some JS interpreters.

@private
@param {Int_64} x The first 64-bit integer argument to be added
@param {Int_64} y The second 64-bit integer argument to be added
@return {Int_64} The sum of x + y
Add two 64 - bit integers wrapping at 2^64 . This uses 16 - bit operations internally to work around bugs in some JS interpreters .