Browse Source

Replace unnecessary `bind(this)` and `var self = this` statements with arrow functions in remaining `src/` files

Jonas Jenwald 8 years ago
parent
commit
6c81b8e6dd
  1. 17
      src/display/annotation_layer.js
  2. 126
      src/display/api.js
  3. 8
      src/display/dom_utils.js
  4. 13
      src/display/svg.js
  5. 7
      src/display/text_layer.js
  6. 4
      src/shared/compatibility.js
  7. 4
      src/shared/util.js

17
src/display/annotation_layer.js

@ -312,13 +312,11 @@ var LinkAnnotationElement = (function LinkAnnotationElementClosure() {
* @param {Object} destination * @param {Object} destination
* @memberof LinkAnnotationElement * @memberof LinkAnnotationElement
*/ */
_bindLink: function LinkAnnotationElement_bindLink(link, destination) { _bindLink(link, destination) {
var self = this;
link.href = this.linkService.getDestinationHash(destination); link.href = this.linkService.getDestinationHash(destination);
link.onclick = function() { link.onclick = () => {
if (destination) { if (destination) {
self.linkService.navigateTo(destination); this.linkService.navigateTo(destination);
} }
return false; return false;
}; };
@ -335,13 +333,10 @@ var LinkAnnotationElement = (function LinkAnnotationElementClosure() {
* @param {Object} action * @param {Object} action
* @memberof LinkAnnotationElement * @memberof LinkAnnotationElement
*/ */
_bindNamedAction: _bindNamedAction(link, action) {
function LinkAnnotationElement_bindNamedAction(link, action) {
var self = this;
link.href = this.linkService.getAnchorUrl(''); link.href = this.linkService.getAnchorUrl('');
link.onclick = function() { link.onclick = () => {
self.linkService.executeNamedAction(action); this.linkService.executeNamedAction(action);
return false; return false;
}; };
link.className = 'internalLink'; link.className = 'internalLink';

126
src/display/api.js

@ -369,13 +369,13 @@ var PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() {
var transportDestroyed = !this._transport ? Promise.resolve() : var transportDestroyed = !this._transport ? Promise.resolve() :
this._transport.destroy(); this._transport.destroy();
return transportDestroyed.then(function () { return transportDestroyed.then(() => {
this._transport = null; this._transport = null;
if (this._worker) { if (this._worker) {
this._worker.destroy(); this._worker.destroy();
this._worker = null; this._worker = null;
} }
}.bind(this)); });
}, },
/** /**
@ -436,22 +436,22 @@ var PDFDataRangeTransport = (function pdfDataRangeTransportClosure() {
}, },
onDataProgress: function PDFDataRangeTransport_onDataProgress(loaded) { onDataProgress: function PDFDataRangeTransport_onDataProgress(loaded) {
this._readyCapability.promise.then(function () { this._readyCapability.promise.then(() => {
var listeners = this._progressListeners; var listeners = this._progressListeners;
for (var i = 0, n = listeners.length; i < n; ++i) { for (var i = 0, n = listeners.length; i < n; ++i) {
listeners[i](loaded); listeners[i](loaded);
} }
}.bind(this)); });
}, },
onDataProgressiveRead: onDataProgressiveRead:
function PDFDataRangeTransport_onDataProgress(chunk) { function PDFDataRangeTransport_onDataProgress(chunk) {
this._readyCapability.promise.then(function () { this._readyCapability.promise.then(() => {
var listeners = this._progressiveReadListeners; var listeners = this._progressiveReadListeners;
for (var i = 0, n = listeners.length; i < n; ++i) { for (var i = 0, n = listeners.length; i < n; ++i) {
listeners[i](chunk); listeners[i](chunk);
} }
}.bind(this)); });
}, },
transportReady: function PDFDataRangeTransport_transportReady() { transportReady: function PDFDataRangeTransport_transportReady() {
@ -822,6 +822,26 @@ var PDFPageProxy = (function PDFPageProxyClosure() {
}); });
} }
var complete = (error) => {
var i = intentState.renderTasks.indexOf(internalRenderTask);
if (i >= 0) {
intentState.renderTasks.splice(i, 1);
}
if (this.cleanupAfterRender) {
this.pendingCleanup = true;
}
this._tryCleanup();
if (error) {
internalRenderTask.capability.reject(error);
} else {
internalRenderTask.capability.resolve();
}
stats.timeEnd('Rendering');
stats.timeEnd('Overall');
};
var internalRenderTask = new InternalRenderTask(complete, params, var internalRenderTask = new InternalRenderTask(complete, params,
this.objs, this.objs,
this.commonObjs, this.commonObjs,
@ -841,41 +861,15 @@ var PDFPageProxy = (function PDFPageProxyClosure() {
renderTask.onContinue = params.continueCallback; renderTask.onContinue = params.continueCallback;
} }
var self = this; intentState.displayReadyCapability.promise.then((transparency) => {
intentState.displayReadyCapability.promise.then( if (this.pendingCleanup) {
function pageDisplayReadyPromise(transparency) {
if (self.pendingCleanup) {
complete(); complete();
return; return;
} }
stats.time('Rendering'); stats.time('Rendering');
internalRenderTask.initializeGraphics(transparency); internalRenderTask.initializeGraphics(transparency);
internalRenderTask.operatorListChanged(); internalRenderTask.operatorListChanged();
}, }, complete);
function pageDisplayReadPromiseError(reason) {
complete(reason);
}
);
function complete(error) {
var i = intentState.renderTasks.indexOf(internalRenderTask);
if (i >= 0) {
intentState.renderTasks.splice(i, 1);
}
if (self.cleanupAfterRender) {
self.pendingCleanup = true;
}
self._tryCleanup();
if (error) {
internalRenderTask.capability.reject(error);
} else {
internalRenderTask.capability.resolve();
}
stats.timeEnd('Rendering');
stats.timeEnd('Overall');
}
return renderTask; return renderTask;
}, },
@ -1106,11 +1100,11 @@ class LoopbackPort {
var cloned = new WeakMap(); var cloned = new WeakMap();
var e = {data: cloneValue(obj)}; var e = {data: cloneValue(obj)};
this._deferred.then(function () { this._deferred.then(() => {
this._listeners.forEach(function (listener) { this._listeners.forEach(function (listener) {
listener.call(this, e); listener.call(this, e);
}, this); }, this);
}.bind(this)); });
} }
addEventListener(name, listener) { addEventListener(name, listener) {
@ -1267,7 +1261,7 @@ var PDFWorker = (function PDFWorkerClosure() {
// https://bugzilla.mozilla.org/show_bug.cgi?id=683280 // https://bugzilla.mozilla.org/show_bug.cgi?id=683280
var worker = new Worker(workerSrc); var worker = new Worker(workerSrc);
var messageHandler = new MessageHandler('main', 'worker', worker); var messageHandler = new MessageHandler('main', 'worker', worker);
var terminateEarly = function() { var terminateEarly = () => {
worker.removeEventListener('error', onWorkerError); worker.removeEventListener('error', onWorkerError);
messageHandler.destroy(); messageHandler.destroy();
worker.terminate(); worker.terminate();
@ -1278,18 +1272,18 @@ var PDFWorker = (function PDFWorkerClosure() {
// error (e.g. NetworkError / SecurityError). // error (e.g. NetworkError / SecurityError).
this._setupFakeWorker(); this._setupFakeWorker();
} }
}.bind(this); };
var onWorkerError = function(event) { var onWorkerError = () => {
if (!this._webWorker) { if (!this._webWorker) {
// Worker failed to initialize due to an error. Clean up and fall // Worker failed to initialize due to an error. Clean up and fall
// back to the fake worker. // back to the fake worker.
terminateEarly(); terminateEarly();
} }
}.bind(this); };
worker.addEventListener('error', onWorkerError); worker.addEventListener('error', onWorkerError);
messageHandler.on('test', function PDFWorker_test(data) { messageHandler.on('test', (data) => {
worker.removeEventListener('error', onWorkerError); worker.removeEventListener('error', onWorkerError);
if (this.destroyed) { if (this.destroyed) {
terminateEarly(); terminateEarly();
@ -1313,7 +1307,7 @@ var PDFWorker = (function PDFWorkerClosure() {
messageHandler.destroy(); messageHandler.destroy();
worker.terminate(); worker.terminate();
} }
}.bind(this)); });
messageHandler.on('console_log', function (data) { messageHandler.on('console_log', function (data) {
console.log.apply(console, data); console.log.apply(console, data);
@ -1322,7 +1316,7 @@ var PDFWorker = (function PDFWorkerClosure() {
console.error.apply(console, data); console.error.apply(console, data);
}); });
messageHandler.on('ready', function (data) { messageHandler.on('ready', (data) => {
worker.removeEventListener('error', onWorkerError); worker.removeEventListener('error', onWorkerError);
if (this.destroyed) { if (this.destroyed) {
terminateEarly(); terminateEarly();
@ -1334,7 +1328,7 @@ var PDFWorker = (function PDFWorkerClosure() {
// We need fallback to a faked worker. // We need fallback to a faked worker.
this._setupFakeWorker(); this._setupFakeWorker();
} }
}.bind(this)); });
var sendTest = function () { var sendTest = function () {
var postMessageTransfers = var postMessageTransfers =
@ -1373,7 +1367,7 @@ var PDFWorker = (function PDFWorkerClosure() {
isWorkerDisabled = true; isWorkerDisabled = true;
} }
setupFakeWorkerGlobal().then(function (WorkerMessageHandler) { setupFakeWorkerGlobal().then((WorkerMessageHandler) => {
if (this.destroyed) { if (this.destroyed) {
this._readyCapability.reject(new Error('Worker was destroyed')); this._readyCapability.reject(new Error('Worker was destroyed'));
return; return;
@ -1397,7 +1391,7 @@ var PDFWorker = (function PDFWorkerClosure() {
var messageHandler = new MessageHandler(id, id + '_worker', port); var messageHandler = new MessageHandler(id, id + '_worker', port);
this._messageHandler = messageHandler; this._messageHandler = messageHandler;
this._readyCapability.resolve(); this._readyCapability.resolve();
}.bind(this)); });
}, },
/** /**
@ -1472,21 +1466,20 @@ var WorkerTransport = (function WorkerTransportClosure() {
}); });
this.pageCache = []; this.pageCache = [];
this.pagePromises = []; this.pagePromises = [];
var self = this;
// We also need to wait for the worker to finish its long running tasks. // We also need to wait for the worker to finish its long running tasks.
var terminated = this.messageHandler.sendWithPromise('Terminate', null); var terminated = this.messageHandler.sendWithPromise('Terminate', null);
waitOn.push(terminated); waitOn.push(terminated);
Promise.all(waitOn).then(function () { Promise.all(waitOn).then(() => {
self.fontLoader.clear(); this.fontLoader.clear();
if (self.pdfDataRangeTransport) { if (this.pdfDataRangeTransport) {
self.pdfDataRangeTransport.abort(); this.pdfDataRangeTransport.abort();
self.pdfDataRangeTransport = null; this.pdfDataRangeTransport = null;
} }
if (self.messageHandler) { if (this.messageHandler) {
self.messageHandler.destroy(); this.messageHandler.destroy();
self.messageHandler = null; this.messageHandler = null;
} }
self.destroyCapability.resolve(); this.destroyCapability.resolve();
}, this.destroyCapability.reject); }, this.destroyCapability.reject);
return this.destroyCapability.promise; return this.destroyCapability.promise;
}, },
@ -1641,13 +1634,11 @@ var WorkerTransport = (function WorkerTransportClosure() {
disableFontFace: getDefaultSetting('disableFontFace'), disableFontFace: getDefaultSetting('disableFontFace'),
fontRegistry, fontRegistry,
}); });
var fontReady = (fontObjs) => {
this.fontLoader.bind(
[font],
function fontReady(fontObjs) {
this.commonObjs.resolve(id, font); this.commonObjs.resolve(id, font);
}.bind(this) };
);
this.fontLoader.bind([font], fontReady);
break; break;
case 'FontPath': case 'FontPath':
this.commonObjs.resolve(id, data[2]); this.commonObjs.resolve(id, data[2]);
@ -1821,14 +1812,14 @@ var WorkerTransport = (function WorkerTransportClosure() {
} }
var promise = this.messageHandler.sendWithPromise('GetPage', { var promise = this.messageHandler.sendWithPromise('GetPage', {
pageIndex, pageIndex,
}).then(function (pageInfo) { }).then((pageInfo) => {
if (this.destroyed) { if (this.destroyed) {
throw new Error('Transport destroyed'); throw new Error('Transport destroyed');
} }
var page = new PDFPageProxy(pageIndex, pageInfo, this); var page = new PDFPageProxy(pageIndex, pageInfo, this);
this.pageCache[pageIndex] = page; this.pageCache[pageIndex] = page;
return page; return page;
}.bind(this)); });
this.pagePromises[pageIndex] = promise; this.pagePromises[pageIndex] = promise;
return promise; return promise;
}, },
@ -1889,8 +1880,7 @@ var WorkerTransport = (function WorkerTransportClosure() {
}, },
startCleanup: function WorkerTransport_startCleanup() { startCleanup: function WorkerTransport_startCleanup() {
this.messageHandler.sendWithPromise('Cleanup', null). this.messageHandler.sendWithPromise('Cleanup', null).then(() => {
then(function endCleanup() {
for (var i = 0, ii = this.pageCache.length; i < ii; i++) { for (var i = 0, ii = this.pageCache.length; i < ii; i++) {
var page = this.pageCache[i]; var page = this.pageCache[i];
if (page) { if (page) {
@ -1899,7 +1889,7 @@ var WorkerTransport = (function WorkerTransportClosure() {
} }
this.commonObjs.clear(); this.commonObjs.clear();
this.fontLoader.clear(); this.fontLoader.clear();
}.bind(this)); });
} }
}; };
return WorkerTransport; return WorkerTransport;

8
src/display/dom_utils.js

@ -64,7 +64,7 @@ var DOMCMapReaderFactory = (function DOMCMapReaderFactoryClosure() {
if (!name) { if (!name) {
return Promise.reject(new Error('CMap name must be specified.')); return Promise.reject(new Error('CMap name must be specified.'));
} }
return new Promise(function (resolve, reject) { return new Promise((resolve, reject) => {
var url = this.baseUrl + name + (this.isCompressed ? '.bcmap' : ''); var url = this.baseUrl + name + (this.isCompressed ? '.bcmap' : '');
var request = new XMLHttpRequest(); var request = new XMLHttpRequest();
@ -73,7 +73,7 @@ var DOMCMapReaderFactory = (function DOMCMapReaderFactoryClosure() {
if (this.isCompressed) { if (this.isCompressed) {
request.responseType = 'arraybuffer'; request.responseType = 'arraybuffer';
} }
request.onreadystatechange = function () { request.onreadystatechange = () => {
if (request.readyState !== XMLHttpRequest.DONE) { if (request.readyState !== XMLHttpRequest.DONE) {
return; return;
} }
@ -96,10 +96,10 @@ var DOMCMapReaderFactory = (function DOMCMapReaderFactoryClosure() {
reject(new Error('Unable to load ' + reject(new Error('Unable to load ' +
(this.isCompressed ? 'binary ' : '') + (this.isCompressed ? 'binary ' : '') +
'CMap at: ' + url)); 'CMap at: ' + url));
}.bind(this); };
request.send(null); request.send(null);
}.bind(this)); });
}, },
}; };

13
src/display/svg.js

@ -403,7 +403,6 @@ SVGGraphics = (function SVGGraphicsClosure() {
var fnArrayLen = fnArray.length; var fnArrayLen = fnArray.length;
var argsArray = operatorList.argsArray; var argsArray = operatorList.argsArray;
var self = this;
for (var i = 0; i < fnArrayLen; i++) { for (var i = 0; i < fnArrayLen; i++) {
if (OPS.dependency === fnArray[i]) { if (OPS.dependency === fnArray[i]) {
var deps = argsArray[i]; var deps = argsArray[i];
@ -412,12 +411,12 @@ SVGGraphics = (function SVGGraphicsClosure() {
var common = obj.substring(0, 2) === 'g_'; var common = obj.substring(0, 2) === 'g_';
var promise; var promise;
if (common) { if (common) {
promise = new Promise(function(resolve) { promise = new Promise((resolve) => {
self.commonObjs.get(obj, resolve); this.commonObjs.get(obj, resolve);
}); });
} else { } else {
promise = new Promise(function(resolve) { promise = new Promise((resolve) => {
self.objs.get(obj, resolve); this.objs.get(obj, resolve);
}); });
} }
this.current.dependencies.push(promise); this.current.dependencies.push(promise);
@ -438,12 +437,12 @@ SVGGraphics = (function SVGGraphicsClosure() {
this.viewport = viewport; this.viewport = viewport;
var svgElement = this._initialize(viewport); var svgElement = this._initialize(viewport);
return this.loadDependencies(operatorList).then(function () { return this.loadDependencies(operatorList).then(() => {
this.transformMatrix = IDENTITY_MATRIX; this.transformMatrix = IDENTITY_MATRIX;
var opTree = this.convertOpList(operatorList); var opTree = this.convertOpList(operatorList);
this.executeOpTree(opTree); this.executeOpTree(opTree);
return svgElement; return svgElement;
}.bind(this)); });
}, },
convertOpList: function SVGGraphics_convertOpList(operatorList) { convertOpList: function SVGGraphics_convertOpList(operatorList) {

7
src/display/text_layer.js

@ -537,10 +537,9 @@ var renderTextLayer = (function renderTextLayerClosure() {
if (!timeout) { // Render right away if (!timeout) { // Render right away
render(this); render(this);
} else { // Schedule } else { // Schedule
var self = this; this._renderTimer = setTimeout(() => {
this._renderTimer = setTimeout(function() { render(this);
render(self); this._renderTimer = null;
self._renderTimer = null;
}, timeout); }, timeout);
} }
}, },

4
src/shared/compatibility.js

@ -1000,7 +1000,7 @@ PDFJS.compatibilityChecked = true;
return; return;
} }
this.pendingRejectionCheck = true; this.pendingRejectionCheck = true;
setTimeout(function rejectionCheck() { setTimeout(() => {
this.pendingRejectionCheck = false; this.pendingRejectionCheck = false;
var now = Date.now(); var now = Date.now();
for (var i = 0; i < this.unhandledRejections.length; i++) { for (var i = 0; i < this.unhandledRejections.length; i++) {
@ -1023,7 +1023,7 @@ PDFJS.compatibilityChecked = true;
if (this.unhandledRejections.length) { if (this.unhandledRejections.length) {
this.scheduleRejectionCheck(); this.scheduleRejectionCheck();
} }
}.bind(this), REJECTION_TIMEOUT); }, REJECTION_TIMEOUT);
} }
}; };

4
src/shared/util.js

@ -1227,7 +1227,7 @@ function MessageHandler(sourceName, targetName, comObj) {
var callbacksCapabilities = this.callbacksCapabilities = Object.create(null); var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);
var ah = this.actionHandler = Object.create(null); var ah = this.actionHandler = Object.create(null);
this._onComObjOnMessage = function messageHandlerComObjOnMessage(event) { this._onComObjOnMessage = (event) => {
var data = event.data; var data = event.data;
if (data.targetName !== this.sourceName) { if (data.targetName !== this.sourceName) {
return; return;
@ -1279,7 +1279,7 @@ function MessageHandler(sourceName, targetName, comObj) {
} else { } else {
error('Unknown action from worker: ' + data.action); error('Unknown action from worker: ' + data.action);
} }
}.bind(this); };
comObj.addEventListener('message', this._onComObjOnMessage); comObj.addEventListener('message', this._onComObjOnMessage);
} }

Loading…
Cancel
Save