From 1d2f787d6a80bf850c0dbb3160ede45e9bdee5cb Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Wed, 25 Mar 2020 09:42:50 +0100 Subject: [PATCH 1/3] Enable the ESLint `no-shadow` rule This rule is *not* currently enabled in mozilla-central, but it appears commented out[1] in the ESLint definition file; see https://searchfox.org/mozilla-central/rev/c80fa7258c935223fe319c5345b58eae85d4c6ae/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js#238-239 Unfortunately this rule is, for fairly obvious reasons, impossible to `--fix` automatically (even partially) and each case thus required careful manual analysis. Hence this ESLint rule is, by some margin, probably the most difficult one that we've enabled thus far. However, using this rule does seem like a good idea in general since allowing variable shadowing could lead to subtle (and difficult to find) bugs or at the very least confusing code. Please find additional details about the ESLint rule at https://eslint.org/docs/rules/no-shadow --- [1] Most likely, a very large number of lint errors have prevented this rule from being enabled thus far. --- .eslintrc | 2 +- external/builder/preprocessor2.js | 4 +-- gulpfile.js | 54 +++++++++++++++---------------- src/core/metrics.js | 10 ++++++ src/shared/message_handler.js | 12 +++---- test/add_test.js | 4 +-- test/driver.js | 6 ++-- test/font/ttxdriver.js | 14 ++++---- test/stats/statcmp.js | 18 +++++------ test/test.js | 12 +++---- test/webbrowser.js | 34 +++++++++---------- test/webserver.js | 12 +++---- 12 files changed, 95 insertions(+), 87 deletions(-) diff --git a/.eslintrc b/.eslintrc index 15a93b5d8ce17..f4419923ce2e1 100644 --- a/.eslintrc +++ b/.eslintrc @@ -119,8 +119,8 @@ "no-catch-shadow": "error", "no-delete-var": "error", "no-label-var": "error", + "no-shadow": "error", "no-shadow-restricted-names": "error", - "no-shadow": "off", "no-undef-init": "error", "no-undef": ["error", { "typeof": true, }], "no-unused-vars": ["error", { diff --git a/external/builder/preprocessor2.js b/external/builder/preprocessor2.js index 10faa2702fa2b..699f48df1690f 100644 --- a/external/builder/preprocessor2.js +++ b/external/builder/preprocessor2.js @@ -289,7 +289,7 @@ function traverseTree(ctx, node) { for (var i in node) { var child = node[i]; if (typeof child === "object" && child !== null && child.type) { - var result = traverseTree(ctx, child); + const result = traverseTree(ctx, child); if (result !== child) { node[i] = result; } @@ -300,7 +300,7 @@ function traverseTree(ctx, node) { childItem !== null && childItem.type ) { - var result = traverseTree(ctx, childItem); + const result = traverseTree(ctx, childItem); if (result !== childItem) { child[index] = result; } diff --git a/gulpfile.js b/gulpfile.js index cf697257f6326..c8f3fc98661bb 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -167,8 +167,6 @@ function createStringSource(filename, content) { } function createWebpackConfig(defines, output) { - var path = require("path"); - var versionInfo = getVersionJSON(); var bundleDefines = builder.merge(defines, { BUNDLE_VERSION: versionInfo.version, @@ -243,9 +241,9 @@ function createWebpackConfig(defines, output) { }; } -function webpack2Stream(config) { +function webpack2Stream(webpackConfig) { // Replacing webpack1 to webpack2 in the webpack-stream. - return webpackStream(config, webpack2); + return webpackStream(webpackConfig, webpack2); } function getVersionJSON() { @@ -378,28 +376,28 @@ function createImageDecodersBundle(defines) { .pipe(replaceJSRootName(imageDecodersAMDName, "pdfjsImageDecoders")); } -function checkFile(path) { +function checkFile(filePath) { try { - var stat = fs.lstatSync(path); + var stat = fs.lstatSync(filePath); return stat.isFile(); } catch (e) { return false; } } -function checkDir(path) { +function checkDir(dirPath) { try { - var stat = fs.lstatSync(path); + var stat = fs.lstatSync(dirPath); return stat.isDirectory(); } catch (e) { return false; } } -function replaceInFile(path, find, replacement) { - var content = fs.readFileSync(path).toString(); +function replaceInFile(filePath, find, replacement) { + var content = fs.readFileSync(filePath).toString(); content = content.replace(find, replacement); - fs.writeFileSync(path, content); + fs.writeFileSync(filePath, content); } function getTempFile(prefix, suffix) { @@ -407,9 +405,9 @@ function getTempFile(prefix, suffix) { var bytes = require("crypto") .randomBytes(6) .toString("hex"); - var path = BUILD_DIR + "tmp/" + prefix + bytes + suffix; - fs.writeFileSync(path, ""); - return path; + var filePath = BUILD_DIR + "tmp/" + prefix + bytes + suffix; + fs.writeFileSync(filePath, ""); + return filePath; } function createTestSource(testsName, bot) { @@ -527,10 +525,10 @@ gulp.task("buildnumber", function(done) { var version = config.versionPrefix + buildNumber; - exec('git log --format="%h" -n 1', function(err, stdout, stderr) { + exec('git log --format="%h" -n 1', function(err2, stdout2, stderr2) { var buildCommit = ""; - if (!err) { - buildCommit = stdout.replace("\n", ""); + if (!err2) { + buildCommit = stdout2.replace("\n", ""); } createStringSource( @@ -559,9 +557,9 @@ gulp.task("default_preferences-pre", function() { function babelPluginReplaceNonWebPackRequire(babel) { return { visitor: { - Identifier(path, state) { - if (path.node.name === "__non_webpack_require__") { - path.replaceWith(babel.types.identifier("require")); + Identifier(curPath, state) { + if (curPath.node.name === "__non_webpack_require__") { + curPath.replaceWith(babel.types.identifier("require")); } }, }, @@ -643,8 +641,8 @@ gulp.task("locale", function() { var locales = []; for (var i = 0; i < subfolders.length; i++) { var locale = subfolders[i]; - var path = L10N_DIR + locale; - if (!checkDir(path)) { + var dirPath = L10N_DIR + locale; + if (!checkDir(dirPath)) { continue; } if (!/^[a-z][a-z]([a-z])?(-[A-Z][A-Z])?$/.test(locale)) { @@ -656,7 +654,7 @@ gulp.task("locale", function() { locales.push(locale); - if (checkFile(path + "/viewer.properties")) { + if (checkFile(dirPath + "/viewer.properties")) { viewerOutput += "[" + locale + @@ -1163,9 +1161,9 @@ gulp.task( function babelPluginReplaceNonWebPackRequire(babel) { return { visitor: { - Identifier(path, state) { - if (path.node.name === "__non_webpack_require__") { - path.replaceWith(babel.types.identifier("require")); + Identifier(curPath, state) { + if (curPath.node.name === "__non_webpack_require__") { + curPath.replaceWith(babel.types.identifier("require")); } }, }, @@ -1358,9 +1356,9 @@ gulp.task("baseline", function(done) { } exec("git checkout " + baselineCommit, { cwd: workingDirectory }, function( - error + error2 ) { - if (error) { + if (error2) { done(new Error("Baseline commit checkout failed.")); return; } diff --git a/src/core/metrics.js b/src/core/metrics.js index 63373bab227d3..51b3da815995c 100644 --- a/src/core/metrics.js +++ b/src/core/metrics.js @@ -23,6 +23,7 @@ var getMetrics = getLookupTableFactory(function(t) { t["Courier-Bold"] = 600; t["Courier-BoldOblique"] = 600; t["Courier-Oblique"] = 600; + // eslint-disable-next-line no-shadow t["Helvetica"] = getLookupTableFactory(function(t) { t["space"] = 278; t["exclam"] = 278; @@ -340,6 +341,7 @@ var getMetrics = getLookupTableFactory(function(t) { t["imacron"] = 278; t["Euro"] = 556; }); + // eslint-disable-next-line no-shadow t["Helvetica-Bold"] = getLookupTableFactory(function(t) { t["space"] = 278; t["exclam"] = 333; @@ -657,6 +659,7 @@ var getMetrics = getLookupTableFactory(function(t) { t["imacron"] = 278; t["Euro"] = 556; }); + // eslint-disable-next-line no-shadow t["Helvetica-BoldOblique"] = getLookupTableFactory(function(t) { t["space"] = 278; t["exclam"] = 333; @@ -974,6 +977,7 @@ var getMetrics = getLookupTableFactory(function(t) { t["imacron"] = 278; t["Euro"] = 556; }); + // eslint-disable-next-line no-shadow t["Helvetica-Oblique"] = getLookupTableFactory(function(t) { t["space"] = 278; t["exclam"] = 278; @@ -1291,6 +1295,7 @@ var getMetrics = getLookupTableFactory(function(t) { t["imacron"] = 278; t["Euro"] = 556; }); + // eslint-disable-next-line no-shadow t["Symbol"] = getLookupTableFactory(function(t) { t["space"] = 250; t["exclam"] = 333; @@ -1483,6 +1488,7 @@ var getMetrics = getLookupTableFactory(function(t) { t["bracerightbt"] = 494; t["apple"] = 790; }); + // eslint-disable-next-line no-shadow t["Times-Roman"] = getLookupTableFactory(function(t) { t["space"] = 250; t["exclam"] = 333; @@ -1800,6 +1806,7 @@ var getMetrics = getLookupTableFactory(function(t) { t["imacron"] = 278; t["Euro"] = 500; }); + // eslint-disable-next-line no-shadow t["Times-Bold"] = getLookupTableFactory(function(t) { t["space"] = 250; t["exclam"] = 333; @@ -2117,6 +2124,7 @@ var getMetrics = getLookupTableFactory(function(t) { t["imacron"] = 278; t["Euro"] = 500; }); + // eslint-disable-next-line no-shadow t["Times-BoldItalic"] = getLookupTableFactory(function(t) { t["space"] = 250; t["exclam"] = 389; @@ -2434,6 +2442,7 @@ var getMetrics = getLookupTableFactory(function(t) { t["imacron"] = 278; t["Euro"] = 500; }); + // eslint-disable-next-line no-shadow t["Times-Italic"] = getLookupTableFactory(function(t) { t["space"] = 250; t["exclam"] = 333; @@ -2751,6 +2760,7 @@ var getMetrics = getLookupTableFactory(function(t) { t["imacron"] = 278; t["Euro"] = 500; }); + // eslint-disable-next-line no-shadow t["ZapfDingbats"] = getLookupTableFactory(function(t) { t["space"] = 278; t["a1"] = 974; diff --git a/src/shared/message_handler.js b/src/shared/message_handler.js index 3ff409d0aad71..5bcd1f65de3b8 100644 --- a/src/shared/message_handler.js +++ b/src/shared/message_handler.js @@ -114,15 +114,15 @@ class MessageHandler { throw new Error(`Unknown action from worker: ${data.action}`); } if (data.callbackId) { - const sourceName = this.sourceName; - const targetName = data.sourceName; + const cbSourceName = this.sourceName; + const cbTargetName = data.sourceName; new Promise(function(resolve) { resolve(action(data.data)); }).then( function(result) { comObj.postMessage({ - sourceName, - targetName, + sourceName: cbSourceName, + targetName: cbTargetName, callback: CallbackKind.DATA, callbackId: data.callbackId, data: result, @@ -130,8 +130,8 @@ class MessageHandler { }, function(reason) { comObj.postMessage({ - sourceName, - targetName, + sourceName: cbSourceName, + targetName: cbTargetName, callback: CallbackKind.ERROR, callbackId: data.callbackId, reason: wrapReason(reason), diff --git a/test/add_test.js b/test/add_test.js index 067b6170febf3..9a21179603c40 100644 --- a/test/add_test.js +++ b/test/add_test.js @@ -22,9 +22,9 @@ if (!fs.existsSync(file)) { throw new Error(`PDF file does not exist '${file}'.`); } -function calculateMD5(file, callback) { +function calculateMD5(pdfFile, callback) { var hash = crypto.createHash("md5"); - var stream = fs.createReadStream(file); + var stream = fs.createReadStream(pdfFile); stream.on("data", function(data) { hash.update(data); }); diff --git a/test/driver.js b/test/driver.js index b8dff5eceb1c2..5458f3b2b7c3c 100644 --- a/test/driver.js +++ b/test/driver.js @@ -228,10 +228,10 @@ var rasterizeAnnotationLayer = (function rasterizeAnnotationLayerClosure() { for (var i = 0, ii = data.length; i < ii; i++) { images[i].src = data[i]; loadedPromises.push( - new Promise(function(resolve, reject) { - images[i].onload = resolve; + new Promise(function(resolveImage, rejectImage) { + images[i].onload = resolveImage; images[i].onerror = function(e) { - reject(new Error("Error loading image " + e)); + rejectImage(new Error("Error loading image " + e)); }; }) ); diff --git a/test/font/ttxdriver.js b/test/font/ttxdriver.js index 318c5b5cf4f0e..61c3275f2eb33 100644 --- a/test/font/ttxdriver.js +++ b/test/font/ttxdriver.js @@ -24,10 +24,10 @@ var ttxResourcesHome = path.join(__dirname, "..", "ttx"); var nextTTXTaskId = Date.now(); -function runTtx(ttxResourcesHome, fontPath, registerOnCancel, callback) { - fs.realpath(ttxResourcesHome, function(err, ttxResourcesHome) { - var fontToolsHome = path.join(ttxResourcesHome, "fonttools-code"); - fs.realpath(fontPath, function(err, fontPath) { +function runTtx(ttxResourcesHomePath, fontPath, registerOnCancel, callback) { + fs.realpath(ttxResourcesHomePath, function(error, realTtxResourcesHomePath) { + var fontToolsHome = path.join(realTtxResourcesHomePath, "fonttools-code"); + fs.realpath(fontPath, function(errorFontPath, realFontPath) { var ttxPath = path.join("Tools", "ttx"); if (!fs.existsSync(path.join(fontToolsHome, ttxPath))) { callback("TTX was not found, please checkout PDF.js submodules"); @@ -38,7 +38,7 @@ function runTtx(ttxResourcesHome, fontPath, registerOnCancel, callback) { PYTHONDONTWRITEBYTECODE: true, }; var ttxStdioMode = "ignore"; - var ttx = spawn("python", [ttxPath, fontPath], { + var ttx = spawn("python", [ttxPath, realFontPath], { cwd: fontToolsHome, stdio: ttxStdioMode, env: ttxEnv, @@ -49,8 +49,8 @@ function runTtx(ttxResourcesHome, fontPath, registerOnCancel, callback) { callback(reason); ttx.kill(); }); - ttx.on("error", function(err) { - ttxRunError = err; + ttx.on("error", function(errorTtx) { + ttxRunError = errorTtx; callback("Unable to execute ttx"); }); ttx.on("close", function(code) { diff --git a/test/stats/statcmp.js b/test/stats/statcmp.js index 406026e751dcb..e7b7204f49b21 100644 --- a/test/stats/statcmp.js +++ b/test/stats/statcmp.js @@ -37,16 +37,16 @@ function parseOptions() { function group(stats, groupBy) { var vals = []; for (var i = 0; i < stats.length; i++) { - var stat = stats[i]; + var curStat = stats[i]; var keyArr = []; for (var j = 0; j < groupBy.length; j++) { - keyArr.push(stat[groupBy[j]]); + keyArr.push(curStat[groupBy[j]]); } var key = keyArr.join(","); if (vals[key] === undefined) { vals[key] = []; } - vals[key].push(stat["time"]); + vals[key].push(curStat["time"]); } return vals; } @@ -57,13 +57,13 @@ function group(stats, groupBy) { */ function flatten(stats) { var rows = []; - stats.forEach(function(stat) { - stat["stats"].forEach(function(s) { + stats.forEach(function(curStat) { + curStat["stats"].forEach(function(s) { rows.push({ - browser: stat["browser"], - page: stat["page"], - pdf: stat["pdf"], - round: stat["round"], + browser: curStat["browser"], + page: curStat["page"], + pdf: curStat["pdf"], + round: curStat["round"], stat: s["name"], time: s["end"] - s["start"], }); diff --git a/test/test.js b/test/test.js index 38eafb4e97bd4..5cc7bbf29acf4 100644 --- a/test/test.js +++ b/test/test.js @@ -619,8 +619,8 @@ function refTestPostHandler(req, res) { if (pathname === "/tellMeToQuit") { // finding by path var browserPath = parsedUrl.query.path; - session = sessions.filter(function(session) { - return session.config.path === browserPath; + session = sessions.filter(function(curSession) { + return curSession.config.path === browserPath; })[0]; monitorBrowserTimeout(session, null); closeSession(session.name); @@ -689,7 +689,7 @@ function refTestPostHandler(req, res) { return true; } -function startUnitTest(url, name) { +function startUnitTest(testUrl, name) { var startTime = Date.now(); startServer(); server.hooks["POST"].push(unitTestPostHandler); @@ -712,7 +712,7 @@ function startUnitTest(url, name) { var runtime = (Date.now() - startTime) / 1000; console.log(name + " tests runtime was " + runtime.toFixed(1) + " seconds"); }; - startBrowsers(url, function(session) { + startBrowsers(testUrl, function(session) { session.numRuns = 0; session.numErrors = 0; }); @@ -784,7 +784,7 @@ function unitTestPostHandler(req, res) { return true; } -function startBrowsers(url, initSessionCallback) { +function startBrowsers(testUrl, initSessionCallback) { var browsers; if (options.browserManifestFile) { browsers = JSON.parse(fs.readFileSync(options.browserManifestFile)); @@ -801,7 +801,7 @@ function startBrowsers(url, initSessionCallback) { var browser = WebBrowser.create(b); var startUrl = getServerBaseAddress() + - url + + testUrl + "?browser=" + encodeURIComponent(b.name) + "&manifestFile=" + diff --git a/test/webbrowser.js b/test/webbrowser.js index 226423b1924a9..93137ec872775 100644 --- a/test/webbrowser.js +++ b/test/webbrowser.js @@ -26,9 +26,9 @@ var crypto = require("crypto"); var tempDirPrefix = "pdfjs_"; -function WebBrowser(name, path, headless) { +function WebBrowser(name, execPath, headless) { this.name = name; - this.path = path; + this.path = execPath; this.headless = headless; this.tmpDir = null; this.profileDir = null; @@ -197,7 +197,7 @@ WebBrowser.prototype = { // Note: First process' output it shown, the later outputs are suppressed. execAsyncNoStdin( cmdKillAll, - function checkAlive(exitCode, firstStdout) { + function checkAlive(firstExitCode, firstStdout) { execAsyncNoStdin( cmdCheckAllKilled, function(exitCode, stdout) { @@ -227,14 +227,14 @@ WebBrowser.prototype = { var firefoxResourceDir = path.join(__dirname, "resources", "firefox"); -function FirefoxBrowser(name, path, headless) { +function FirefoxBrowser(name, execPath, headless) { if (os.platform() === "darwin") { - var m = /([^.\/]+)\.app(\/?)$/.exec(path); + var m = /([^.\/]+)\.app(\/?)$/.exec(execPath); if (m) { - path += (m[2] ? "" : "/") + "Contents/MacOS/firefox"; + execPath += (m[2] ? "" : "/") + "Contents/MacOS/firefox"; } } - WebBrowser.call(this, name, path, headless); + WebBrowser.call(this, name, execPath, headless); } FirefoxBrowser.prototype = Object.create(WebBrowser.prototype); FirefoxBrowser.prototype.buildArguments = function(url) { @@ -253,15 +253,15 @@ FirefoxBrowser.prototype.setupProfileDir = function(dir) { testUtils.copySubtreeSync(firefoxResourceDir, dir); }; -function ChromiumBrowser(name, path, headless) { +function ChromiumBrowser(name, execPath, headless) { if (os.platform() === "darwin") { - var m = /([^.\/]+)\.app(\/?)$/.exec(path); + var m = /([^.\/]+)\.app(\/?)$/.exec(execPath); if (m) { - path += (m[2] ? "" : "/") + "Contents/MacOS/" + m[1]; - console.log(path); + execPath += (m[2] ? "" : "/") + "Contents/MacOS/" + m[1]; + console.log(execPath); } } - WebBrowser.call(this, name, path, headless); + WebBrowser.call(this, name, execPath, headless); } ChromiumBrowser.prototype = Object.create(WebBrowser.prototype); ChromiumBrowser.prototype.buildArguments = function(url) { @@ -291,18 +291,18 @@ ChromiumBrowser.prototype.buildArguments = function(url) { WebBrowser.create = function(desc) { var name = desc.name; - var path = fs.realpathSync(desc.path); - if (!path) { + var execPath = fs.realpathSync(desc.path); + if (!execPath) { throw new Error("Browser executable not found: " + desc.path); } if (/firefox/i.test(name)) { - return new FirefoxBrowser(name, path, desc.headless); + return new FirefoxBrowser(name, execPath, desc.headless); } if (/(chrome|chromium|opera)/i.test(name)) { - return new ChromiumBrowser(name, path, desc.headless); + return new ChromiumBrowser(name, execPath, desc.headless); } - return new WebBrowser(name, path, desc.headless); + return new WebBrowser(name, execPath, desc.headless); }; exports.WebBrowser = WebBrowser; diff --git a/test/webserver.js b/test/webserver.js index 8be2a0f4bd502..54f69e26e9191 100644 --- a/test/webserver.js +++ b/test/webserver.js @@ -283,15 +283,15 @@ WebServer.prototype = { }); } - function serveRequestedFile(filePath) { - var stream = fs.createReadStream(filePath, { flags: "rs" }); + function serveRequestedFile(reqFilePath) { + var stream = fs.createReadStream(reqFilePath, { flags: "rs" }); stream.on("error", function(error) { res.writeHead(500); res.end(); }); - var ext = path.extname(filePath).toLowerCase(); + var ext = path.extname(reqFilePath).toLowerCase(); var contentType = mimeTypes[ext] || defaultMimeType; if (!disableRangeRequests) { @@ -309,8 +309,8 @@ WebServer.prototype = { stream.pipe(res); } - function serveRequestedFileRange(filePath, start, end) { - var stream = fs.createReadStream(filePath, { + function serveRequestedFileRange(reqFilePath, start, end) { + var stream = fs.createReadStream(reqFilePath, { flags: "rs", start: start, end: end - 1, @@ -321,7 +321,7 @@ WebServer.prototype = { res.end(); }); - var ext = path.extname(filePath).toLowerCase(); + var ext = path.extname(reqFilePath).toLowerCase(); var contentType = mimeTypes[ext] || defaultMimeType; res.setHeader("Accept-Ranges", "bytes"); From dcb16af968598d789b078cd33525d1c503401253 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Wed, 25 Mar 2020 10:15:50 +0100 Subject: [PATCH 2/3] Whitelist closure related cases to address the remaining `no-shadow` linting errors Given the way that "classes" were previously implemented in PDF.js, using regular functions and closures, there's a fair number of false positives when the `no-shadow` ESLint rule was enabled. Note that while *some* of these `eslint-disable` statements can be removed if/when the relevant code is converted to proper `class`es, we'll probably never be able to get rid of all of them given our naming/coding conventions (however I don't really see this being a problem). --- src/core/ccitt.js | 1 + src/core/ccitt_stream.js | 1 + src/core/cff_parser.js | 15 +++++++++++++++ src/core/cmap.js | 1 + src/core/colorspace.js | 4 ++++ src/core/crypto.js | 7 +++++++ src/core/evaluator.js | 6 ++++++ src/core/fonts.js | 8 ++++++++ src/core/function.js | 4 ++++ src/core/image.js | 1 + src/core/jbig2.js | 1 + src/core/jbig2_stream.js | 1 + src/core/jpeg_stream.js | 1 + src/core/jpg.js | 1 + src/core/jpx.js | 8 ++++++++ src/core/jpx_stream.js | 1 + src/core/obj.js | 3 +++ src/core/operator_list.js | 3 +++ src/core/pattern.js | 3 +++ src/core/primitives.js | 6 ++++++ src/core/ps_parser.js | 1 + src/core/stream.js | 12 ++++++++++++ src/core/type1_parser.js | 2 ++ src/core/worker.js | 1 + src/display/api.js | 3 +++ src/display/canvas.js | 3 +++ src/display/pattern_helper.js | 2 ++ src/display/svg.js | 2 ++ src/display/text_layer.js | 1 + src/shared/util.js | 2 ++ test/driver.js | 3 +++ web/debugger.js | 1 + 32 files changed, 109 insertions(+) diff --git a/src/core/ccitt.js b/src/core/ccitt.js index 7ac4910896f74..05e427558dc33 100644 --- a/src/core/ccitt.js +++ b/src/core/ccitt.js @@ -465,6 +465,7 @@ const CCITTFaxDecoder = (function CCITTFaxDecoder() { * @param {CCITTFaxDecoderSource} source - The data which should be decoded. * @param {Object} [options] - Decoding options. */ + // eslint-disable-next-line no-shadow function CCITTFaxDecoder(source, options = {}) { if (!source || typeof source.next !== "function") { throw new Error('CCITTFaxDecoder - invalid "source" parameter.'); diff --git a/src/core/ccitt_stream.js b/src/core/ccitt_stream.js index a821025028544..4140a30fdf0c2 100644 --- a/src/core/ccitt_stream.js +++ b/src/core/ccitt_stream.js @@ -18,6 +18,7 @@ import { CCITTFaxDecoder } from "./ccitt.js"; import { DecodeStream } from "./stream.js"; var CCITTFaxStream = (function CCITTFaxStreamClosure() { + // eslint-disable-next-line no-shadow function CCITTFaxStream(str, maybeLength, params) { this.str = str; this.dict = str.dict; diff --git a/src/core/cff_parser.js b/src/core/cff_parser.js index fd8299fdf346b..cf1f1c4bb9ce9 100644 --- a/src/core/cff_parser.js +++ b/src/core/cff_parser.js @@ -217,6 +217,7 @@ var CFFParser = (function CFFParserClosure() { { id: "flex1", min: 11, resetStack: true }, ]; + // eslint-disable-next-line no-shadow function CFFParser(file, properties, seacAnalysisEnabled) { this.bytes = file.getBytes(); this.properties = properties; @@ -964,6 +965,7 @@ var CFFParser = (function CFFParserClosure() { // Compact Font Format var CFF = (function CFFClosure() { + // eslint-disable-next-line no-shadow function CFF() { this.header = null; this.names = []; @@ -1009,6 +1011,7 @@ var CFF = (function CFFClosure() { })(); var CFFHeader = (function CFFHeaderClosure() { + // eslint-disable-next-line no-shadow function CFFHeader(major, minor, hdrSize, offSize) { this.major = major; this.minor = minor; @@ -1019,6 +1022,7 @@ var CFFHeader = (function CFFHeaderClosure() { })(); var CFFStrings = (function CFFStringsClosure() { + // eslint-disable-next-line no-shadow function CFFStrings() { this.strings = []; } @@ -1054,6 +1058,7 @@ var CFFStrings = (function CFFStringsClosure() { })(); var CFFIndex = (function CFFIndexClosure() { + // eslint-disable-next-line no-shadow function CFFIndex() { this.objects = []; this.length = 0; @@ -1078,6 +1083,7 @@ var CFFIndex = (function CFFIndexClosure() { })(); var CFFDict = (function CFFDictClosure() { + // eslint-disable-next-line no-shadow function CFFDict(tables, strings) { this.keyToNameMap = tables.keyToNameMap; this.nameToKeyMap = tables.nameToKeyMap; @@ -1205,6 +1211,8 @@ var CFFTopDict = (function CFFTopDictClosure() { [[12, 38], "FontName", "sid", null], ]; var tables = null; + + // eslint-disable-next-line no-shadow function CFFTopDict(strings) { if (tables === null) { tables = CFFDict.createTables(layout); @@ -1238,6 +1246,8 @@ var CFFPrivateDict = (function CFFPrivateDictClosure() { [19, "Subrs", "offset", null], ]; var tables = null; + + // eslint-disable-next-line no-shadow function CFFPrivateDict(strings) { if (tables === null) { tables = CFFDict.createTables(layout); @@ -1255,6 +1265,7 @@ var CFFCharsetPredefinedTypes = { EXPERT_SUBSET: 2, }; var CFFCharset = (function CFFCharsetClosure() { + // eslint-disable-next-line no-shadow function CFFCharset(predefined, format, charset, raw) { this.predefined = predefined; this.format = format; @@ -1265,6 +1276,7 @@ var CFFCharset = (function CFFCharsetClosure() { })(); var CFFEncoding = (function CFFEncodingClosure() { + // eslint-disable-next-line no-shadow function CFFEncoding(predefined, format, encoding, raw) { this.predefined = predefined; this.format = format; @@ -1275,6 +1287,7 @@ var CFFEncoding = (function CFFEncodingClosure() { })(); var CFFFDSelect = (function CFFFDSelectClosure() { + // eslint-disable-next-line no-shadow function CFFFDSelect(format, fdSelect) { this.format = format; this.fdSelect = fdSelect; @@ -1293,6 +1306,7 @@ var CFFFDSelect = (function CFFFDSelectClosure() { // Helper class to keep track of where an offset is within the data and helps // filling in that offset once it's known. var CFFOffsetTracker = (function CFFOffsetTrackerClosure() { + // eslint-disable-next-line no-shadow function CFFOffsetTracker() { this.offsets = Object.create(null); } @@ -1352,6 +1366,7 @@ var CFFOffsetTracker = (function CFFOffsetTrackerClosure() { // Takes a CFF and converts it to the binary representation. var CFFCompiler = (function CFFCompilerClosure() { + // eslint-disable-next-line no-shadow function CFFCompiler(cff) { this.cff = cff; } diff --git a/src/core/cmap.js b/src/core/cmap.js index b43906537487b..6a663fcc4ed6b 100644 --- a/src/core/cmap.js +++ b/src/core/cmap.js @@ -713,6 +713,7 @@ var BinaryCMapReader = (function BinaryCMapReaderClosure() { }); } + // eslint-disable-next-line no-shadow function BinaryCMapReader() {} BinaryCMapReader.prototype = { diff --git a/src/core/colorspace.js b/src/core/colorspace.js index 317731be2d019..b4f326d57c18d 100644 --- a/src/core/colorspace.js +++ b/src/core/colorspace.js @@ -836,6 +836,7 @@ const DeviceCmykCS = (function DeviceCmykCSClosure() { k * (-22.33816807309886 * k - 180.12613974708367); } + // eslint-disable-next-line no-shadow class DeviceCmykCS extends ColorSpace { constructor() { super("DeviceCMYK", 4); @@ -902,6 +903,7 @@ const CalGrayCS = (function CalGrayCSClosure() { dest[destOffset + 2] = val; } + // eslint-disable-next-line no-shadow class CalGrayCS extends ColorSpace { constructor(whitePoint, blackPoint, gamma) { super("CalGray", 1); @@ -1190,6 +1192,7 @@ const CalRGBCS = (function CalRGBCSClosure() { dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255; } + // eslint-disable-next-line no-shadow class CalRGBCS extends ColorSpace { constructor(whitePoint, blackPoint, gamma, matrix) { super("CalRGB", 3); @@ -1371,6 +1374,7 @@ const LabCS = (function LabCSClosure() { dest[destOffset + 2] = Math.sqrt(b) * 255; } + // eslint-disable-next-line no-shadow class LabCS extends ColorSpace { constructor(whitePoint, blackPoint, range) { super("Lab", 3); diff --git a/src/core/crypto.js b/src/core/crypto.js index e1af838ab7cfd..12d2d2e92eb53 100644 --- a/src/core/crypto.js +++ b/src/core/crypto.js @@ -27,6 +27,7 @@ import { isDict, isName, Name } from "./primitives.js"; import { DecryptStream } from "./stream.js"; var ARCFourCipher = (function ARCFourCipherClosure() { + // eslint-disable-next-line no-shadow function ARCFourCipher(key) { this.a = 0; this.b = 0; @@ -177,6 +178,7 @@ var calculateMD5 = (function calculateMD5Closure() { return hash; })(); var Word64 = (function Word64Closure() { + // eslint-disable-next-line no-shadow function Word64(highInteger, lowInteger) { this.high = highInteger | 0; this.low = lowInteger | 0; @@ -690,6 +692,7 @@ var calculateSHA384 = (function calculateSHA384Closure() { return hash; })(); var NullCipher = (function NullCipherClosure() { + // eslint-disable-next-line no-shadow function NullCipher() {} NullCipher.prototype = { @@ -1265,6 +1268,7 @@ var PDF17 = (function PDF17Closure() { return true; } + // eslint-disable-next-line no-shadow function PDF17() {} PDF17.prototype = { @@ -1372,6 +1376,7 @@ var PDF20 = (function PDF20Closure() { return k.subarray(0, 32); } + // eslint-disable-next-line no-shadow function PDF20() {} function compareByteArrays(array1, array2) { @@ -1446,6 +1451,7 @@ var PDF20 = (function PDF20Closure() { })(); var CipherTransform = (function CipherTransformClosure() { + // eslint-disable-next-line no-shadow function CipherTransform(stringCipherConstructor, streamCipherConstructor) { this.StringCipherConstructor = stringCipherConstructor; this.StreamCipherConstructor = streamCipherConstructor; @@ -1661,6 +1667,7 @@ var CipherTransformFactory = (function CipherTransformFactoryClosure() { var identityName = Name.get("Identity"); + // eslint-disable-next-line no-shadow function CipherTransformFactory(dict, fileId, password) { var filter = dict.get("Filter"); if (!isName(filter, "Standard")) { diff --git a/src/core/evaluator.js b/src/core/evaluator.js index 7b4cd114a085b..b06e8b0a14ebb 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -96,6 +96,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { isEvalSupported: true, }; + // eslint-disable-next-line no-shadow function PartialEvaluator({ xref, handler, @@ -3266,6 +3267,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { })(); var TranslatedFont = (function TranslatedFontClosure() { + // eslint-disable-next-line no-shadow function TranslatedFont(loadedName, font, dict) { this.loadedName = loadedName; this.font = font; @@ -3367,6 +3369,7 @@ var TranslatedFont = (function TranslatedFontClosure() { })(); var StateManager = (function StateManagerClosure() { + // eslint-disable-next-line no-shadow function StateManager(initialState) { this.state = initialState; this.stateStack = []; @@ -3391,6 +3394,7 @@ var StateManager = (function StateManagerClosure() { })(); var TextState = (function TextStateClosure() { + // eslint-disable-next-line no-shadow function TextState() { this.ctm = new Float32Array(IDENTITY_MATRIX); this.fontName = null; @@ -3496,6 +3500,7 @@ var TextState = (function TextStateClosure() { })(); var EvalState = (function EvalStateClosure() { + // eslint-disable-next-line no-shadow function EvalState() { this.ctm = new Float32Array(IDENTITY_MATRIX); this.font = null; @@ -3637,6 +3642,7 @@ var EvaluatorPreprocessor = (function EvaluatorPreprocessorClosure() { const MAX_INVALID_PATH_OPS = 20; + // eslint-disable-next-line no-shadow function EvaluatorPreprocessor(stream, xref, stateManager) { this.opMap = getOPMap(); // TODO(mduan): pass array of knownCommands rather than this.opMap diff --git a/src/core/fonts.js b/src/core/fonts.js index e69ff397084ce..f8fe21b3d82ea 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -222,6 +222,7 @@ function recoverGlyphName(name, glyphsUnicodeMap) { } var Glyph = (function GlyphClosure() { + // eslint-disable-next-line no-shadow function Glyph( fontChar, unicode, @@ -268,6 +269,7 @@ var Glyph = (function GlyphClosure() { })(); var ToUnicodeMap = (function ToUnicodeMapClosure() { + // eslint-disable-next-line no-shadow function ToUnicodeMap(cmap = []) { // The elements of this._map can be integers or strings, depending on how // `cmap` was created. @@ -319,6 +321,7 @@ var ToUnicodeMap = (function ToUnicodeMapClosure() { })(); var IdentityToUnicodeMap = (function IdentityToUnicodeMapClosure() { + // eslint-disable-next-line no-shadow function IdentityToUnicodeMap(firstChar, lastChar) { this.firstChar = firstChar; this.lastChar = lastChar; @@ -389,6 +392,7 @@ var OpenTypeFileBuilder = (function OpenTypeFileBuilderClosure() { } } + // eslint-disable-next-line no-shadow function OpenTypeFileBuilder(sfnt) { this.sfnt = sfnt; this.tables = Object.create(null); @@ -512,6 +516,7 @@ var OpenTypeFileBuilder = (function OpenTypeFileBuilderClosure() { * type1Font.bind(); */ var Font = (function FontClosure() { + // eslint-disable-next-line no-shadow function Font(name, file, properties) { var charCode; @@ -3305,6 +3310,7 @@ var Font = (function FontClosure() { })(); var ErrorFont = (function ErrorFontClosure() { + // eslint-disable-next-line no-shadow function ErrorFont(error) { this.error = error; this.loadedName = "g_font_error"; @@ -3518,6 +3524,7 @@ var Type1Font = (function Type1FontClosure() { }; } + // eslint-disable-next-line no-shadow function Type1Font(name, file, properties) { // Some bad generators embed pfb file as is, we have to strip 6-byte header. // Also, length1 and length2 might be off by 6 bytes as well. @@ -3784,6 +3791,7 @@ var Type1Font = (function Type1FontClosure() { })(); var CFFFont = (function CFFFontClosure() { + // eslint-disable-next-line no-shadow function CFFFont(file, properties) { this.properties = properties; diff --git a/src/core/function.js b/src/core/function.js index c919d3e31e5b6..a5439552466ed 100644 --- a/src/core/function.js +++ b/src/core/function.js @@ -565,6 +565,8 @@ function isPDFFunction(v) { var PostScriptStack = (function PostScriptStackClosure() { var MAX_STACK_SIZE = 100; + + // eslint-disable-next-line no-shadow function PostScriptStack(initialStack) { this.stack = !initialStack ? [] @@ -625,6 +627,7 @@ var PostScriptStack = (function PostScriptStackClosure() { return PostScriptStack; })(); var PostScriptEvaluator = (function PostScriptEvaluatorClosure() { + // eslint-disable-next-line no-shadow function PostScriptEvaluator(operators) { this.operators = operators; } @@ -1084,6 +1087,7 @@ var PostScriptCompiler = (function PostScriptCompilerClosure() { return new AstMin(num1, max); } + // eslint-disable-next-line no-shadow function PostScriptCompiler() {} PostScriptCompiler.prototype = { compile: function PostScriptCompiler_compile(code, domain, range) { diff --git a/src/core/image.js b/src/core/image.js index d8e3398f447b4..6e87e7bf0b2e8 100644 --- a/src/core/image.js +++ b/src/core/image.js @@ -96,6 +96,7 @@ var PDFImage = (function PDFImageClosure() { return dest; } + // eslint-disable-next-line no-shadow function PDFImage({ xref, res, diff --git a/src/core/jbig2.js b/src/core/jbig2.js index b5b8f6179bd81..aeaed334dad40 100644 --- a/src/core/jbig2.js +++ b/src/core/jbig2.js @@ -2567,6 +2567,7 @@ var Jbig2Image = (function Jbig2ImageClosure() { return bitmap; } + // eslint-disable-next-line no-shadow function Jbig2Image() {} Jbig2Image.prototype = { diff --git a/src/core/jbig2_stream.js b/src/core/jbig2_stream.js index a53ced2ece9e7..ac0490bc3aeab 100644 --- a/src/core/jbig2_stream.js +++ b/src/core/jbig2_stream.js @@ -23,6 +23,7 @@ import { shadow } from "../shared/util.js"; * the stream behaves like all the other DecodeStreams. */ const Jbig2Stream = (function Jbig2StreamClosure() { + // eslint-disable-next-line no-shadow function Jbig2Stream(stream, maybeLength, dict, params) { this.stream = stream; this.maybeLength = maybeLength; diff --git a/src/core/jpeg_stream.js b/src/core/jpeg_stream.js index c4cb56920d33b..66638ea138418 100644 --- a/src/core/jpeg_stream.js +++ b/src/core/jpeg_stream.js @@ -26,6 +26,7 @@ import { JpegImage } from "./jpg.js"; * DecodeStreams. */ const JpegStream = (function JpegStreamClosure() { + // eslint-disable-next-line no-shadow function JpegStream(stream, maybeLength, dict, params) { // Some images may contain 'junk' before the SOI (start-of-image) marker. // Note: this seems to mainly affect inline images. diff --git a/src/core/jpg.js b/src/core/jpg.js index 7214abe9624d0..3433dadce96ae 100644 --- a/src/core/jpg.js +++ b/src/core/jpg.js @@ -73,6 +73,7 @@ var JpegImage = (function JpegImageClosure() { var dctSqrt2 = 5793; // sqrt(2) var dctSqrt1d2 = 2896; // sqrt(2) / 2 + // eslint-disable-next-line no-shadow function JpegImage({ decodeTransform = null, colorTransform = -1 } = {}) { this._decodeTransform = decodeTransform; this._colorTransform = colorTransform; diff --git a/src/core/jpx.js b/src/core/jpx.js index a8206360ce63f..c7a3a6ec0d729 100644 --- a/src/core/jpx.js +++ b/src/core/jpx.js @@ -31,6 +31,8 @@ var JpxImage = (function JpxImageClosure() { HL: 1, HH: 2, }; + + // eslint-disable-next-line no-shadow function JpxImage() { this.failOnCorruptedImage = false; } @@ -1585,6 +1587,7 @@ var JpxImage = (function JpxImageClosure() { // Section B.10.2 Tag trees var TagTree = (function TagTreeClosure() { + // eslint-disable-next-line no-shadow function TagTree(width, height) { var levelsLength = log2(Math.max(width, height)) + 1; this.levels = []; @@ -1646,6 +1649,7 @@ var JpxImage = (function JpxImageClosure() { })(); var InclusionTree = (function InclusionTreeClosure() { + // eslint-disable-next-line no-shadow function InclusionTree(width, height, defaultValue) { var levelsLength = log2(Math.max(width, height)) + 1; this.levels = []; @@ -1752,6 +1756,7 @@ var JpxImage = (function JpxImageClosure() { 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8 ]); + // eslint-disable-next-line no-shadow function BitModel(width, height, subband, zeroBitPlanes, mb) { this.width = width; this.height = height; @@ -2107,6 +2112,7 @@ var JpxImage = (function JpxImageClosure() { // Section F, Discrete wavelet transformation var Transform = (function TransformClosure() { + // eslint-disable-next-line no-shadow function Transform() {} Transform.prototype.calculate = function transformCalculate( @@ -2248,6 +2254,7 @@ var JpxImage = (function JpxImageClosure() { // Section 3.8.2 Irreversible 9-7 filter var IrreversibleTransform = (function IrreversibleTransformClosure() { + // eslint-disable-next-line no-shadow function IrreversibleTransform() { Transform.call(this); } @@ -2345,6 +2352,7 @@ var JpxImage = (function JpxImageClosure() { // Section 3.8.1 Reversible 5-3 filter var ReversibleTransform = (function ReversibleTransformClosure() { + // eslint-disable-next-line no-shadow function ReversibleTransform() { Transform.call(this); } diff --git a/src/core/jpx_stream.js b/src/core/jpx_stream.js index 04ec03ac8a597..0c2c04fc2c752 100644 --- a/src/core/jpx_stream.js +++ b/src/core/jpx_stream.js @@ -22,6 +22,7 @@ import { shadow } from "../shared/util.js"; * the stream behaves like all the other DecodeStreams. */ const JpxStream = (function JpxStreamClosure() { + // eslint-disable-next-line no-shadow function JpxStream(stream, maybeLength, dict, params) { this.stream = stream; this.maybeLength = maybeLength; diff --git a/src/core/obj.js b/src/core/obj.js index b5ceccd615105..f8a820b6236e4 100644 --- a/src/core/obj.js +++ b/src/core/obj.js @@ -1116,6 +1116,7 @@ class Catalog { } var XRef = (function XRefClosure() { + // eslint-disable-next-line no-shadow function XRef(stream, pdfManager) { this.stream = stream; this.pdfManager = pdfManager; @@ -2089,6 +2090,7 @@ class NumberTree extends NameOrNumberTree { * collections attributes and related files (/RF) */ var FileSpec = (function FileSpecClosure() { + // eslint-disable-next-line no-shadow function FileSpec(root, xref) { if (!root || !isDict(root)) { return; @@ -2214,6 +2216,7 @@ const ObjectLoader = (function() { } } + // eslint-disable-next-line no-shadow function ObjectLoader(dict, keys, xref) { this.dict = dict; this.keys = keys; diff --git a/src/core/operator_list.js b/src/core/operator_list.js index eef990f092cb5..385e35190b534 100644 --- a/src/core/operator_list.js +++ b/src/core/operator_list.js @@ -490,6 +490,7 @@ var QueueOptimizer = (function QueueOptimizerClosure() { } ); + // eslint-disable-next-line no-shadow function QueueOptimizer(queue) { this.queue = queue; this.state = null; @@ -584,6 +585,7 @@ var QueueOptimizer = (function QueueOptimizerClosure() { })(); var NullOptimizer = (function NullOptimizerClosure() { + // eslint-disable-next-line no-shadow function NullOptimizer(queue) { this.queue = queue; } @@ -606,6 +608,7 @@ var OperatorList = (function OperatorListClosure() { var CHUNK_SIZE = 1000; var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5; // close to chunk size + // eslint-disable-next-line no-shadow function OperatorList(intent, streamSink, pageIndex) { this._streamSink = streamSink; this.fnArray = []; diff --git a/src/core/pattern.js b/src/core/pattern.js index 4e090783707d0..a2d752f5cf5a2 100644 --- a/src/core/pattern.js +++ b/src/core/pattern.js @@ -38,6 +38,7 @@ var ShadingType = { var Pattern = (function PatternClosure() { // Constructor should define this.getPattern + // eslint-disable-next-line no-shadow function Pattern() { unreachable("should not call Pattern constructor"); } @@ -450,6 +451,8 @@ Shadings.Mesh = (function MeshClosure() { return lut; } var cache = []; + + // eslint-disable-next-line no-shadow return function getB(count) { if (!cache[count]) { cache[count] = buildB(count); diff --git a/src/core/primitives.js b/src/core/primitives.js index b3c5971249d5a..a0e8d62c36da5 100644 --- a/src/core/primitives.js +++ b/src/core/primitives.js @@ -21,6 +21,7 @@ var EOF = {}; var Name = (function NameClosure() { let nameCache = Object.create(null); + // eslint-disable-next-line no-shadow function Name(name) { this.name = name; } @@ -43,6 +44,7 @@ var Name = (function NameClosure() { var Cmd = (function CmdClosure() { let cmdCache = Object.create(null); + // eslint-disable-next-line no-shadow function Cmd(cmd) { this.cmd = cmd; } @@ -68,6 +70,7 @@ var Dict = (function DictClosure() { }; // xref is optional + // eslint-disable-next-line no-shadow function Dict(xref) { // Map should only be used internally, use functions below to access. this._map = Object.create(null); @@ -185,6 +188,7 @@ var Dict = (function DictClosure() { var Ref = (function RefClosure() { let refCache = Object.create(null); + // eslint-disable-next-line no-shadow function Ref(num, gen) { this.num = num; this.gen = gen; @@ -218,6 +222,7 @@ var Ref = (function RefClosure() { // The reference is identified by number and generation. // This structure stores only one instance of the reference. var RefSet = (function RefSetClosure() { + // eslint-disable-next-line no-shadow function RefSet() { this.dict = Object.create(null); } @@ -240,6 +245,7 @@ var RefSet = (function RefSetClosure() { })(); var RefSetCache = (function RefSetCacheClosure() { + // eslint-disable-next-line no-shadow function RefSetCache() { this.dict = Object.create(null); } diff --git a/src/core/ps_parser.js b/src/core/ps_parser.js index 34d70e98169f7..fc97b057f9053 100644 --- a/src/core/ps_parser.js +++ b/src/core/ps_parser.js @@ -113,6 +113,7 @@ const PostScriptTokenTypes = { const PostScriptToken = (function PostScriptTokenClosure() { const opCache = Object.create(null); + // eslint-disable-next-line no-shadow class PostScriptToken { constructor(type, value) { this.type = type; diff --git a/src/core/stream.js b/src/core/stream.js index 072c78cdcc6fe..0b5d5e1f6375d 100644 --- a/src/core/stream.js +++ b/src/core/stream.js @@ -24,6 +24,7 @@ import { isDict } from "./primitives.js"; import { isWhiteSpace } from "./core_utils.js"; var Stream = (function StreamClosure() { + // eslint-disable-next-line no-shadow function Stream(arrayBuffer, start, length, dict) { this.bytes = arrayBuffer instanceof Uint8Array @@ -129,6 +130,7 @@ var Stream = (function StreamClosure() { })(); var StringStream = (function StringStreamClosure() { + // eslint-disable-next-line no-shadow function StringStream(str) { const bytes = stringToBytes(str); Stream.call(this, bytes); @@ -147,6 +149,7 @@ var DecodeStream = (function DecodeStreamClosure() { // buffer. var emptyBuffer = new Uint8Array(0); + // eslint-disable-next-line no-shadow function DecodeStream(maybeMinBufferLength) { this._rawMinBufferLength = maybeMinBufferLength || 0; @@ -282,6 +285,7 @@ var DecodeStream = (function DecodeStreamClosure() { })(); var StreamsSequenceStream = (function StreamsSequenceStreamClosure() { + // eslint-disable-next-line no-shadow function StreamsSequenceStream(streams) { this.streams = streams; @@ -426,6 +430,7 @@ var FlateStream = (function FlateStreamClosure() { 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000 ]), 5]; + // eslint-disable-next-line no-shadow function FlateStream(str, maybeLength) { this.str = str; this.dict = str.dict; @@ -711,6 +716,7 @@ var FlateStream = (function FlateStreamClosure() { })(); var PredictorStream = (function PredictorStreamClosure() { + // eslint-disable-next-line no-shadow function PredictorStream(str, maybeLength, params) { if (!isDict(params)) { return str; // no prediction @@ -932,6 +938,7 @@ var PredictorStream = (function PredictorStreamClosure() { })(); var DecryptStream = (function DecryptStreamClosure() { + // eslint-disable-next-line no-shadow function DecryptStream(str, maybeLength, decrypt) { this.str = str; this.dict = str.dict; @@ -978,6 +985,7 @@ var DecryptStream = (function DecryptStreamClosure() { })(); var Ascii85Stream = (function Ascii85StreamClosure() { + // eslint-disable-next-line no-shadow function Ascii85Stream(str, maybeLength) { this.str = str; this.dict = str.dict; @@ -1062,6 +1070,7 @@ var Ascii85Stream = (function Ascii85StreamClosure() { })(); var AsciiHexStream = (function AsciiHexStreamClosure() { + // eslint-disable-next-line no-shadow function AsciiHexStream(str, maybeLength) { this.str = str; this.dict = str.dict; @@ -1128,6 +1137,7 @@ var AsciiHexStream = (function AsciiHexStreamClosure() { })(); var RunLengthStream = (function RunLengthStreamClosure() { + // eslint-disable-next-line no-shadow function RunLengthStream(str, maybeLength) { this.str = str; this.dict = str.dict; @@ -1175,6 +1185,7 @@ var RunLengthStream = (function RunLengthStreamClosure() { })(); var LZWStream = (function LZWStreamClosure() { + // eslint-disable-next-line no-shadow function LZWStream(str, maybeLength, earlyChange) { this.str = str; this.dict = str.dict; @@ -1311,6 +1322,7 @@ var LZWStream = (function LZWStreamClosure() { })(); var NullStream = (function NullStreamClosure() { + // eslint-disable-next-line no-shadow function NullStream() { Stream.call(this, new Uint8Array(0)); } diff --git a/src/core/type1_parser.js b/src/core/type1_parser.js index 80428e4a83b45..76f5c3d2f5704 100644 --- a/src/core/type1_parser.js +++ b/src/core/type1_parser.js @@ -79,6 +79,7 @@ var Type1CharString = (function Type1CharStringClosure() { hvcurveto: [31], }; + // eslint-disable-next-line no-shadow function Type1CharString() { this.width = 0; this.lsb = 0; @@ -451,6 +452,7 @@ var Type1Parser = (function Type1ParserClosure() { ); } + // eslint-disable-next-line no-shadow function Type1Parser(stream, encrypted, seacAnalysisEnabled) { if (encrypted) { var data = stream.getBytes(); diff --git a/src/core/worker.js b/src/core/worker.js index c92ac19582933..34e5a824c3f3d 100644 --- a/src/core/worker.js +++ b/src/core/worker.js @@ -38,6 +38,7 @@ import { PDFWorkerStream } from "./worker_stream.js"; import { XRefParseException } from "./core_utils.js"; var WorkerTask = (function WorkerTaskClosure() { + // eslint-disable-next-line no-shadow function WorkerTask(name) { this.name = name; this.terminated = false; diff --git a/src/display/api.js b/src/display/api.js index 4e50d987c5114..4f5749f35b1e6 100644 --- a/src/display/api.js +++ b/src/display/api.js @@ -420,6 +420,7 @@ const PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() { * (such as network requests) and provides a way to listen for completion, * after which individual pages can be rendered. */ + // eslint-disable-next-line no-shadow class PDFDocumentLoadingTask { constructor() { this._capability = createPromiseCapability(); @@ -1679,6 +1680,7 @@ const PDFWorker = (function PDFWorkerClosure() { * thread to the worker thread and vice versa. If the creation of a web * worker is not possible, a "fake" worker will be used instead. */ + // eslint-disable-next-line no-shadow class PDFWorker { /** * @param {PDFWorkerParameters} params - Worker initialization parameters. @@ -2700,6 +2702,7 @@ class RenderTask { const InternalRenderTask = (function InternalRenderTaskClosure() { const canvasInRendering = new WeakSet(); + // eslint-disable-next-line no-shadow class InternalRenderTask { constructor({ callback, diff --git a/src/display/canvas.js b/src/display/canvas.js index de0147aaf40e8..89345ae5875ab 100644 --- a/src/display/canvas.js +++ b/src/display/canvas.js @@ -168,6 +168,7 @@ function addContextCurrentTransform(ctx) { } var CachedCanvases = (function CachedCanvasesClosure() { + // eslint-disable-next-line no-shadow function CachedCanvases(canvasFactory) { this.canvasFactory = canvasFactory; this.cache = Object.create(null); @@ -383,6 +384,7 @@ function compileType3Glyph(imgData) { } var CanvasExtraState = (function CanvasExtraStateClosure() { + // eslint-disable-next-line no-shadow function CanvasExtraState() { // Are soft masks and alpha values shapes or opacities? this.alphaIsShape = false; @@ -435,6 +437,7 @@ var CanvasGraphics = (function CanvasGraphicsClosure() { // Defines the number of steps before checking the execution time var EXECUTION_STEPS = 10; + // eslint-disable-next-line no-shadow function CanvasGraphics( canvasCtx, commonObjs, diff --git a/src/display/pattern_helper.js b/src/display/pattern_helper.js index 190cbd3891dbe..9b0fb08e9e51c 100644 --- a/src/display/pattern_helper.js +++ b/src/display/pattern_helper.js @@ -226,6 +226,7 @@ var createMeshCanvas = (function createMeshCanvasClosure() { } } + // eslint-disable-next-line no-shadow function createMeshCanvas( bounds, combinesScale, @@ -413,6 +414,7 @@ var TilingPattern = (function TilingPatternClosure() { var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough + // eslint-disable-next-line no-shadow function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) { this.operatorList = IR[2]; this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; diff --git a/src/display/svg.js b/src/display/svg.js index 882972eb6160b..e605d70549b6a 100644 --- a/src/display/svg.js +++ b/src/display/svg.js @@ -286,6 +286,7 @@ if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) { return createObjectURL(data, "image/png", forceDataSchema); } + // eslint-disable-next-line no-shadow return function convertImgDataToPng(imgData, forceDataSchema, isMask) { const kind = imgData.kind === undefined ? ImageKind.GRAYSCALE_1BPP : imgData.kind; @@ -437,6 +438,7 @@ if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) { let maskCount = 0; let shadingCount = 0; + // eslint-disable-next-line no-shadow SVGGraphics = class SVGGraphics { constructor(commonObjs, objs, forceDataSchema) { this.svgFactory = new DOMSVGFactory(); diff --git a/src/display/text_layer.js b/src/display/text_layer.js index e668bead31ee6..6db45eac24a75 100644 --- a/src/display/text_layer.js +++ b/src/display/text_layer.js @@ -719,6 +719,7 @@ var renderTextLayer = (function renderTextLayerClosure() { * @param {TextLayerRenderParameters} renderParameters * @returns {TextLayerRenderTask} */ + // eslint-disable-next-line no-shadow function renderTextLayer(renderParameters) { var task = new TextLayerRenderTask({ textContent: renderParameters.textContent, diff --git a/src/shared/util.js b/src/shared/util.js index a2a4bfc59b95c..dc4a4a2d85381 100644 --- a/src/shared/util.js +++ b/src/shared/util.js @@ -405,6 +405,7 @@ function shadow(obj, prop, value) { } const BaseException = (function BaseExceptionClosure() { + // eslint-disable-next-line no-shadow function BaseException(message) { if (this.constructor === BaseException) { unreachable("Cannot initialize BaseException."); @@ -859,6 +860,7 @@ const createObjectURL = (function createObjectURLClosure() { const digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + // eslint-disable-next-line no-shadow return function createObjectURL(data, contentType, forceDataSchema = false) { if (!forceDataSchema && URL.createObjectURL) { const blob = new Blob([data], { type: contentType }); diff --git a/test/driver.js b/test/driver.js index 5458f3b2b7c3c..15f44a4a5da18 100644 --- a/test/driver.js +++ b/test/driver.js @@ -45,6 +45,7 @@ var rasterizeTextLayer = (function rasterizeTextLayerClosure() { return textLayerStylePromise; } + // eslint-disable-next-line no-shadow function rasterizeTextLayer( ctx, viewport, @@ -178,6 +179,7 @@ var rasterizeAnnotationLayer = (function rasterizeAnnotationLayerClosure() { return imagePromises; } + // eslint-disable-next-line no-shadow function rasterizeAnnotationLayer( ctx, viewport, @@ -283,6 +285,7 @@ var Driver = (function DriverClosure() { * @constructs Driver * @param {DriverOptions} options */ + // eslint-disable-next-line no-shadow function Driver(options) { // Configure the global worker options. pdfjsLib.GlobalWorkerOptions.workerSrc = WORKER_SRC; diff --git a/web/debugger.js b/web/debugger.js index 39b1e00200965..ed7ee5a54e2a9 100644 --- a/web/debugger.js +++ b/web/debugger.js @@ -285,6 +285,7 @@ var Stepper = (function StepperClosure() { return simpleObj; } + // eslint-disable-next-line no-shadow function Stepper(panel, pageIndex, initialBreakPoints) { this.panel = panel; this.breakPoint = 0; From fdfcde2b40dbdd3cbadc86cd877d5c38251c9ebd Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Wed, 25 Mar 2020 11:27:45 +0100 Subject: [PATCH 3/3] Remove a spurious `console.log` from the `ChromiumBrowser` function in `test/webbrowser.js` file This looks entirely like something which was left-over from debugging, and that line hasn't been touched since PR 4515, especially considering that the corresponding branch in `FirefoxBrowser` doesn't print anything. --- test/webbrowser.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/webbrowser.js b/test/webbrowser.js index 93137ec872775..cc03732bed827 100644 --- a/test/webbrowser.js +++ b/test/webbrowser.js @@ -258,7 +258,6 @@ function ChromiumBrowser(name, execPath, headless) { var m = /([^.\/]+)\.app(\/?)$/.exec(execPath); if (m) { execPath += (m[2] ? "" : "/") + "Contents/MacOS/" + m[1]; - console.log(execPath); } } WebBrowser.call(this, name, execPath, headless);