浏览代码

EXRLoader: Clean up.

Mr.doob 7 年之前
父节点
当前提交
9be3890682
共有 1 个文件被更改,包括 380 次插入212 次删除
  1. 380 212
      examples/js/loaders/EXRLoader.js

+ 380 - 212
examples/js/loaders/EXRLoader.js

@@ -106,493 +106,657 @@ THREE.EXRLoader.prototype._parser = function ( buffer ) {
 	const INT16_SIZE = 2;
 	const INT8_SIZE = 1;
 
-	function reverseLutFromBitmap(bitmap, lut) {
+	function reverseLutFromBitmap( bitmap, lut ) {
+
 		var k = 0;
 
-		for (var i = 0; i < USHORT_RANGE; ++i) {
-			if ((i == 0) || (bitmap[i >> 3] & (1 << (i & 7)))) {
-				lut[k++] = i;
+		for ( var i = 0; i < USHORT_RANGE; ++ i ) {
+
+			if ( ( i == 0 ) || ( bitmap[ i >> 3 ] & ( 1 << ( i & 7 ) ) ) ) {
+
+				lut[ k ++ ] = i;
+
 			}
+
 		}
 
 		var n = k - 1;
 
-		while (k < USHORT_RANGE) lut[k++] = 0;
+		while ( k < USHORT_RANGE ) lut[ k ++ ] = 0;
 
 		return n;
+
 	}
 
-	function hufClearDecTable(hdec) {
-		for (var i = 0; i < HUF_DECSIZE; i++) {
-			hdec[i] = {}
-			hdec[i].len = 0;
-			hdec[i].lit = 0;
-			hdec[i].p = null;
+	function hufClearDecTable( hdec ) {
+
+		for ( var i = 0; i < HUF_DECSIZE; i ++ ) {
+
+			hdec[ i ] = {}
+			hdec[ i ].len = 0;
+			hdec[ i ].lit = 0;
+			hdec[ i ].p = null;
+
 		}
+
 	}
 
 	const getBitsReturn = { l: 0, c: 0, lc: 0 };
-	function getBits(nBits, c, lc, uInt8Array, inOffset) {
-		while (lc < nBits) {
-			c = (c << 8) | parseUint8Array(uInt8Array, inOffset);
+
+	function getBits( nBits, c, lc, uInt8Array, inOffset ) {
+
+		while ( lc < nBits ) {
+
+			c = ( c << 8 ) | parseUint8Array( uInt8Array, inOffset );
 			lc += 8;
+
 		}
 
 		lc -= nBits;
 
-		getBitsReturn.l = (c >> lc) & ((1 << nBits) - 1);
+		getBitsReturn.l = ( c >> lc ) & ( ( 1 << nBits ) - 1 );
 		getBitsReturn.c = c;
 		getBitsReturn.lc = lc;
 	}
 
-	const hufTableBuffer = new Array(59);
-	function hufCanonicalCodeTable(hcode) {
-		for (var i = 0; i <= 58; ++i) hufTableBuffer[i] = 0;
+	const hufTableBuffer = new Array( 59 );
 
-		for (var i = 0; i < HUF_ENCSIZE; ++i) hufTableBuffer[hcode[i]] += 1;
+	function hufCanonicalCodeTable( hcode ) {
+
+		for ( var i = 0; i <= 58; ++ i ) hufTableBuffer[ i ] = 0;
+		for ( var i = 0; i < HUF_ENCSIZE; ++ i ) hufTableBuffer[ hcode[ i ] ] += 1;
 
 		var c = 0;
 
-		for (var i = 58; i > 0; --i) {
-			var nc = ((c + hufTableBuffer[i]) >> 1);
-			hufTableBuffer[i] = c;
+		for ( var i = 58; i > 0; -- i ) {
+
+			var nc = ( ( c + hufTableBuffer[ i ] ) >> 1 );
+			hufTableBuffer[ i ] = c;
 			c = nc;
+
 		}
 
-		for (var i = 0; i < HUF_ENCSIZE; ++i) {
-			var l = hcode[i];
+		for ( var i = 0; i < HUF_ENCSIZE; ++ i ) {
+
+			var l = hcode[ i ];
+			if ( l > 0 ) hcode[ i ] = l | ( hufTableBuffer[ l ] ++ << 6 );
 
-			if (l > 0) hcode[i] = l | (hufTableBuffer[l]++ << 6);
 		}
+
 	}
 
-	function hufUnpackEncTable(uInt8Array, inDataView, inOffset, ni, im, iM, hcode) {
+	function hufUnpackEncTable( uInt8Array, inDataView, inOffset, ni, im, iM, hcode ) {
+
 		var p = inOffset;
 		var c = 0;
 		var lc = 0;
 
-		for (; im <= iM; im++) {
-			if (p.value - inOffset.value > ni) {
-				return false;
-			}
+		for ( ; im <= iM; im ++ ) {
+
+			if ( p.value - inOffset.value > ni ) return false;
+
+			getBits( 6, c, lc, uInt8Array, p );
 
-			getBits(6, c, lc, uInt8Array, p);
 			var l = getBitsReturn.l;
 			c = getBitsReturn.c;
 			lc = getBitsReturn.lc;
-			hcode[im] = l;
 
-			if (l == LONG_ZEROCODE_RUN) {
-				if (p.value - inOffset.value > ni) {
+			hcode[ im ] = l;
+
+			if ( l == LONG_ZEROCODE_RUN ) {
+
+				if ( p.value - inOffset.value > ni ) {
+
 					throw 'Something wrong with hufUnpackEncTable';
+
 				}
 
-				getBits(8, c, lc, uInt8Array, p);
+				getBits( 8, c, lc, uInt8Array, p );
+
 				var zerun = getBitsReturn.l + SHORTEST_LONG_RUN;
 				c = getBitsReturn.c;
 				lc = getBitsReturn.lc;
 
-				if (im + zerun > iM + 1) {
+				if ( im + zerun > iM + 1 ) {
+
 					throw 'Something wrong with hufUnpackEncTable';
+
 				}
 
-				while (zerun--) hcode[im++] = 0;
+				while ( zerun -- ) hcode[ im ++ ] = 0;
+
+				im --;
+
+			} else if ( l >= SHORT_ZEROCODE_RUN ) {
 
-				im--;
-			} else if (l >= SHORT_ZEROCODE_RUN) {
 				var zerun = l - SHORT_ZEROCODE_RUN + 2;
 
-				if (im + zerun > iM + 1) {
+				if ( im + zerun > iM + 1 ) {
+
 					throw 'Something wrong with hufUnpackEncTable';
+
 				}
 
-				while (zerun--) hcode[im++] = 0;
+				while ( zerun -- ) hcode[ im ++ ] = 0;
+
+				im --;
 
-				im--;
 			}
+
 		}
 
-		hufCanonicalCodeTable(hcode);
+		hufCanonicalCodeTable( hcode );
+
 	}
 
-	function hufLength(code) { return code & 63; }
+	function hufLength( code ) { return code & 63; }
+
+	function hufCode( code ) { return code >> 6; }
+
+	function hufBuildDecTable( hcode, im, iM, hdecod ) {
 
-	function hufCode(code) { return code >> 6; }
+		for ( ; im <= iM; im ++ ) {
 
-	function hufBuildDecTable(hcode, im, iM, hdecod) {
-		for (; im <= iM; im++) {
-			var c = hufCode(hcode[im]);
-			var l = hufLength(hcode[im]);
+			var c = hufCode( hcode[ im ] );
+			var l = hufLength( hcode[ im ] );
+
+			if ( c >> l ) {
 
-			if (c >> l) {
 				throw 'Invalid table entry';
+
 			}
 
-			if (l > HUF_DECBITS) {
-				var pl = hdecod[(c >> (l - HUF_DECBITS))];
+			if ( l > HUF_DECBITS ) {
+
+				var pl = hdecod[ ( c >> ( l - HUF_DECBITS ) ) ];
+
+				if ( pl.len ) {
 
-				if (pl.len) {
 					throw 'Invalid table entry';
+
 				}
 
-				pl.lit++;
+				pl.lit ++;
+
+				if ( pl.p ) {
 
-				if (pl.p) {
 					var p = pl.p;
-					pl.p = new Array(pl.lit);
+					pl.p = new Array( pl.lit );
+
+					for ( var i = 0; i < pl.lit - 1; ++ i ) {
+
+						pl.p[ i ] = p[ i ];
 
-					for (var i = 0; i < pl.lit - 1; ++i) {
-						pl.p[i] = p[i];
 					}
+
 				} else {
-					pl.p = new Array(1);
+
+					pl.p = new Array( 1 );
+
 				}
 
-				pl.p[pl.lit - 1] = im;
-			} else if (l) {
+				pl.p[ pl.lit - 1 ] = im;
+
+			} else if ( l ) {
+
 				var plOffset = 0;
 
-				for (var i = 1 << (HUF_DECBITS - l); i > 0; i--) {
-					var pl = hdecod[(c << (HUF_DECBITS - l)) + plOffset];
+				for ( var i = 1 << ( HUF_DECBITS - l ); i > 0; i -- ) {
+
+					var pl = hdecod[ ( c << ( HUF_DECBITS - l ) ) + plOffset ];
+
+					if ( pl.len || pl.p ) {
 
-					if (pl.len || pl.p) {
 						throw 'Invalid table entry';
+
 					}
 
 					pl.len = l;
 					pl.lit = im;
 
-					plOffset++;
+					plOffset ++;
+
 				}
+
 			}
+
 		}
 
 		return true;
+
 	}
 
 	const getCharReturn = { c: 0, lc: 0 };
-	function getChar(c, lc, uInt8Array, inOffset) {
-		c = (c << 8) | parseUint8Array(uInt8Array, inOffset);
+
+	function getChar( c, lc, uInt8Array, inOffset ) {
+
+		c = ( c << 8 ) | parseUint8Array( uInt8Array, inOffset );
 		lc += 8;
 
 		getCharReturn.c = c;
 		getCharReturn.lc = lc;
+
 	}
 
 	const getCodeReturn = { c: 0, lc: 0 };
-	function getCode(po, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outBufferOffset, outBufferEndOffset) {
-		if (po == rlc) {
-			if (lc < 8) {
-				getChar(c, lc, uInt8Array, inOffset);
+
+	function getCode( po, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outBufferOffset, outBufferEndOffset ) {
+
+		if ( po == rlc ) {
+
+			if ( lc < 8 ) {
+
+				getChar( c, lc, uInt8Array, inOffset );
 				c = getCharReturn.c;
 				lc = getCharReturn.lc;
+
 			}
 
 			lc -= 8;
 
-			var cs = (c >> lc);
+			var cs = ( c >> lc );
+
+			if ( out + cs > oe ) {
 
-			if (out + cs > oe) {
 				throw 'Issue with getCode';
+
 			}
 
-			var s = out[-1];
+			var s = out[ - 1 ];
+
+			while ( cs -- > 0 ) {
+
+				outBuffer[ outBufferOffset.value ++ ] = s;
 
-			while (cs-- > 0) {
-				outBuffer[outBufferOffset.value++] = s;
 			}
-		} else if (outBufferOffset.value < outBufferEndOffset) {
-			outBuffer[outBufferOffset.value++] = po;
+
+		} else if ( outBufferOffset.value < outBufferEndOffset ) {
+
+			outBuffer[ outBufferOffset.value ++ ] = po;
+
 		} else {
+
 			throw 'Issue with getCode';
+
 		}
 
 		getCodeReturn.c = c;
 		getCodeReturn.lc = lc;
+
 	}
 
 	var NBITS = 16;
-	var A_OFFSET = 1 << (NBITS - 1);
-	var M_OFFSET = 1 << (NBITS - 1);
-	var MOD_MASK = (1 << NBITS) - 1;
+	var A_OFFSET = 1 << ( NBITS - 1 );
+	var M_OFFSET = 1 << ( NBITS - 1 );
+	var MOD_MASK = ( 1 << NBITS ) - 1;
 
-	function UInt16(value) {
-		return (value & 0xFFFF);
-	};
+	function UInt16( value ) {
 
-	function Int16(value) {
-		var ref = UInt16(value);
-		return (ref > 0x7FFF) ? ref - 0x10000 : ref;
-	};
+		return ( value & 0xFFFF );
+
+	}
+
+	function Int16( value ) {
+
+		var ref = UInt16( value );
+		return ( ref > 0x7FFF ) ? ref - 0x10000 : ref;
+
+	}
 
 	const wdec14Return = { a: 0, b: 0 };
-	function wdec14(l, h) {
-		var ls = Int16(l);
-		var hs = Int16(h);
+
+	function wdec14( l, h ) {
+
+		var ls = Int16( l );
+		var hs = Int16( h );
 
 		var hi = hs;
-		var ai = ls + (hi & 1) + (hi >> 1);
+		var ai = ls + ( hi & 1 ) + ( hi >> 1 );
 
 		var as = ai;
 		var bs = ai - hi;
 
 		wdec14Return.a = as;
 		wdec14Return.b = bs;
+
 	}
 
-	function wav2Decode(j, buffer, nx, ox, ny, oy, mx) {
-		var n = (nx > ny) ? ny : nx;
+	function wav2Decode( j, buffer, nx, ox, ny, oy, mx ) {
+
+		var n = ( nx > ny ) ? ny : nx;
 		var p = 1;
 		var p2;
 
-		while (p <= n) p <<= 1;
+		while ( p <= n ) p <<= 1;
 
 		p >>= 1;
 		p2 = p;
 		p >>= 1;
 
-		while (p >= 1) {
+		while ( p >= 1 ) {
+
 			var py = 0;
-			var ey = py + oy * (ny - p2);
+			var ey = py + oy * ( ny - p2 );
 			var oy1 = oy * p;
 			var oy2 = oy * p2;
 			var ox1 = ox * p;
 			var ox2 = ox * p2;
 			var i00, i01, i10, i11;
 
-			for (; py <= ey; py += oy2) {
+			for ( ; py <= ey; py += oy2 ) {
+
 				var px = py;
-				var ex = py + ox * (nx - p2);
+				var ex = py + ox * ( nx - p2 );
+
+				for ( ; px <= ex; px += ox2 ) {
 
-				for (; px <= ex; px += ox2) {
 					var p01 = px + ox1;
 					var p10 = px + oy1;
 					var p11 = p10 + ox1;
 
-					wdec14(buffer[px + j], buffer[p10 + j]);
+					wdec14( buffer[ px + j ], buffer[ p10 + j ] );
+
 					i00 = wdec14Return.a;
 					i10 = wdec14Return.b;
 
-					wdec14(buffer[p01 + j], buffer[p11 + j]);
+					wdec14( buffer[ p01 + j ], buffer[ p11 + j ] );
+
 					i01 = wdec14Return.a;
 					i11 = wdec14Return.b;
 
-					wdec14(i00, i01);
-					buffer[px + j] = wdec14Return.a;
-					buffer[p01 + j] = wdec14Return.b;
+					wdec14( i00, i01 );
+
+					buffer[ px + j ] = wdec14Return.a;
+					buffer[ p01 + j ] = wdec14Return.b;
+
+					wdec14( i10, i11 );
+
+					buffer[ p10 + j ] = wdec14Return.a;
+					buffer[ p11 + j ] = wdec14Return.b;
 
-					wdec14(i10, i11);
-					buffer[p10 + j] = wdec14Return.a;
-					buffer[p11 + j] = wdec14Return.b;
 				}
 
-				if (nx & p) {
+				if ( nx & p ) {
+
 					var p10 = px + oy1;
 
-					wdec14(buffer[px + j], buffer[p10 + j]);
+					wdec14( buffer[ px + j ], buffer[ p10 + j ] );
+
 					i00 = wdec14Return.a;
-					buffer[p10 + j] = wdec14Return.b;
+					buffer[ p10 + j ] = wdec14Return.b;
+
+					buffer[ px + j ] = i00;
 
-					buffer[px + j] = i00;
 				}
+
 			}
 
-			if (ny & p) {
+			if ( ny & p ) {
+
 				var px = py;
-				var ex = py + ox * (nx - p2);
+				var ex = py + ox * ( nx - p2 );
+
+				for ( ; px <= ex; px += ox2 ) {
 
-				for (; px <= ex; px += ox2) {
 					var p01 = px + ox1;
 
-					wdec14(buffer[px + j], buffer[p01 + j]);
+					wdec14( buffer[ px + j ], buffer[ p01 + j ] );
+
 					i00 = wdec14Return.a;
-					buffer[p01 + j] = wdec14Return.b;
+					buffer[ p01 + j ] = wdec14Return.b;
+
+					buffer[ px + j ] = i00;
 
-					buffer[px + j] = i00;
 				}
+
 			}
 
 			p2 = p;
 			p >>= 1;
+
 		}
 
 		return py;
+
 	}
 
-	function hufDecode(encodingTable, decodingTable, uInt8Array, inDataView, inOffset, ni, rlc, no, outBuffer, outOffset) {
+	function hufDecode( encodingTable, decodingTable, uInt8Array, inDataView, inOffset, ni, rlc, no, outBuffer, outOffset ) {
+
 		var c = 0;
 		var lc = 0;
 		var outBufferEndOffset = no;
-		var inOffsetEnd = Math.trunc(inOffset.value + (ni + 7) / 8);
+		var inOffsetEnd = Math.trunc( inOffset.value + ( ni + 7 ) / 8 );
+
+		while ( inOffset.value < inOffsetEnd ) {
+
+			getChar( c, lc, uInt8Array, inOffset );
 
-		while (inOffset.value < inOffsetEnd) {
-			getChar(c, lc, uInt8Array, inOffset);
 			c = getCharReturn.c;
 			lc = getCharReturn.lc;
 
-			while (lc >= HUF_DECBITS) {
-				var index = (c >> (lc - HUF_DECBITS)) & HUF_DECMASK;
-				var pl = decodingTable[index];
+			while ( lc >= HUF_DECBITS ) {
+
+				var index = ( c >> ( lc - HUF_DECBITS ) ) & HUF_DECMASK;
+				var pl = decodingTable[ index ];
+
+				if ( pl.len ) {
 
-				if (pl.len) {
 					lc -= pl.len;
-					getCode(pl.lit, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset);
+
+					getCode( pl.lit, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset );
+
 					c = getCodeReturn.c;
 					lc = getCodeReturn.lc;
+
 				} else {
-					if (!pl.p) {
+
+					if ( ! pl.p ) {
+
 						throw 'hufDecode issues';
+
 					}
 
 					var j;
 
-					for (j = 0; j < pl.lit; j++) {
-						var l = hufLength(encodingTable[pl.p[j]]);
+					for ( j = 0; j < pl.lit; j ++ ) {
+
+						var l = hufLength( encodingTable[ pl.p[ j ] ] );
+
+						while ( lc < l && inOffset.value < inOffsetEnd ) {
+
+							getChar( c, lc, uInt8Array, inOffset );
 
-						while (lc < l && inOffset.value < inOffsetEnd) {
-							getChar(c, lc, uInt8Array, inOffset);
 							c = getCharReturn.c;
 							lc = getCharReturn.lc;
+
 						}
 
-						if (lc >= l) {
-							if (hufCode(encodingTable[pl.p[j]]) ==
-								((c >> (lc - l)) & ((1 << l) - 1))) {
+						if ( lc >= l ) {
+
+							if ( hufCode( encodingTable[ pl.p[ j ] ] ) == ( ( c >> ( lc - l ) ) & ( ( 1 << l ) - 1 ) ) ) {
 
 								lc -= l;
-								getCode(pl.p[j], rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset);
+
+								getCode( pl.p[ j ], rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset );
+
 								c = getCodeReturn.c;
 								lc = getCodeReturn.lc;
+
 								break;
+
 							}
+
 						}
+
 					}
 
-					if (j == pl.lit) {
+					if ( j == pl.lit ) {
+
 						throw 'hufDecode issues';
+
 					}
+
 				}
+
 			}
+
 		}
 
-		var i = (8 - ni) & 7;
+		var i = ( 8 - ni ) & 7;
+
 		c >>= i;
 		lc -= i;
 
-		while (lc > 0) {
-			var pl = decodingTable[(c << (HUF_DECBITS - lc)) & HUF_DECMASK];
+		while ( lc > 0 ) {
+
+			var pl = decodingTable[ ( c << ( HUF_DECBITS - lc ) ) & HUF_DECMASK ];
+
+			if ( pl.len ) {
 
-			if (pl.len) {
 				lc -= pl.len;
-				getCode(pl.lit, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset);
+
+				getCode( pl.lit, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset );
+
 				c = getCodeReturn.c;
 				lc = getCodeReturn.lc;
+
 			} else {
+
 				throw 'hufDecode issues';
+
 			}
+
 		}
 
 		return true;
+
 	}
 
-	function hufUncompress(uInt8Array, inDataView, inOffset, nCompressed, outBuffer, outOffset, nRaw) {
+	function hufUncompress( uInt8Array, inDataView, inOffset, nCompressed, outBuffer, outOffset, nRaw ) {
+
 		var initialInOffset = inOffset.value;
 
-		var im = parseUint32(inDataView, inOffset);
-		var iM = parseUint32(inDataView, inOffset);
+		var im = parseUint32( inDataView, inOffset );
+		var iM = parseUint32( inDataView, inOffset );
+
 		inOffset.value += 4;
-		var nBits = parseUint32(inDataView, inOffset);
+
+		var nBits = parseUint32( inDataView, inOffset );
+
 		inOffset.value += 4;
 
-		if (im < 0 || im >= HUF_ENCSIZE || iM < 0 || iM >= HUF_ENCSIZE) {
+		if ( im < 0 || im >= HUF_ENCSIZE || iM < 0 || iM >= HUF_ENCSIZE ) {
+
 			throw 'Something wrong with HUF_ENCSIZE';
+
 		}
 
-		var freq = new Array(HUF_ENCSIZE);
-		var hdec = new Array(HUF_DECSIZE);
+		var freq = new Array( HUF_ENCSIZE );
+		var hdec = new Array( HUF_DECSIZE );
+
+		hufClearDecTable( hdec );
 
-		hufClearDecTable(hdec);
+		var ni = nCompressed - ( inOffset.value - initialInOffset );
 
-		var ni = nCompressed - (inOffset.value - initialInOffset);
+		hufUnpackEncTable( uInt8Array, inDataView, inOffset, ni, im, iM, freq );
 
-		hufUnpackEncTable(uInt8Array, inDataView, inOffset, ni, im, iM, freq);
+		if ( nBits > 8 * ( nCompressed - ( inOffset.value - initialInOffset ) ) ) {
 
-		if (nBits > 8 * (nCompressed - (inOffset.value - initialInOffset))) {
 			throw 'Something wrong with hufUncompress';
+
 		}
 
-		hufBuildDecTable(freq, im, iM, hdec);
+		hufBuildDecTable( freq, im, iM, hdec );
+
+		hufDecode( freq, hdec, uInt8Array, inDataView, inOffset, nBits, iM, nRaw, outBuffer, outOffset );
 
-		hufDecode(freq, hdec, uInt8Array, inDataView, inOffset, nBits, iM, nRaw, outBuffer, outOffset);
 	}
 
-	function applyLut(lut, data, nData) {
-		for (var i = 0; i < nData; ++i) {
-			data[i] = lut[data[i]];
+	function applyLut( lut, data, nData ) {
+
+		for ( var i = 0; i < nData; ++ i ) {
+
+			data[ i ] = lut[ data[ i ] ];
+
 		}
+
 	}
 
-	function decompressPIZ(outBuffer, outOffset, uInt8Array, inDataView, inOffset, tmpBufSize, num_channels, exrChannelInfos, dataWidth, num_lines) {
-		var bitmap = new Uint8Array(BITMAP_SIZE);
+	function decompressPIZ( outBuffer, outOffset, uInt8Array, inDataView, inOffset, tmpBufSize, num_channels, exrChannelInfos, dataWidth, num_lines ) {
+
+		var bitmap = new Uint8Array( BITMAP_SIZE );
+
+		var minNonZero = parseUint16( inDataView, inOffset );
+		var maxNonZero = parseUint16( inDataView, inOffset );
 
-		var minNonZero = parseUint16(inDataView, inOffset);
-		var maxNonZero = parseUint16(inDataView, inOffset);
+		if ( maxNonZero >= BITMAP_SIZE ) {
 
-		if (maxNonZero >= BITMAP_SIZE) {
 			throw 'Something is wrong with PIZ_COMPRESSION BITMAP_SIZE'
+
 		}
 
-		if (minNonZero <= maxNonZero) {
-			for (var i = 0; i < maxNonZero - minNonZero + 1; i++) {
-				bitmap[i + minNonZero] = parseUint8(inDataView, inOffset);
+		if ( minNonZero <= maxNonZero ) {
+
+			for ( var i = 0; i < maxNonZero - minNonZero + 1; i ++ ) {
+
+				bitmap[ i + minNonZero ] = parseUint8( inDataView, inOffset );
+
 			}
+
 		}
 
-		var lut = new Uint16Array(USHORT_RANGE);
-		var maxValue = reverseLutFromBitmap(bitmap, lut);
+		var lut = new Uint16Array( USHORT_RANGE );
+		var maxValue = reverseLutFromBitmap( bitmap, lut );
 
-		var length = parseUint32(inDataView, inOffset);
+		var length = parseUint32( inDataView, inOffset );
 
-		hufUncompress(uInt8Array, inDataView, inOffset, length, outBuffer, outOffset, tmpBufSize);
+		hufUncompress( uInt8Array, inDataView, inOffset, length, outBuffer, outOffset, tmpBufSize );
 
-		var pizChannelData = new Array(num_channels);
+		var pizChannelData = new Array( num_channels );
 
 		var outBufferEnd = 0
 
-		for (var i = 0; i < num_channels; i++) {
-			var exrChannelInfo = exrChannelInfos[i];
+		for ( var i = 0; i < num_channels; i ++ ) {
+
+			var exrChannelInfo = exrChannelInfos[ i ];
 
 			var pixelSize = 2; // assumes HALF_FLOAT
 
-			pizChannelData[i] = {};
-			pizChannelData[i]['start'] = outBufferEnd;
-			pizChannelData[i]['end'] = pizChannelData[i]['start'];
-			pizChannelData[i]['nx'] = dataWidth;
-			pizChannelData[i]['ny'] = num_lines;
-			pizChannelData[i]['size'] = 1;
+			pizChannelData[ i ] = {};
+			pizChannelData[ i ][ 'start' ] = outBufferEnd;
+			pizChannelData[ i ][ 'end' ] = pizChannelData[ i ][ 'start' ];
+			pizChannelData[ i ][ 'nx' ] = dataWidth;
+			pizChannelData[ i ][ 'ny' ] = num_lines;
+			pizChannelData[ i ][ 'size' ] = 1;
+
+			outBufferEnd += pizChannelData[ i ].nx * pizChannelData[ i ].ny * pizChannelData[ i ].size;
 
-			outBufferEnd += pizChannelData[i].nx * pizChannelData[i].ny * pizChannelData[i].size;
 		}
 
 		var fooOffset = 0;
 
-		for (var i = 0; i < num_channels; i++) {
-			for (var j = 0; j < pizChannelData[i].size; ++j) {
+		for ( var i = 0; i < num_channels; i ++ ) {
+
+			for ( var j = 0; j < pizChannelData[ i ].size; ++ j ) {
+
 				fooOffset += wav2Decode(
-				j + fooOffset,
-				outBuffer,
-				pizChannelData[i].nx,
-				pizChannelData[i].size,
-				pizChannelData[i].ny,
-				pizChannelData[i].nx * pizChannelData[i].size,
-				maxValue
+					j + fooOffset,
+					outBuffer,
+					pizChannelData[ i ].nx,
+					pizChannelData[ i ].size,
+					pizChannelData[ i ].ny,
+					pizChannelData[ i ].nx * pizChannelData[ i ].size,
+					maxValue
 				);
+
 			}
+
 		}
 
-		applyLut(lut, outBuffer, outBufferEnd);
+		applyLut( lut, outBuffer, outBufferEnd );
 
 		return true;
+
 	}
 
 	function parseNullTerminatedString( buffer, offset ) {
@@ -807,39 +971,39 @@ THREE.EXRLoader.prototype._parser = function ( buffer ) {
 
 	function parseValue( dataView, buffer, offset, type, size ) {
 
-		if ( type == 'string' || type == 'iccProfile' ) {
+		if ( type === 'string' || type === 'iccProfile' ) {
 
 			return parseFixedLengthString( buffer, offset, size );
 
-		} else if ( type == 'chlist' ) {
+		} else if ( type === 'chlist' ) {
 
 			return parseChlist( dataView, buffer, offset, size );
 
-		} else if ( type == 'chromaticities' ) {
+		} else if ( type === 'chromaticities' ) {
 
 			return parseChromaticities( dataView, offset );
 
-		} else if ( type == 'compression' ) {
+		} else if ( type === 'compression' ) {
 
 			return parseCompression( dataView, offset );
 
-		} else if ( type == 'box2i' ) {
+		} else if ( type === 'box2i' ) {
 
 			return parseBox2i( dataView, offset );
 
-		} else if ( type == 'lineOrder' ) {
+		} else if ( type === 'lineOrder' ) {
 
 			return parseLineOrder( dataView, offset );
 
-		} else if ( type == 'float' ) {
+		} else if ( type === 'float' ) {
 
 			return parseFloat32( dataView, offset );
 
-		} else if ( type == 'v2f' ) {
+		} else if ( type === 'v2f' ) {
 
 			return parseV2f( dataView, offset );
 
-		} else if ( type == 'int' ) {
+		} else if ( type === 'int' ) {
 
 			return parseUint32( dataView, offset );
 
@@ -890,9 +1054,13 @@ THREE.EXRLoader.prototype._parser = function ( buffer ) {
 
 	var dataWindowHeight = EXRHeader.dataWindow.yMax + 1;
 	var scanlineBlockSize = 1; // 1 for NO_COMPRESSION
-	if (EXRHeader.compression == 'PIZ_COMPRESSION') {
+
+	if ( EXRHeader.compression === 'PIZ_COMPRESSION' ) {
+
 		scanlineBlockSize = 32;
+
 	}
+
 	var numBlocks = dataWindowHeight / scanlineBlockSize;
 
 	for ( var i = 0; i < numBlocks; i ++ ) {
@@ -916,7 +1084,7 @@ THREE.EXRLoader.prototype._parser = function ( buffer ) {
 		A: 3
 	};
 
-	if (EXRHeader.compression == 'NO_COMPRESSION') {
+	if ( EXRHeader.compression === 'NO_COMPRESSION' ) {
 
 		for ( var y = 0; y < height; y ++ ) {
 
@@ -927,14 +1095,14 @@ THREE.EXRLoader.prototype._parser = function ( buffer ) {
 
 				var cOff = channelOffsets[ EXRHeader.channels[ channelID ].name ];
 
-				if ( EXRHeader.channels[ channelID ].pixelType == 1 ) {
+				if ( EXRHeader.channels[ channelID ].pixelType === 1 ) {
 
 					// HALF
 					for ( var x = 0; x < width; x ++ ) {
 
 						var val = parseFloat16( bufferDataView, offset );
 
-						byteArray[ ( ( (height - y_scanline) * ( width * numChannels ) ) + ( x * numChannels ) ) + cOff ] = val;
+						byteArray[ ( ( ( height - y_scanline ) * ( width * numChannels ) ) + ( x * numChannels ) ) + cOff ] = val;
 
 					}
 
@@ -948,18 +1116,18 @@ THREE.EXRLoader.prototype._parser = function ( buffer ) {
 
 		}
 
-	} else if (EXRHeader.compression == 'PIZ_COMPRESSION') {
+	} else if ( EXRHeader.compression === 'PIZ_COMPRESSION' ) {
 
-		for ( var scanlineBlockIdx = 0; scanlineBlockIdx < height / scanlineBlockSize; scanlineBlockIdx++ ) {
+		for ( var scanlineBlockIdx = 0; scanlineBlockIdx < height / scanlineBlockSize; scanlineBlockIdx ++ ) {
 
 			var line_no = parseUint32( bufferDataView, offset );
 			var data_len = parseUint32( bufferDataView, offset );
 
-			var tmpBufferSize = width * scanlineBlockSize * (EXRHeader.channels.length * BYTES_PER_HALF);
-			var tmpBuffer = new Uint16Array(tmpBufferSize);
+			var tmpBufferSize = width * scanlineBlockSize * ( EXRHeader.channels.length * BYTES_PER_HALF );
+			var tmpBuffer = new Uint16Array( tmpBufferSize );
 			var tmpOffset = { value: 0 };
 
-			decompressPIZ(tmpBuffer, tmpOffset, uInt8Array, bufferDataView, offset, tmpBufferSize, numChannels, EXRHeader.channels, width, scanlineBlockSize);
+			decompressPIZ( tmpBuffer, tmpOffset, uInt8Array, bufferDataView, offset, tmpBufferSize, numChannels, EXRHeader.channels, width, scanlineBlockSize );
 
 			for ( var line_y = 0; line_y < scanlineBlockSize; line_y ++ ) {
 
@@ -967,16 +1135,16 @@ THREE.EXRLoader.prototype._parser = function ( buffer ) {
 
 					var cOff = channelOffsets[ EXRHeader.channels[ channelID ].name ];
 
-					if ( EXRHeader.channels[ channelID ].pixelType == 1 ) {
+					if ( EXRHeader.channels[ channelID ].pixelType === 1 ) {
 
 						// HALF
 						for ( var x = 0; x < width; x ++ ) {
 
-							var val = decodeFloat16(tmpBuffer[ (channelID * (scanlineBlockSize * width)) + (line_y * width) + x ]);
+							var val = decodeFloat16( tmpBuffer[ ( channelID * ( scanlineBlockSize * width ) ) + ( line_y * width ) + x ] );
 
-							var true_y = line_y + (scanlineBlockIdx * scanlineBlockSize);
+							var true_y = line_y + ( scanlineBlockIdx * scanlineBlockSize );
 
-							byteArray[ ( ( (height - true_y) * ( width * numChannels ) ) + ( x * numChannels ) ) + cOff ] = val;
+							byteArray[ ( ( ( height - true_y ) * ( width * numChannels ) ) + ( x * numChannels ) ) + cOff ] = val;
 
 						}