Merge pull request #5121 from timvandermeij/strict-equalities-images
Use strict equalities in src/core/{image, jpx, jpg, jbig2}.js
This commit is contained in:
commit
c86836afc0
@ -258,7 +258,7 @@ var PDFImage = (function PDFImageClosure() {
|
|||||||
|
|
||||||
var computedLength = ((width + 7) >> 3) * height;
|
var computedLength = ((width + 7) >> 3) * height;
|
||||||
var actualLength = imgArray.byteLength;
|
var actualLength = imgArray.byteLength;
|
||||||
var haveFullData = computedLength == actualLength;
|
var haveFullData = computedLength === actualLength;
|
||||||
var data, i;
|
var data, i;
|
||||||
|
|
||||||
if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {
|
if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {
|
||||||
@ -416,7 +416,7 @@ var PDFImage = (function PDFImageClosure() {
|
|||||||
sh = smask.height;
|
sh = smask.height;
|
||||||
alphaBuf = new Uint8Array(sw * sh);
|
alphaBuf = new Uint8Array(sw * sh);
|
||||||
smask.fillGrayBuffer(alphaBuf);
|
smask.fillGrayBuffer(alphaBuf);
|
||||||
if (sw != width || sh != height) {
|
if (sw !== width || sh !== height) {
|
||||||
alphaBuf = PDFImage.resize(alphaBuf, smask.bpc, 1, sw, sh, width,
|
alphaBuf = PDFImage.resize(alphaBuf, smask.bpc, 1, sw, sh, width,
|
||||||
height);
|
height);
|
||||||
}
|
}
|
||||||
@ -433,7 +433,7 @@ var PDFImage = (function PDFImageClosure() {
|
|||||||
alphaBuf[i] = 255 - alphaBuf[i];
|
alphaBuf[i] = 255 - alphaBuf[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sw != width || sh != height) {
|
if (sw !== width || sh !== height) {
|
||||||
alphaBuf = PDFImage.resize(alphaBuf, mask.bpc, 1, sw, sh, width,
|
alphaBuf = PDFImage.resize(alphaBuf, mask.bpc, 1, sw, sh, width,
|
||||||
height);
|
height);
|
||||||
}
|
}
|
||||||
@ -602,7 +602,7 @@ var PDFImage = (function PDFImageClosure() {
|
|||||||
|
|
||||||
fillGrayBuffer: function PDFImage_fillGrayBuffer(buffer) {
|
fillGrayBuffer: function PDFImage_fillGrayBuffer(buffer) {
|
||||||
var numComps = this.numComps;
|
var numComps = this.numComps;
|
||||||
if (numComps != 1) {
|
if (numComps !== 1) {
|
||||||
error('Reading gray scale from a color image: ' + numComps);
|
error('Reading gray scale from a color image: ' + numComps);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -477,7 +477,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|||||||
firstS += deltaFirstS;
|
firstS += deltaFirstS;
|
||||||
var currentS = firstS;
|
var currentS = firstS;
|
||||||
do {
|
do {
|
||||||
var currentT = (stripSize == 1 ? 0 :
|
var currentT = (stripSize === 1 ? 0 :
|
||||||
decodeInteger(contextCache, 'IAIT', decoder)); // 6.4.9
|
decodeInteger(contextCache, 'IAIT', decoder)); // 6.4.9
|
||||||
var t = stripSize * stripT + currentT;
|
var t = stripSize * stripT + currentT;
|
||||||
var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);
|
var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);
|
||||||
@ -582,7 +582,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|||||||
var referredToCount = (referredFlags >> 5) & 7;
|
var referredToCount = (referredFlags >> 5) & 7;
|
||||||
var retainBits = [referredFlags & 31];
|
var retainBits = [referredFlags & 31];
|
||||||
var position = start + 6;
|
var position = start + 6;
|
||||||
if (referredFlags == 7) {
|
if (referredFlags === 7) {
|
||||||
referredToCount = readUint32(data, position - 1) & 0x1FFFFFFF;
|
referredToCount = readUint32(data, position - 1) & 0x1FFFFFFF;
|
||||||
position += 3;
|
position += 3;
|
||||||
var bytes = (referredToCount + 7) >> 3;
|
var bytes = (referredToCount + 7) >> 3;
|
||||||
@ -590,7 +590,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|||||||
while (--bytes > 0) {
|
while (--bytes > 0) {
|
||||||
retainBits.push(data[position++]);
|
retainBits.push(data[position++]);
|
||||||
}
|
}
|
||||||
} else if (referredFlags == 5 || referredFlags == 6) {
|
} else if (referredFlags === 5 || referredFlags === 6) {
|
||||||
error('JBIG2 error: invalid referred-to flags');
|
error('JBIG2 error: invalid referred-to flags');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -600,8 +600,8 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|||||||
var referredTo = [];
|
var referredTo = [];
|
||||||
var i, ii;
|
var i, ii;
|
||||||
for (i = 0; i < referredToCount; i++) {
|
for (i = 0; i < referredToCount; i++) {
|
||||||
var number = (referredToSegmentNumberSize == 1 ? data[position] :
|
var number = (referredToSegmentNumberSize === 1 ? data[position] :
|
||||||
(referredToSegmentNumberSize == 2 ? readUint16(data, position) :
|
(referredToSegmentNumberSize === 2 ? readUint16(data, position) :
|
||||||
readUint32(data, position)));
|
readUint32(data, position)));
|
||||||
referredTo.push(number);
|
referredTo.push(number);
|
||||||
position += referredToSegmentNumberSize;
|
position += referredToSegmentNumberSize;
|
||||||
@ -616,7 +616,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|||||||
segmentHeader.length = readUint32(data, position);
|
segmentHeader.length = readUint32(data, position);
|
||||||
position += 4;
|
position += 4;
|
||||||
|
|
||||||
if (segmentHeader.length == 0xFFFFFFFF) {
|
if (segmentHeader.length === 0xFFFFFFFF) {
|
||||||
// 7.2.7 Segment data length, unknown segment length
|
// 7.2.7 Segment data length, unknown segment length
|
||||||
if (segmentType === 38) { // ImmediateGenericRegion
|
if (segmentType === 38) { // ImmediateGenericRegion
|
||||||
var genericRegionInfo = readRegionSegmentInformation(data, position);
|
var genericRegionInfo = readRegionSegmentInformation(data, position);
|
||||||
@ -639,12 +639,12 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|||||||
while (j < searchPatternLength && searchPattern[j] === data[i + j]) {
|
while (j < searchPatternLength && searchPattern[j] === data[i + j]) {
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
if (j == searchPatternLength) {
|
if (j === searchPatternLength) {
|
||||||
segmentHeader.length = i + searchPatternLength;
|
segmentHeader.length = i + searchPatternLength;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (segmentHeader.length == 0xFFFFFFFF) {
|
if (segmentHeader.length === 0xFFFFFFFF) {
|
||||||
error('JBIG2 error: segment end was not found');
|
error('JBIG2 error: segment end was not found');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -671,7 +671,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|||||||
segment.end = position;
|
segment.end = position;
|
||||||
}
|
}
|
||||||
segments.push(segment);
|
segments.push(segment);
|
||||||
if (segmentHeader.type == 51) {
|
if (segmentHeader.type === 51) {
|
||||||
break; // end of file is found
|
break; // end of file is found
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -826,7 +826,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|||||||
resolutionX: readUint32(data, position + 8),
|
resolutionX: readUint32(data, position + 8),
|
||||||
resolutionY: readUint32(data, position + 12)
|
resolutionY: readUint32(data, position + 12)
|
||||||
};
|
};
|
||||||
if (pageInfo.height == 0xFFFFFFFF) {
|
if (pageInfo.height === 0xFFFFFFFF) {
|
||||||
delete pageInfo.height;
|
delete pageInfo.height;
|
||||||
}
|
}
|
||||||
var pageSegmentFlags = data[position + 16];
|
var pageSegmentFlags = data[position + 16];
|
||||||
@ -866,10 +866,10 @@ var Jbig2Image = (function Jbig2ImageClosure() {
|
|||||||
|
|
||||||
function parseJbig2(data, start, end) {
|
function parseJbig2(data, start, end) {
|
||||||
var position = start;
|
var position = start;
|
||||||
if (data[position] != 0x97 || data[position + 1] != 0x4A ||
|
if (data[position] !== 0x97 || data[position + 1] !== 0x4A ||
|
||||||
data[position + 2] != 0x42 || data[position + 3] != 0x32 ||
|
data[position + 2] !== 0x42 || data[position + 3] !== 0x32 ||
|
||||||
data[position + 4] != 0x0D || data[position + 5] != 0x0A ||
|
data[position + 4] !== 0x0D || data[position + 5] !== 0x0A ||
|
||||||
data[position + 6] != 0x1A || data[position + 7] != 0x0A) {
|
data[position + 6] !== 0x1A || data[position + 7] !== 0x0A) {
|
||||||
error('JBIG2 error: invalid header');
|
error('JBIG2 error: invalid header');
|
||||||
}
|
}
|
||||||
var header = {};
|
var header = {};
|
||||||
|
@ -116,7 +116,7 @@ var JpegImage = (function jpegImage() {
|
|||||||
return (bitsData >> bitsCount) & 1;
|
return (bitsData >> bitsCount) & 1;
|
||||||
}
|
}
|
||||||
bitsData = data[offset++];
|
bitsData = data[offset++];
|
||||||
if (bitsData == 0xFF) {
|
if (bitsData === 0xFF) {
|
||||||
var nextByte = data[offset++];
|
var nextByte = data[offset++];
|
||||||
if (nextByte) {
|
if (nextByte) {
|
||||||
throw 'unexpected marker: ' +
|
throw 'unexpected marker: ' +
|
||||||
@ -262,7 +262,7 @@ var JpegImage = (function jpegImage() {
|
|||||||
} else {
|
} else {
|
||||||
r--;
|
r--;
|
||||||
if (r === 0) {
|
if (r === 0) {
|
||||||
successiveACState = successiveACState == 2 ? 3 : 0;
|
successiveACState = successiveACState === 2 ? 3 : 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -322,7 +322,7 @@ var JpegImage = (function jpegImage() {
|
|||||||
|
|
||||||
var mcu = 0, marker;
|
var mcu = 0, marker;
|
||||||
var mcuExpected;
|
var mcuExpected;
|
||||||
if (componentsLength == 1) {
|
if (componentsLength === 1) {
|
||||||
mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;
|
mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;
|
||||||
} else {
|
} else {
|
||||||
mcuExpected = mcusPerLine * frame.mcusPerColumn;
|
mcuExpected = mcusPerLine * frame.mcusPerColumn;
|
||||||
@ -339,7 +339,7 @@ var JpegImage = (function jpegImage() {
|
|||||||
}
|
}
|
||||||
eobrun = 0;
|
eobrun = 0;
|
||||||
|
|
||||||
if (componentsLength == 1) {
|
if (componentsLength === 1) {
|
||||||
component = components[0];
|
component = components[0];
|
||||||
for (n = 0; n < resetInterval; n++) {
|
for (n = 0; n < resetInterval; n++) {
|
||||||
decodeBlock(component, decodeFn, mcu);
|
decodeBlock(component, decodeFn, mcu);
|
||||||
@ -628,12 +628,12 @@ var JpegImage = (function jpegImage() {
|
|||||||
var quantizationTables = [];
|
var quantizationTables = [];
|
||||||
var huffmanTablesAC = [], huffmanTablesDC = [];
|
var huffmanTablesAC = [], huffmanTablesDC = [];
|
||||||
var fileMarker = readUint16();
|
var fileMarker = readUint16();
|
||||||
if (fileMarker != 0xFFD8) { // SOI (Start of Image)
|
if (fileMarker !== 0xFFD8) { // SOI (Start of Image)
|
||||||
throw 'SOI not found';
|
throw 'SOI not found';
|
||||||
}
|
}
|
||||||
|
|
||||||
fileMarker = readUint16();
|
fileMarker = readUint16();
|
||||||
while (fileMarker != 0xFFD9) { // EOI (End of image)
|
while (fileMarker !== 0xFFD9) { // EOI (End of image)
|
||||||
var i, j, l;
|
var i, j, l;
|
||||||
switch(fileMarker) {
|
switch(fileMarker) {
|
||||||
case 0xFFE0: // APP0 (Application Specific)
|
case 0xFFE0: // APP0 (Application Specific)
|
||||||
@ -799,7 +799,7 @@ var JpegImage = (function jpegImage() {
|
|||||||
offset += processed;
|
offset += processed;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (data[offset - 3] == 0xFF &&
|
if (data[offset - 3] === 0xFF &&
|
||||||
data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {
|
data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {
|
||||||
// could be incorrect encoding -- last 0xFF byte of the previous
|
// could be incorrect encoding -- last 0xFF byte of the previous
|
||||||
// block was eaten by the encoder
|
// block was eaten by the encoder
|
||||||
@ -883,7 +883,7 @@ var JpegImage = (function jpegImage() {
|
|||||||
if (this.adobe && this.adobe.transformCode) {
|
if (this.adobe && this.adobe.transformCode) {
|
||||||
// The adobe transform marker overrides any previous setting
|
// The adobe transform marker overrides any previous setting
|
||||||
return true;
|
return true;
|
||||||
} else if (this.numComponents == 3) {
|
} else if (this.numComponents === 3) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
@ -88,7 +88,7 @@ var JpxImage = (function JpxImageClosure() {
|
|||||||
newByte = stream.getByte();
|
newByte = stream.getByte();
|
||||||
var code = (oldByte << 8) | newByte;
|
var code = (oldByte << 8) | newByte;
|
||||||
// Image and tile size (SIZ)
|
// Image and tile size (SIZ)
|
||||||
if (code == 0xFF51) {
|
if (code === 0xFF51) {
|
||||||
stream.skip(4);
|
stream.skip(4);
|
||||||
var Xsiz = stream.getInt32() >>> 0; // Byte 4
|
var Xsiz = stream.getInt32() >>> 0; // Byte 4
|
||||||
var Ysiz = stream.getInt32() >>> 0; // Byte 8
|
var Ysiz = stream.getInt32() >>> 0; // Byte 8
|
||||||
@ -179,13 +179,13 @@ var JpxImage = (function JpxImageClosure() {
|
|||||||
default:
|
default:
|
||||||
throw new Error('JPX Error: Invalid SQcd value ' + sqcd);
|
throw new Error('JPX Error: Invalid SQcd value ' + sqcd);
|
||||||
}
|
}
|
||||||
qcd.noQuantization = (spqcdSize == 8);
|
qcd.noQuantization = (spqcdSize === 8);
|
||||||
qcd.scalarExpounded = scalarExpounded;
|
qcd.scalarExpounded = scalarExpounded;
|
||||||
qcd.guardBits = sqcd >> 5;
|
qcd.guardBits = sqcd >> 5;
|
||||||
spqcds = [];
|
spqcds = [];
|
||||||
while (j < length + position) {
|
while (j < length + position) {
|
||||||
var spqcd = {};
|
var spqcd = {};
|
||||||
if (spqcdSize == 8) {
|
if (spqcdSize === 8) {
|
||||||
spqcd.epsilon = data[j++] >> 3;
|
spqcd.epsilon = data[j++] >> 3;
|
||||||
spqcd.mu = 0;
|
spqcd.mu = 0;
|
||||||
} else {
|
} else {
|
||||||
@ -231,13 +231,13 @@ var JpxImage = (function JpxImageClosure() {
|
|||||||
default:
|
default:
|
||||||
throw new Error('JPX Error: Invalid SQcd value ' + sqcd);
|
throw new Error('JPX Error: Invalid SQcd value ' + sqcd);
|
||||||
}
|
}
|
||||||
qcc.noQuantization = (spqcdSize == 8);
|
qcc.noQuantization = (spqcdSize === 8);
|
||||||
qcc.scalarExpounded = scalarExpounded;
|
qcc.scalarExpounded = scalarExpounded;
|
||||||
qcc.guardBits = sqcd >> 5;
|
qcc.guardBits = sqcd >> 5;
|
||||||
spqcds = [];
|
spqcds = [];
|
||||||
while (j < (length + position)) {
|
while (j < (length + position)) {
|
||||||
spqcd = {};
|
spqcd = {};
|
||||||
if (spqcdSize == 8) {
|
if (spqcdSize === 8) {
|
||||||
spqcd.epsilon = data[j++] >> 3;
|
spqcd.epsilon = data[j++] >> 3;
|
||||||
spqcd.mu = 0;
|
spqcd.mu = 0;
|
||||||
} else {
|
} else {
|
||||||
@ -550,7 +550,7 @@ var JpxImage = (function JpxImageClosure() {
|
|||||||
var codeblocks = subband.codeblocks;
|
var codeblocks = subband.codeblocks;
|
||||||
for (var j = 0, jj = codeblocks.length; j < jj; j++) {
|
for (var j = 0, jj = codeblocks.length; j < jj; j++) {
|
||||||
var codeblock = codeblocks[j];
|
var codeblock = codeblocks[j];
|
||||||
if (codeblock.precinctNumber != precinctNumber) {
|
if (codeblock.precinctNumber !== precinctNumber) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
precinctCodeblocks.push(codeblock);
|
precinctCodeblocks.push(codeblock);
|
||||||
@ -752,7 +752,7 @@ var JpxImage = (function JpxImageClosure() {
|
|||||||
buffer = (buffer << 8) | b;
|
buffer = (buffer << 8) | b;
|
||||||
bufferSize += 8;
|
bufferSize += 8;
|
||||||
}
|
}
|
||||||
if (b == 0xFF) {
|
if (b === 0xFF) {
|
||||||
skipNextBit = true;
|
skipNextBit = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1259,7 +1259,7 @@ var JpxImage = (function JpxImageClosure() {
|
|||||||
level.index = index;
|
level.index = index;
|
||||||
var value = level.items[index];
|
var value = level.items[index];
|
||||||
|
|
||||||
if (value == 0xFF) {
|
if (value === 0xFF) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1337,8 +1337,8 @@ var JpxImage = (function JpxImageClosure() {
|
|||||||
this.width = width;
|
this.width = width;
|
||||||
this.height = height;
|
this.height = height;
|
||||||
|
|
||||||
this.contextLabelTable = (subband == 'HH' ? HHContextLabel :
|
this.contextLabelTable = (subband === 'HH' ? HHContextLabel :
|
||||||
(subband == 'HL' ? HLContextLabel : LLAndLHContextsLabel));
|
(subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel));
|
||||||
|
|
||||||
var coefficientCount = width * height;
|
var coefficientCount = width * height;
|
||||||
|
|
||||||
@ -1576,8 +1576,8 @@ var JpxImage = (function JpxImageClosure() {
|
|||||||
var checkAllEmpty = i0 + 3 < height;
|
var checkAllEmpty = i0 + 3 < height;
|
||||||
for (var j = 0; j < width; j++) {
|
for (var j = 0; j < width; j++) {
|
||||||
var index0 = indexBase + j;
|
var index0 = indexBase + j;
|
||||||
// using the property: labels[neighborsSignificance[index]] == 0
|
// using the property: labels[neighborsSignificance[index]] === 0
|
||||||
// when neighborsSignificance[index] == 0
|
// when neighborsSignificance[index] === 0
|
||||||
var allEmpty = (checkAllEmpty &&
|
var allEmpty = (checkAllEmpty &&
|
||||||
processingFlags[index0] === 0 &&
|
processingFlags[index0] === 0 &&
|
||||||
processingFlags[index0 + oneRowDown] === 0 &&
|
processingFlags[index0 + oneRowDown] === 0 &&
|
||||||
@ -1646,7 +1646,7 @@ var JpxImage = (function JpxImageClosure() {
|
|||||||
(decoder.readBit(contexts, UNIFORM_CONTEXT) << 2) |
|
(decoder.readBit(contexts, UNIFORM_CONTEXT) << 2) |
|
||||||
(decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |
|
(decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |
|
||||||
decoder.readBit(contexts, UNIFORM_CONTEXT);
|
decoder.readBit(contexts, UNIFORM_CONTEXT);
|
||||||
if (symbol != 0xA) {
|
if (symbol !== 0xA) {
|
||||||
throw new Error('JPX Error: Invalid segmentation symbol');
|
throw new Error('JPX Error: Invalid segmentation symbol');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user