Browse Source

Add strict equalities in src/core/fonts.js

Jonas Jenwald 11 years ago
parent
commit
97b3eadbc4
  1. 62
      src/core/fonts.js

62
src/core/fonts.js

@ -2210,7 +2210,7 @@ var Font = (function FontClosure() {
this.toFontChar = []; this.toFontChar = [];
if (properties.type == 'Type3') { if (properties.type === 'Type3') {
for (charCode = 0; charCode < 256; charCode++) { for (charCode = 0; charCode < 256; charCode++) {
this.toFontChar[charCode] = (this.differences[charCode] || this.toFontChar[charCode] = (this.differences[charCode] ||
properties.defaultEncoding[charCode]); properties.defaultEncoding[charCode]);
@ -2240,13 +2240,13 @@ var Font = (function FontClosure() {
var isStandardFont = fontName in stdFontMap; var isStandardFont = fontName in stdFontMap;
fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName; fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;
this.bold = (fontName.search(/bold/gi) != -1); this.bold = (fontName.search(/bold/gi) !== -1);
this.italic = ((fontName.search(/oblique/gi) != -1) || this.italic = ((fontName.search(/oblique/gi) !== -1) ||
(fontName.search(/italic/gi) != -1)); (fontName.search(/italic/gi) !== -1));
// Use 'name' instead of 'fontName' here because the original // Use 'name' instead of 'fontName' here because the original
// name ArialBlack for example will be replaced by Helvetica. // name ArialBlack for example will be replaced by Helvetica.
this.black = (name.search(/Black/g) != -1); this.black = (name.search(/Black/g) !== -1);
// if at least one width is present, remeasure all chars when exists // if at least one width is present, remeasure all chars when exists
this.remeasure = Object.keys(this.widths).length > 0; this.remeasure = Object.keys(this.widths).length > 0;
@ -2295,7 +2295,7 @@ var Font = (function FontClosure() {
} }
// Some fonts might use wrong font types for Type1C or CIDFontType0C // Some fonts might use wrong font types for Type1C or CIDFontType0C
if (subtype == 'Type1C' && (type != 'Type1' && type != 'MMType1')) { if (subtype === 'Type1C' && (type !== 'Type1' && type !== 'MMType1')) {
// Some TrueType fonts by mistake claim Type1C // Some TrueType fonts by mistake claim Type1C
if (isTrueTypeFile(file)) { if (isTrueTypeFile(file)) {
subtype = 'TrueType'; subtype = 'TrueType';
@ -2303,7 +2303,7 @@ var Font = (function FontClosure() {
type = 'Type1'; type = 'Type1';
} }
} }
if (subtype == 'CIDFontType0C' && type != 'CIDFontType0') { if (subtype === 'CIDFontType0C' && type !== 'CIDFontType0') {
type = 'CIDFontType0'; type = 'CIDFontType0';
} }
// XXX: Temporarily change the type for open type so we trigger a warning. // XXX: Temporarily change the type for open type so we trigger a warning.
@ -2400,7 +2400,7 @@ var Font = (function FontClosure() {
function createOpenTypeHeader(sfnt, file, numTables) { function createOpenTypeHeader(sfnt, file, numTables) {
// Windows hates the Mac TrueType sfnt version number // Windows hates the Mac TrueType sfnt version number
if (sfnt == 'true') { if (sfnt === 'true') {
sfnt = string32(0x00010000); sfnt = string32(0x00010000);
} }
@ -2554,7 +2554,7 @@ var Font = (function FontClosure() {
var codeIndices = [codes[n].glyphId]; var codeIndices = [codes[n].glyphId];
++n; ++n;
var end = start; var end = start;
while (n < length && end + 1 == codes[n].fontCharCode) { while (n < length && end + 1 === codes[n].fontCharCode) {
codeIndices.push(codes[n].glyphId); codeIndices.push(codes[n].glyphId);
++end; ++end;
++n; ++n;
@ -2935,7 +2935,7 @@ var Font = (function FontClosure() {
var data = file.getBytes(length); var data = file.getBytes(length);
file.pos = previousPosition; file.pos = previousPosition;
if (tag == 'head') { if (tag === 'head') {
// clearing checksum adjustment // clearing checksum adjustment
data[8] = data[9] = data[10] = data[11] = 0; data[8] = data[9] = data[10] = data[11] = 0;
data[17] |= 0x20; //Set font optimized for cleartype flag data[17] |= 0x20; //Set font optimized for cleartype flag
@ -2986,7 +2986,7 @@ var Font = (function FontClosure() {
var offset = font.getInt32() >>> 0; var offset = font.getInt32() >>> 0;
var useTable = false; var useTable = false;
if (platformId == 1 && encodingId === 0) { if (platformId === 1 && encodingId === 0) {
useTable = true; useTable = true;
// Continue the loop since there still may be a higher priority // Continue the loop since there still may be a higher priority
// table. // table.
@ -3088,7 +3088,7 @@ var Font = (function FontClosure() {
offsetIndex = segment.offsetIndex; offsetIndex = segment.offsetIndex;
for (j = start; j <= end; j++) { for (j = start; j <= end; j++) {
if (j == 0xFFFF) { if (j === 0xFFFF) {
continue; continue;
} }
@ -3104,7 +3104,7 @@ var Font = (function FontClosure() {
}); });
} }
} }
} else if (format == 6) { } else if (format === 6) {
// Format 6 is a 2-bytes dense mapping, which means the font data // Format 6 is a 2-bytes dense mapping, which means the font data
// lives glue together even if they are pretty far in the unicode // lives glue together even if they are pretty far in the unicode
// table. (This looks weird, so I can have missed something), this // table. (This looks weird, so I can have missed something), this
@ -3412,7 +3412,7 @@ var Font = (function FontClosure() {
break; break;
case 0x00020000: case 0x00020000:
var numGlyphs = font.getUint16(); var numGlyphs = font.getUint16();
if (numGlyphs != maxpNumGlyphs) { if (numGlyphs !== maxpNumGlyphs) {
valid = false; valid = false;
break; break;
} }
@ -3488,8 +3488,8 @@ var Font = (function FontClosure() {
offset: font.getUint16() offset: font.getUint16()
}; };
// using only Macintosh and Windows platform/encoding names // using only Macintosh and Windows platform/encoding names
if ((r.platform == 1 && r.encoding === 0 && r.language === 0) || if ((r.platform === 1 && r.encoding === 0 && r.language === 0) ||
(r.platform == 3 && r.encoding == 1 && r.language == 0x409)) { (r.platform === 3 && r.encoding === 1 && r.language === 0x409)) {
records.push(r); records.push(r);
} }
} }
@ -3823,7 +3823,7 @@ var Font = (function FontClosure() {
} }
var dupFirstEntry = false; var dupFirstEntry = false;
if (properties.type == 'CIDFontType2' && properties.toUnicode && if (properties.type === 'CIDFontType2' && properties.toUnicode &&
properties.toUnicode[0] > '\u0000') { properties.toUnicode[0] > '\u0000') {
// oracle's defect (see 3427), duplicating first entry // oracle's defect (see 3427), duplicating first entry
dupFirstEntry = true; dupFirstEntry = true;
@ -4532,7 +4532,7 @@ var Font = (function FontClosure() {
charcode = chars.charCodeAt(i); charcode = chars.charCodeAt(i);
glyph = this.charToGlyph(charcode); glyph = this.charToGlyph(charcode);
glyphs.push(glyph); glyphs.push(glyph);
if (charcode == 0x20) { if (charcode === 0x20) {
glyphs.push(null); glyphs.push(null);
} }
} }
@ -5370,7 +5370,7 @@ var Type1Font = function Type1Font(name, file, properties) {
var headerBlockLength = properties.length1; var headerBlockLength = properties.length1;
var eexecBlockLength = properties.length2; var eexecBlockLength = properties.length2;
var pfbHeader = file.peekBytes(PFB_HEADER_SIZE); var pfbHeader = file.peekBytes(PFB_HEADER_SIZE);
var pfbHeaderPresent = pfbHeader[0] == 0x80 && pfbHeader[1] == 0x01; var pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;
if (pfbHeaderPresent) { if (pfbHeaderPresent) {
file.skip(PFB_HEADER_SIZE); file.skip(PFB_HEADER_SIZE);
headerBlockLength = (pfbHeader[5] << 24) | (pfbHeader[4] << 16) | headerBlockLength = (pfbHeader[5] << 24) | (pfbHeader[4] << 16) |
@ -5528,7 +5528,7 @@ Type1Font.prototype = {
// thought mapping names that aren't in the standard strings to .notdef // thought mapping names that aren't in the standard strings to .notdef
// was fine, however in issue818 when mapping them all to .notdef the // was fine, however in issue818 when mapping them all to .notdef the
// adieresis glyph no longer worked. // adieresis glyph no longer worked.
if (index == -1) { if (index === -1) {
index = 0; index = 0;
} }
charsetArray.push((index >> 8) & 0xff, index & 0xff); charsetArray.push((index >> 8) & 0xff, index & 0xff);
@ -5886,12 +5886,12 @@ var CFFParser = (function CFFParserClosure() {
var b1 = b >> 4; var b1 = b >> 4;
var b2 = b & 15; var b2 = b & 15;
if (b1 == eof) { if (b1 === eof) {
break; break;
} }
str += lookup[b1]; str += lookup[b1];
if (b2 == eof) { if (b2 === eof) {
break; break;
} }
str += lookup[b2]; str += lookup[b2];
@ -6011,7 +6011,7 @@ var CFFParser = (function CFFParserClosure() {
for (var j = 0; j < length;) { for (var j = 0; j < length;) {
var value = data[j++]; var value = data[j++];
var validationCommand = null; var validationCommand = null;
if (value == 12) { if (value === 12) {
var q = data[j++]; var q = data[j++];
if (q === 0) { if (q === 0) {
// The CFF specification state that the 'dotsection' command // The CFF specification state that the 'dotsection' command
@ -6029,7 +6029,7 @@ var CFFParser = (function CFFParserClosure() {
stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16)) >> 16; stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16)) >> 16;
j += 2; j += 2;
stackSize++; stackSize++;
} else if (value == 14) { } else if (value === 14) {
if (stackSize >= 4) { if (stackSize >= 4) {
stackSize -= 4; stackSize -= 4;
if (SEAC_ANALYSIS_ENABLED) { if (SEAC_ANALYSIS_ENABLED) {
@ -6046,12 +6046,12 @@ var CFFParser = (function CFFParserClosure() {
-((value - 251) << 8) - data[j] - 108); -((value - 251) << 8) - data[j] - 108);
j++; j++;
stackSize++; stackSize++;
} else if (value == 255) { // number (32 bit) } else if (value === 255) { // number (32 bit)
stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16) | stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16) |
(data[j + 2] << 8) | data[j + 3]) / 65536; (data[j + 2] << 8) | data[j + 3]) / 65536;
j += 4; j += 4;
stackSize++; stackSize++;
} else if (value == 19 || value == 20) { } else if (value === 19 || value === 20) {
hints += stackSize >> 1; hints += stackSize >> 1;
j += (hints + 7) >> 3; // skipping right amount of hints flag data j += (hints + 7) >> 3; // skipping right amount of hints flag data
stackSize = 0; stackSize = 0;
@ -6144,10 +6144,10 @@ var CFFParser = (function CFFParserClosure() {
if (pos === 0) { if (pos === 0) {
return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE,
ISOAdobeCharset); ISOAdobeCharset);
} else if (pos == 1) { } else if (pos === 1) {
return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT,
ExpertCharset); ExpertCharset);
} else if (pos == 2) { } else if (pos === 2) {
return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET,
ExpertSubsetCharset); ExpertSubsetCharset);
} }
@ -6215,14 +6215,14 @@ var CFFParser = (function CFFParserClosure() {
} }
} }
if (pos === 0 || pos == 1) { if (pos === 0 || pos === 1) {
predefined = true; predefined = true;
format = pos; format = pos;
var baseEncoding = pos ? Encodings.ExpertEncoding : var baseEncoding = pos ? Encodings.ExpertEncoding :
Encodings.StandardEncoding; Encodings.StandardEncoding;
for (i = 0, ii = charset.length; i < ii; i++) { for (i = 0, ii = charset.length; i < ii; i++) {
var index = baseEncoding.indexOf(charset[i]); var index = baseEncoding.indexOf(charset[i]);
if (index != -1) { if (index !== -1) {
encoding[index] = i; encoding[index] = i;
} }
} }
@ -6749,7 +6749,7 @@ var CFFCompiler = (function CFFCompilerClosure() {
return output.data; return output.data;
}, },
encodeNumber: function CFFCompiler_encodeNumber(value) { encodeNumber: function CFFCompiler_encodeNumber(value) {
if (parseFloat(value) == parseInt(value, 10) && !isNaN(value)) { // isInt if (parseFloat(value) === parseInt(value, 10) && !isNaN(value)) { // isInt
return this.encodeInteger(value); return this.encodeInteger(value);
} else { } else {
return this.encodeFloat(value); return this.encodeFloat(value);

Loading…
Cancel
Save