diff --git a/external/jpgjs/jpg.js b/external/jpgjs/jpg.js index 941d01a87..6873fc6c3 100644 --- a/external/jpgjs/jpg.js +++ b/external/jpgjs/jpg.js @@ -516,6 +516,10 @@ var JpegImage = (function jpegImage() { return lines; } + function clampTo8bit(a) { + return a < 0 ? 0 : a > 255 ? 255 : a; + } + constructor.prototype = { load: function load(path) { var xhr = new XMLHttpRequest(); @@ -766,9 +770,6 @@ var JpegImage = (function jpegImage() { } }, getData: function getData(width, height) { - function clampTo8bit(a) { - return a < 0 ? 0 : a > 255 ? 255 : a; - } var scaleX = this.width / width, scaleY = this.height / height; var component1, component2, component3, component4; @@ -935,4 +936,4 @@ var JpegImage = (function jpegImage() { }; return constructor; -})(); \ No newline at end of file +})(); diff --git a/src/api.js b/src/api.js index 169faea0d..201be6505 100644 --- a/src/api.js +++ b/src/api.js @@ -361,8 +361,9 @@ var PDFPageProxy = (function PDFPageProxyClosure() { var length = this.operatorList.fnArray.length; var operatorList = this.operatorList; var stepper = null; - if (PDFJS.pdfBug && StepperManager.enabled) { - stepper = StepperManager.create(this.pageNumber - 1); + if (PDFJS.pdfBug && 'StepperManager' in globalScope && + globalScope['StepperManager'].enabled) { + stepper = globalScope['StepperManager'].create(this.pageNumber - 1); stepper.init(operatorList); stepper.nextBreakPoint = stepper.getNextBreakPoint(); } diff --git a/src/colorspace.js b/src/colorspace.js index 6c27dfb99..e4ad6d530 100644 --- a/src/colorspace.js +++ b/src/colorspace.js @@ -193,7 +193,7 @@ var ColorSpace = (function ColorSpaceClosure() { return true; if (n * 2 !== decode.length) { - warning('The decode map is not the correct length'); + warn('The decode map is not the correct length'); return true; } for (var i = 0, ii = decode.length; i < ii; i += 2) { diff --git a/src/core.js b/src/core.js index e2803635c..0c416f475 100644 --- a/src/core.js +++ b/src/core.js @@ -236,7 +236,7 @@ var Page = (function PageClosure() { }, getLinks: function Page_getLinks() { var links = []; - var annotations = pageGetAnnotations(); + var annotations = this.getAnnotations(); var i, n = annotations.length; for (i = 0; i < n; ++i) { if (annotations[i].type != 'Link') diff --git a/src/fonts.js b/src/fonts.js index e344bbf4b..9f9762de8 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -3174,8 +3174,9 @@ var Font = (function FontClosure() { var styleSheet = styleElement.sheet; styleSheet.insertRule(rule, styleSheet.cssRules.length); - if (PDFJS.pdfBug && FontInspector.enabled) - FontInspector.fontAdded(this, url); + if (PDFJS.pdfBug && 'FontInspector' in globalScope && + globalScope['FontInspector'].enabled) + globalScope['FontInspector'].fontAdded(this, url); return rule; }, @@ -4704,7 +4705,7 @@ var CFFParser = (function CFFParserClosure() { var data = charstring; var length = data.length; - for (var j = 0; j <= length; j) { + for (var j = 0; j <= length;) { var value = data[j++]; if (value == 12 && data[j++] == 0) { data[j - 2] = 139; diff --git a/src/function.js b/src/function.js index 6e323e2d9..b17f5e697 100644 --- a/src/function.js +++ b/src/function.js @@ -167,7 +167,7 @@ var PDFFunction = (function PDFFunctionClosure() { var range = IR[9]; if (m != args.length) - error('Incorrect number of arguments: ' + inputSize + ' != ' + + error('Incorrect number of arguments: ' + m + ' != ' + args.length); var x = args; diff --git a/src/jpx.js b/src/jpx.js index ecd9a25ea..0df607541 100644 --- a/src/jpx.js +++ b/src/jpx.js @@ -269,7 +269,8 @@ var JpxImage = (function JpxImageClosure() { cod.resetContextProbabilities || cod.terminationOnEachCodingPass || cod.verticalyStripe || cod.predictableTermination) - throw 'Unsupported COD options: ' + uneval(cod); + throw 'Unsupported COD options: ' + + globalScope.JSON.stringify(cod); if (context.mainHeader) context.COD = cod; diff --git a/src/util.js b/src/util.js index e7e88f59a..39f26b2b4 100644 --- a/src/util.js +++ b/src/util.js @@ -19,12 +19,16 @@ // Use only for debugging purposes. This should not be used in any code that is // in mozilla master. -function log(msg) { - if (console && console.log) - console.log(msg); - else if (print) - print(msg); -} +var log = (function() { + if ('console' in globalScope && 'log' in globalScope['console']) { + return globalScope['console']['log'].bind(globalScope['console']); + } else if ('print' in globalScope) { + return globalScope['print'].bind(globalScope); + } else { + return function nop() { + }; + } +})(); // A notice for devs that will not trigger the fallback UI. These are good // for things that are helpful to devs, such as warning that Workers were @@ -47,7 +51,16 @@ function warn(msg) { // Fatal errors that should trigger the fallback UI and halt execution by // throwing an exception. function error(msg) { - log('Error: ' + msg); + // If multiple arguments were passed, pass them all to the log function. + if (arguments.length > 1) { + var logArguments = ['Error:']; + logArguments.push.apply(logArguments, arguments); + log.apply(null, logArguments); + // Join the arguments into a single string for the lines below. + msg = [].join.call(arguments, ' '); + } else { + log('Error: ' + msg); + } log(backtrace()); PDFJS.LogManager.notify('error', msg); throw new Error(msg); diff --git a/src/worker.js b/src/worker.js index cff45fbf9..d0c39e865 100644 --- a/src/worker.js +++ b/src/worker.js @@ -25,11 +25,18 @@ function MessageHandler(name, comObj) { var ah = this.actionHandler = {}; ah['console_log'] = [function ahConsoleLog(data) { - console.log.apply(console, data); - }]; - ah['console_error'] = [function ahConsoleError(data) { - console.error.apply(console, data); + log.apply(null, data); }]; + // If there's no console available, console_error in the + // action handler will do nothing. + if ('console' in globalScope) { + ah['console_error'] = [function ahConsoleError(data) { + globalScope['console'].error.apply(null, data); + }]; + } else { + ah['console_error'] = [function ahConsoleError(data) { + }]; + } ah['_warn'] = [function ah_Warn(data) { warn(data); }]; @@ -234,7 +241,7 @@ var WorkerMessageHandler = { return; } - console.log('page=%d - getOperatorList: time=%dms, len=%d', pageNum, + log('page=%d - getOperatorList: time=%dms, len=%d', pageNum, Date.now() - start, operatorList.fnArray.length); // Filter the dependecies for fonts. @@ -266,7 +273,7 @@ var WorkerMessageHandler = { promise.reject(e); } - console.log('text indexing: page=%d - time=%dms', + log('text indexing: page=%d - time=%dms', pageNum, Date.now() - start); }); } @@ -277,7 +284,7 @@ var consoleTimer = {}; var workerConsole = { log: function log() { var args = Array.prototype.slice.call(arguments); - postMessage({ + globalScope.postMessage({ action: 'console_log', data: args }); @@ -285,7 +292,7 @@ var workerConsole = { error: function error() { var args = Array.prototype.slice.call(arguments); - postMessage({ + globalScope.postMessage({ action: 'console_error', data: args }); @@ -313,7 +320,7 @@ if (typeof window === 'undefined') { // throw an exception which will be forwarded on automatically. PDFJS.LogManager.addLogger({ warn: function(msg) { - postMessage({ + globalScope.postMessage({ action: '_warn', data: msg });