Replace unnecessary var self = this statements with arrow functions in web/pdf_page_view.js and web/pdf_thumbnail_view.js

Also replaces `var` with `let` in code that's touched in the patch. Please note that this should be completely safe, for two separate reasons, since trying to access let in a scope where it's not defined is first of all a runtime error and second of all an ESLint error (thanks to the `no-undef` rule).
This commit is contained in:
Jonas Jenwald 2017-05-13 13:57:21 +02:00
parent 08f8b68f12
commit a9e5bc91fb
2 changed files with 71 additions and 82 deletions

View File

@ -356,7 +356,7 @@ var PDFPageView = (function PDFPageViewClosure() {
return this.viewport.convertToPdfPoint(x, y);
},
draw: function PDFPageView_draw() {
draw() {
if (this.renderingState !== RenderingStates.INITIAL) {
console.error('Must be in new state before drawing');
this.reset(); // Ensure that we reset all state to prevent issues.
@ -364,12 +364,11 @@ var PDFPageView = (function PDFPageViewClosure() {
this.renderingState = RenderingStates.RUNNING;
var self = this;
var pdfPage = this.pdfPage;
var div = this.div;
let pdfPage = this.pdfPage;
let div = this.div;
// Wrap the canvas so if it has a css transform for highdpi the overflow
// will be hidden in FF.
var canvasWrapper = document.createElement('div');
let canvasWrapper = document.createElement('div');
canvasWrapper.style.width = div.style.width;
canvasWrapper.style.height = div.style.height;
canvasWrapper.classList.add('canvasWrapper');
@ -381,10 +380,9 @@ var PDFPageView = (function PDFPageViewClosure() {
div.appendChild(canvasWrapper);
}
var textLayerDiv = null;
var textLayer = null;
let textLayer = null;
if (this.textLayerFactory) {
textLayerDiv = document.createElement('div');
let textLayerDiv = document.createElement('div');
textLayerDiv.className = 'textLayer';
textLayerDiv.style.width = canvasWrapper.style.width;
textLayerDiv.style.height = canvasWrapper.style.height;
@ -401,13 +399,13 @@ var PDFPageView = (function PDFPageViewClosure() {
}
this.textLayer = textLayer;
var renderContinueCallback = null;
let renderContinueCallback = null;
if (this.renderingQueue) {
renderContinueCallback = function renderContinueCallback(cont) {
if (!self.renderingQueue.isHighestPriority(self)) {
self.renderingState = RenderingStates.PAUSED;
self.resume = function resumeCallback() {
self.renderingState = RenderingStates.RUNNING;
renderContinueCallback = (cont) => {
if (!this.renderingQueue.isHighestPriority(this)) {
this.renderingState = RenderingStates.PAUSED;
this.resume = () => {
this.renderingState = RenderingStates.RUNNING;
cont();
};
return;
@ -416,37 +414,37 @@ var PDFPageView = (function PDFPageViewClosure() {
};
}
var finishPaintTask = function finishPaintTask(error) {
let finishPaintTask = (error) => {
// The paintTask may have been replaced by a new one, so only remove
// the reference to the paintTask if it matches the one that is
// triggering this callback.
if (paintTask === self.paintTask) {
self.paintTask = null;
if (paintTask === this.paintTask) {
this.paintTask = null;
}
if (((typeof PDFJSDev === 'undefined' ||
!PDFJSDev.test('PDFJS_NEXT')) && error === 'cancelled') ||
error instanceof RenderingCancelledException) {
self.error = null;
this.error = null;
return Promise.resolve(undefined);
}
self.renderingState = RenderingStates.FINISHED;
this.renderingState = RenderingStates.FINISHED;
if (self.loadingIconDiv) {
div.removeChild(self.loadingIconDiv);
delete self.loadingIconDiv;
if (this.loadingIconDiv) {
div.removeChild(this.loadingIconDiv);
delete this.loadingIconDiv;
}
self._resetZoomLayer(/* removeFromDOM = */ true);
this._resetZoomLayer(/* removeFromDOM = */ true);
self.error = error;
self.stats = pdfPage.stats;
if (self.onAfterDraw) {
self.onAfterDraw();
this.error = error;
this.stats = pdfPage.stats;
if (this.onAfterDraw) {
this.onAfterDraw();
}
self.eventBus.dispatch('pagerendered', {
source: self,
pageNumber: self.id,
this.eventBus.dispatch('pagerendered', {
source: this,
pageNumber: this.id,
cssTransform: false,
});
@ -456,13 +454,13 @@ var PDFPageView = (function PDFPageViewClosure() {
return Promise.resolve(undefined);
};
var paintTask = this.renderer === RendererType.SVG ?
let paintTask = this.renderer === RendererType.SVG ?
this.paintOnSvg(canvasWrapper) :
this.paintOnCanvas(canvasWrapper);
paintTask.onRenderContinue = renderContinueCallback;
this.paintTask = paintTask;
var resultPromise = paintTask.promise.then(function () {
let resultPromise = paintTask.promise.then(function() {
return finishPaintTask(null).then(function () {
if (textLayer) {
pdfPage.getTextContent({
@ -473,7 +471,7 @@ var PDFPageView = (function PDFPageViewClosure() {
});
}
});
}, function (reason) {
}, function(reason) {
return finishPaintTask(reason);
});
@ -583,21 +581,17 @@ var PDFPageView = (function PDFPageViewClosure() {
}
};
renderTask.promise.then(
function pdfPageRenderCallback() {
showCanvas();
renderCapability.resolve(undefined);
},
function pdfPageRenderError(error) {
showCanvas();
renderCapability.reject(error);
}
);
renderTask.promise.then(function() {
showCanvas();
renderCapability.resolve(undefined);
}, function(error) {
showCanvas();
renderCapability.reject(error);
});
return result;
},
paintOnSvg: function PDFPageView_paintOnSvg(wrapper) {
paintOnSvg(wrapper) {
if (typeof PDFJSDev !== 'undefined' &&
PDFJSDev.test('FIREFOX || MOZCENTRAL || CHROME')) {
// Return a mock object, to prevent errors such as e.g.
@ -609,33 +603,32 @@ var PDFPageView = (function PDFPageViewClosure() {
};
}
var cancelled = false;
var ensureNotCancelled = function () {
let cancelled = false;
let ensureNotCancelled = () => {
if (cancelled) {
if ((typeof PDFJSDev !== 'undefined' &&
PDFJSDev.test('PDFJS_NEXT')) || PDFJS.pdfjsNext) {
throw new RenderingCancelledException(
'Rendering cancelled, page ' + self.id, 'svg');
'Rendering cancelled, page ' + this.id, 'svg');
} else {
throw 'cancelled'; // eslint-disable-line no-throw-literal
}
}
};
var self = this;
var pdfPage = this.pdfPage;
var actualSizeViewport = this.viewport.clone({scale: CSS_UNITS});
var promise = pdfPage.getOperatorList().then(function (opList) {
let pdfPage = this.pdfPage;
let actualSizeViewport = this.viewport.clone({ scale: CSS_UNITS, });
let promise = pdfPage.getOperatorList().then((opList) => {
ensureNotCancelled();
var svgGfx = new SVGGraphics(pdfPage.commonObjs, pdfPage.objs);
return svgGfx.getSVG(opList, actualSizeViewport).then(function (svg) {
return svgGfx.getSVG(opList, actualSizeViewport).then((svg) => {
ensureNotCancelled();
self.svg = svg;
self.paintedViewportMap.set(svg, actualSizeViewport);
this.svg = svg;
this.paintedViewportMap.set(svg, actualSizeViewport);
svg.style.width = wrapper.style.width;
svg.style.height = wrapper.style.height;
self.renderingState = RenderingStates.FINISHED;
this.renderingState = RenderingStates.FINISHED;
wrapper.appendChild(svg);
});
});

View File

@ -267,7 +267,7 @@ var PDFThumbnailView = (function PDFThumbnailViewClosure() {
delete this.canvas;
},
draw: function PDFThumbnailView_draw() {
draw() {
if (this.renderingState !== RenderingStates.INITIAL) {
console.error('Must be in new state before drawing');
return Promise.resolve(undefined);
@ -275,15 +275,14 @@ var PDFThumbnailView = (function PDFThumbnailViewClosure() {
this.renderingState = RenderingStates.RUNNING;
var renderCapability = createPromiseCapability();
let renderCapability = createPromiseCapability();
var self = this;
function thumbnailDrawCallback(error) {
let finishRenderTask = (error) => {
// The renderTask may have been replaced by a new one, so only remove
// the reference to the renderTask if it matches the one that is
// triggering this callback.
if (renderTask === self.renderTask) {
self.renderTask = null;
if (renderTask === this.renderTask) {
this.renderTask = null;
}
if (((typeof PDFJSDev === 'undefined' ||
@ -293,23 +292,23 @@ var PDFThumbnailView = (function PDFThumbnailViewClosure() {
return;
}
self.renderingState = RenderingStates.FINISHED;
self._convertCanvasToImage();
this.renderingState = RenderingStates.FINISHED;
this._convertCanvasToImage();
if (!error) {
renderCapability.resolve(undefined);
} else {
renderCapability.reject(error);
}
}
};
var ctx = this._getPageDrawContext();
var drawViewport = this.viewport.clone({ scale: this.scale });
var renderContinueCallback = function renderContinueCallback(cont) {
if (!self.renderingQueue.isHighestPriority(self)) {
self.renderingState = RenderingStates.PAUSED;
self.resume = function resumeCallback() {
self.renderingState = RenderingStates.RUNNING;
let ctx = this._getPageDrawContext();
let drawViewport = this.viewport.clone({ scale: this.scale, });
let renderContinueCallback = (cont) => {
if (!this.renderingQueue.isHighestPriority(this)) {
this.renderingState = RenderingStates.PAUSED;
this.resume = () => {
this.renderingState = RenderingStates.RUNNING;
cont();
};
return;
@ -317,21 +316,18 @@ var PDFThumbnailView = (function PDFThumbnailViewClosure() {
cont();
};
var renderContext = {
let renderContext = {
canvasContext: ctx,
viewport: drawViewport
};
var renderTask = this.renderTask = this.pdfPage.render(renderContext);
let renderTask = this.renderTask = this.pdfPage.render(renderContext);
renderTask.onContinue = renderContinueCallback;
renderTask.promise.then(
function pdfPageRenderCallback() {
thumbnailDrawCallback(null);
},
function pdfPageRenderError(error) {
thumbnailDrawCallback(error);
}
);
renderTask.promise.then(function() {
finishRenderTask(null);
}, function(error) {
finishRenderTask(error);
});
return renderCapability.promise;
},