diff --git a/src/core/cmap.js b/src/core/cmap.js index be729f7f5..3dd5f95fb 100644 --- a/src/core/cmap.js +++ b/src/core/cmap.js @@ -240,8 +240,8 @@ class CMap { } mapBfRangeToArray(low, high, array) { - let i = 0, - ii = array.length; + const ii = array.length; + let i = 0; while (low <= high && i < ii) { this._map[low] = array[i++]; ++low; diff --git a/src/core/core_utils.js b/src/core/core_utils.js index 2ae7c3318..f754e68c7 100644 --- a/src/core/core_utils.js +++ b/src/core/core_utils.js @@ -110,8 +110,8 @@ function toRomanNumerals(number, lowerCase = false) { Number.isInteger(number) && number > 0, "The number should be a positive integer." ); - let pos, - romanBuf = []; + const romanBuf = []; + let pos; // Thousands while (number >= 1000) { number -= 1000; diff --git a/src/core/crypto.js b/src/core/crypto.js index 0846260a8..e1af838ab 100644 --- a/src/core/crypto.js +++ b/src/core/crypto.js @@ -996,8 +996,8 @@ class AESBaseCipher { const sourceLength = data.length; let buffer = this.buffer, bufferLength = this.bufferPosition; - let result = [], - iv = this.iv; + const result = []; + let iv = this.iv; for (let i = 0; i < sourceLength; ++i) { buffer[bufferLength] = data[i]; @@ -1050,8 +1050,8 @@ class AESBaseCipher { decryptBlock(data, finalize, iv = null) { const sourceLength = data.length; - let buffer = this.buffer, - bufferLength = this.bufferPosition; + const buffer = this.buffer; + let bufferLength = this.bufferPosition; // If an IV is not supplied, wait for IV values. They are at the start // of the stream. if (iv) { diff --git a/src/core/evaluator.js b/src/core/evaluator.js index 799344be0..b221c0171 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -2284,8 +2284,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { baseDict, properties ) { - let xref = this.xref, - cidToGidBytes; + const xref = this.xref; + let cidToGidBytes; // 9.10.2 var toUnicode = dict.get("ToUnicode") || baseDict.get("ToUnicode"); var toUnicodePromise = toUnicode @@ -2413,15 +2413,13 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { _buildSimpleFontToUnicode(properties, forceGlyphs = false) { assert(!properties.composite, "Must be a simple font."); - let toUnicode = [], - charcode, - glyphName; + const toUnicode = []; const encoding = properties.defaultEncoding.slice(); const baseEncodingName = properties.baseEncodingName; // Merge in the differences array. const differences = properties.differences; - for (charcode in differences) { - glyphName = differences[charcode]; + for (const charcode in differences) { + const glyphName = differences[charcode]; if (glyphName === ".notdef") { // Skip .notdef to prevent rendering errors, e.g. boxes appearing // where there should be spaces (fixes issue5256.pdf). @@ -2430,9 +2428,9 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { encoding[charcode] = glyphName; } const glyphsUnicodeMap = getGlyphsUnicode(); - for (charcode in encoding) { + for (const charcode in encoding) { // a) Map the character code to a character name. - glyphName = encoding[charcode]; + let glyphName = encoding[charcode]; // b) Look up the character name in the Adobe Glyph List (see the // Bibliography) to obtain the corresponding Unicode value. if (glyphName === "") { diff --git a/src/core/font_renderer.js b/src/core/font_renderer.js index 672bc620f..03599d635 100644 --- a/src/core/font_renderer.js +++ b/src/core/font_renderer.js @@ -427,8 +427,8 @@ var FontRendererFactory = (function FontRendererFactoryClosure() { if (font.isCFFCIDFont) { const fdIndex = font.fdSelect.getFDIndex(glyphId); if (fdIndex >= 0 && fdIndex < font.fdArray.length) { - let fontDict = font.fdArray[fdIndex], - subrs; + const fontDict = font.fdArray[fdIndex]; + let subrs; if (fontDict.privateDict && fontDict.privateDict.subrsIndex) { subrs = fontDict.privateDict.subrsIndex.objects; } diff --git a/src/core/jbig2.js b/src/core/jbig2.js index 331afcb8f..2eafb1e73 100644 --- a/src/core/jbig2.js +++ b/src/core/jbig2.js @@ -987,21 +987,15 @@ var Jbig2Image = (function Jbig2ImageClosure() { decodingContext ); // Divide collective bitmap into patterns. - let patterns = [], - i = 0, - patternBitmap, - xMin, - xMax, - y; - while (i <= maxPatternIndex) { - patternBitmap = []; - xMin = patternWidth * i; - xMax = xMin + patternWidth; - for (y = 0; y < patternHeight; y++) { + const patterns = []; + for (let i = 0; i <= maxPatternIndex; i++) { + const patternBitmap = []; + const xMin = patternWidth * i; + const xMax = xMin + patternWidth; + for (let y = 0; y < patternHeight; y++) { patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax)); } patterns.push(patternBitmap); - i++; } return patterns; } @@ -1075,9 +1069,8 @@ var Jbig2Image = (function Jbig2ImageClosure() { } } // Annex C. Gray-scale Image Decoding Procedure. - let grayScaleBitPlanes = [], - mmrInput, - bitmap; + const grayScaleBitPlanes = []; + let mmrInput, bitmap; if (mmr) { // MMR bit planes are in one continuous stream. Only EOFB codes indicate // the end of each bitmap, so EOFBs must be decoded. @@ -1523,8 +1516,8 @@ var Jbig2Image = (function Jbig2ImageClosure() { } function parseJbig2(data) { - let position = 0, - end = data.length; + const end = data.length; + let position = 0; if ( data[position] !== 0x97 || @@ -1899,11 +1892,8 @@ var Jbig2Image = (function Jbig2ImageClosure() { } // Create Huffman tree. this.rootNode = new HuffmanTreeNode(null); - let i, - ii = lines.length, - line; - for (i = 0; i < ii; i++) { - line = lines[i]; + for (let i = 0, ii = lines.length; i < ii; i++) { + const line = lines[i]; if (line.prefixLength > 0) { this.rootNode.buildTree(line, line.prefixLength - 1); } @@ -1916,15 +1906,14 @@ var Jbig2Image = (function Jbig2ImageClosure() { }, assignPrefixCodes(lines) { // Annex B.3 Assigning the prefix codes. - let linesLength = lines.length, - prefixLengthMax = 0, - i; - for (i = 0; i < linesLength; i++) { + const linesLength = lines.length; + let prefixLengthMax = 0; + for (let i = 0; i < linesLength; i++) { prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength); } const histogram = new Uint32Array(prefixLengthMax + 1); - for (i = 0; i < linesLength; i++) { + for (let i = 0; i < linesLength; i++) { histogram[lines[i].prefixLength]++; } let currentLength = 1, @@ -2253,9 +2242,7 @@ var Jbig2Image = (function Jbig2ImageClosure() { throw new Jbig2Error(`standard table B.${number} does not exist`); } - let length = lines.length, - i; - for (i = 0; i < length; i++) { + for (let i = 0, ii = lines.length; i < ii; i++) { lines[i] = new HuffmanLine(lines[i]); } table = new HuffmanTable(lines, true); @@ -2310,12 +2297,9 @@ var Jbig2Image = (function Jbig2ImageClosure() { function getCustomHuffmanTable(index, referredTo, customTables) { // Returns a Tables segment that has been earlier decoded. // See 7.4.2.1.6 (symbol dictionary) or 7.4.3.1.6 (text region). - let currentIndex = 0, - i, - ii = referredTo.length, - table; - for (i = 0; i < ii; i++) { - table = customTables[referredTo[i]]; + let currentIndex = 0; + for (let i = 0, ii = referredTo.length; i < ii; i++) { + const table = customTables[referredTo[i]]; if (table) { if (index === currentIndex) { return table; @@ -2336,11 +2320,9 @@ var Jbig2Image = (function Jbig2ImageClosure() { // 7.4.3.1.7 Symbol ID Huffman table decoding // Read code lengths for RUNCODEs 0...34. - let codes = [], - i, - codeLength; - for (i = 0; i <= 34; i++) { - codeLength = reader.readBits(4); + const codes = []; + for (let i = 0; i <= 34; i++) { + const codeLength = reader.readBits(4); codes.push(new HuffmanLine([i, codeLength, 0, 0])); } // Assign Huffman codes for RUNCODEs. @@ -2349,8 +2331,8 @@ var Jbig2Image = (function Jbig2ImageClosure() { // Read a Huffman code using the assignment above. // Interpret the RUNCODE codes and the additional bits (if any). codes.length = 0; - for (i = 0; i < numberOfSymbols; ) { - codeLength = runCodesTable.decode(reader); + for (let i = 0; i < numberOfSymbols; ) { + const codeLength = runCodesTable.decode(reader); if (codeLength >= 32) { let repeatedLength, numberOfRepeats, j; switch (codeLength) { @@ -2532,14 +2514,11 @@ var Jbig2Image = (function Jbig2ImageClosure() { } function readUncompressedBitmap(reader, width, height) { - let bitmap = [], - x, - y, - row; - for (y = 0; y < height; y++) { - row = new Uint8Array(width); + const bitmap = []; + for (let y = 0; y < height; y++) { + const row = new Uint8Array(width); bitmap.push(row); - for (x = 0; x < width; x++) { + for (let x = 0; x < width; x++) { row[x] = reader.readBit(); } reader.byteAlign(); @@ -2558,19 +2537,15 @@ var Jbig2Image = (function Jbig2ImageClosure() { EndOfBlock: endOfBlock, }; const decoder = new CCITTFaxDecoder(input, params); - let bitmap = [], - x, - y, - row, - currentByte, - shift, + const bitmap = []; + let currentByte, eof = false; - for (y = 0; y < height; y++) { - row = new Uint8Array(width); + for (let y = 0; y < height; y++) { + const row = new Uint8Array(width); bitmap.push(row); - shift = -1; - for (x = 0; x < width; x++) { + let shift = -1; + for (let x = 0; x < width; x++) { if (shift < 0) { currentByte = decoder.readNextChar(); if (currentByte === -1) { diff --git a/src/core/parser.js b/src/core/parser.js index b36f4f74b..3c9862962 100644 --- a/src/core/parser.js +++ b/src/core/parser.js @@ -207,8 +207,8 @@ class Parser { CR = 0xd; const n = 10, NUL = 0x0; - let startPos = stream.pos, - state = 0, + const startPos = stream.pos; + let state = 0, ch, maybeEIPos; while ((ch = stream.getByte()) !== -1) { @@ -282,11 +282,10 @@ class Parser { * @returns {number} The inline stream length. */ findDCTDecodeInlineStreamEnd(stream) { - let startPos = stream.pos, - foundEOI = false, + const startPos = stream.pos; + let foundEOI = false, b, - markerLength, - length; + markerLength; while ((b = stream.getByte()) !== -1) { if (b !== 0xff) { // Not a valid marker. @@ -367,7 +366,7 @@ class Parser { break; } } - length = stream.pos - startPos; + const length = stream.pos - startPos; if (b === -1) { warn( "Inline DCTDecode image stream: " + @@ -387,9 +386,8 @@ class Parser { findASCII85DecodeInlineStreamEnd(stream) { const TILDE = 0x7e, GT = 0x3e; - let startPos = stream.pos, - ch, - length; + const startPos = stream.pos; + let ch; while ((ch = stream.getByte()) !== -1) { if (ch === TILDE) { const tildePos = stream.pos; @@ -415,7 +413,7 @@ class Parser { } } } - length = stream.pos - startPos; + const length = stream.pos - startPos; if (ch === -1) { warn( "Inline ASCII85Decode image stream: " + @@ -434,15 +432,14 @@ class Parser { */ findASCIIHexDecodeInlineStreamEnd(stream) { const GT = 0x3e; - let startPos = stream.pos, - ch, - length; + const startPos = stream.pos; + let ch; while ((ch = stream.getByte()) !== -1) { if (ch === GT) { break; } } - length = stream.pos - startPos; + const length = stream.pos - startPos; if (ch === -1) { warn( "Inline ASCIIHexDecode image stream: " + diff --git a/src/display/content_disposition.js b/src/display/content_disposition.js index db920ac44..8d331e7fe 100644 --- a/src/display/content_disposition.js +++ b/src/display/content_disposition.js @@ -116,13 +116,13 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { return value; } function rfc2231getparam(contentDisposition) { - let matches = [], - match; + const matches = []; + let match; // Iterate over all filename*n= and filename*n*= with n being an integer // of at least zero. Any non-zero number must not start with '0'. const iter = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig"); while ((match = iter.exec(contentDisposition)) !== null) { - let [, n, quot, part] = match; + let [, n, quot, part] = match; // eslint-disable-line prefer-const n = parseInt(n, 10); if (n in matches) { // Ignore anything after the invalid second filename*0. @@ -139,7 +139,7 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { // Numbers must be consecutive. Truncate when there is a hole. break; } - let [quot, part] = matches[n]; + let [quot, part] = matches[n]; // eslint-disable-line prefer-const part = rfc2616unquote(part); if (quot) { part = unescape(part); diff --git a/src/display/display_utils.js b/src/display/display_utils.js index 5c1f629a2..279f89ba8 100644 --- a/src/display/display_utils.js +++ b/src/display/display_utils.js @@ -461,8 +461,8 @@ class StatTimer { toString() { // Find the longest name for padding purposes. - let outBuf = [], - longest = 0; + const outBuf = []; + let longest = 0; for (const time of this.times) { const name = time.name; if (name.length > longest) { diff --git a/src/display/xml_parser.js b/src/display/xml_parser.js index ca3b366f6..77a6d8548 100644 --- a/src/display/xml_parser.js +++ b/src/display/xml_parser.js @@ -67,9 +67,8 @@ class XMLParserBase { } _parseContent(s, start) { - let pos = start, - name, - attributes = []; + const attributes = []; + let pos = start; function skipWs() { while (pos < s.length && isWhitespace(s, pos)) { @@ -85,7 +84,7 @@ class XMLParserBase { ) { ++pos; } - name = s.substring(start, pos); + const name = s.substring(start, pos); skipWs(); while ( pos < s.length && @@ -130,9 +129,7 @@ class XMLParserBase { } _parseProcessingInstruction(s, start) { - let pos = start, - name, - value; + let pos = start; function skipWs() { while (pos < s.length && isWhitespace(s, pos)) { @@ -148,13 +145,13 @@ class XMLParserBase { ) { ++pos; } - name = s.substring(start, pos); + const name = s.substring(start, pos); skipWs(); const attrStart = pos; while (pos < s.length && (s[pos] !== "?" || s[pos + 1] !== ">")) { ++pos; } - value = s.substring(attrStart, pos); + const value = s.substring(attrStart, pos); return { name, value,