Syntax changed that will help minifiers/compilers (such as the Closure Compiler) in their processing. In particular, preventing said minifiers/compilers from making dangerous renames.

This commit is contained in:
Pimm Hogeling 2012-08-31 13:40:37 +02:00
parent 438e3c8f6d
commit 0fbbc5a840
5 changed files with 40 additions and 19 deletions

View File

@ -345,8 +345,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();
}

View File

@ -3141,8 +3141,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;
},

View File

@ -255,7 +255,7 @@ 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;

View File

@ -5,12 +5,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
@ -33,7 +37,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);

View File

@ -11,11 +11,17 @@ 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);
}];
@ -263,7 +269,7 @@ var consoleTimer = {};
var workerConsole = {
log: function log() {
var args = Array.prototype.slice.call(arguments);
postMessage({
globalScope.postMessage({
action: 'console_log',
data: args
});
@ -271,7 +277,7 @@ var workerConsole = {
error: function error() {
var args = Array.prototype.slice.call(arguments);
postMessage({
globalScope.postMessage({
action: 'console_error',
data: args
});
@ -299,7 +305,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
});