From 41d231a4c70864021de7d7e77bd6e704fb568104 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 7 Feb 2019 11:43:43 +0100 Subject: [PATCH 1/4] Remove opt_this param in forEachTileCoordParentTileRange function The function is only called by `ol/renderer/canvas/TileLayer` and `opt_this` was always `null`. --- src/ol/renderer/canvas/TileLayer.js | 2 +- src/ol/tilegrid/TileGrid.js | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/ol/renderer/canvas/TileLayer.js b/src/ol/renderer/canvas/TileLayer.js index 412005f9a4..6d2a53843a 100644 --- a/src/ol/renderer/canvas/TileLayer.js +++ b/src/ol/renderer/canvas/TileLayer.js @@ -199,7 +199,7 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer { covered = findLoadedTiles(z + 1, childTileRange); } if (!covered) { - tileGrid.forEachTileCoordParentTileRange(tile.tileCoord, findLoadedTiles, null, tmpTileRange, tmpExtent); + tileGrid.forEachTileCoordParentTileRange(tile.tileCoord, findLoadedTiles, tmpTileRange, tmpExtent); } } diff --git a/src/ol/tilegrid/TileGrid.js b/src/ol/tilegrid/TileGrid.js index 6a7bc89c1d..9b391c8725 100644 --- a/src/ol/tilegrid/TileGrid.js +++ b/src/ol/tilegrid/TileGrid.js @@ -203,14 +203,12 @@ class TileGrid { /** * @param {import("../tilecoord.js").TileCoord} tileCoord Tile coordinate. - * @param {function(this: T, number, import("../TileRange.js").default): boolean} callback Callback. - * @param {T=} opt_this The object to use as `this` in `callback`. + * @param {function(number, import("../TileRange.js").default): boolean} callback Callback. * @param {import("../TileRange.js").default=} opt_tileRange Temporary import("../TileRange.js").default object. * @param {import("../extent.js").Extent=} opt_extent Temporary import("../extent.js").Extent object. * @return {boolean} Callback succeeded. - * @template T */ - forEachTileCoordParentTileRange(tileCoord, callback, opt_this, opt_tileRange, opt_extent) { + forEachTileCoordParentTileRange(tileCoord, callback, opt_tileRange, opt_extent) { let tileRange, x, y; let tileCoordExtent = null; let z = tileCoord[0] - 1; @@ -228,7 +226,7 @@ class TileGrid { } else { tileRange = this.getTileRangeForExtentAndZ(tileCoordExtent, z, opt_tileRange); } - if (callback.call(opt_this, z, tileRange)) { + if (callback(z, tileRange)) { return true; } --z; From 2879c0b6ad9202b70e8ac1d6fa8865c60b2e4fb0 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 7 Feb 2019 11:51:28 +0100 Subject: [PATCH 2/4] Remove opt_this param in forDataAtCoordinate function --- src/ol/source/UTFGrid.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/ol/source/UTFGrid.js b/src/ol/source/UTFGrid.js index 6f90ab454c..521151f494 100644 --- a/src/ol/source/UTFGrid.js +++ b/src/ol/source/UTFGrid.js @@ -138,25 +138,23 @@ export class CustomTile extends Tile { * Calls the callback (synchronously by default) with the available data * for given coordinate (or `null` if not yet loaded). * @param {import("../coordinate.js").Coordinate} coordinate Coordinate. - * @param {function(this: T, *): void} callback Callback. - * @param {T=} opt_this The object to use as `this` in the callback. + * @param {function(*): void} callback Callback. * @param {boolean=} opt_request If `true` the callback is always async. * The tile data is requested if not yet loaded. - * @template T */ - forDataAtCoordinate(coordinate, callback, opt_this, opt_request) { + forDataAtCoordinate(coordinate, callback, opt_request) { if (this.state == TileState.IDLE && opt_request === true) { listenOnce(this, EventType.CHANGE, function(e) { - callback.call(opt_this, this.getData(coordinate)); + callback(this.getData(coordinate)); }, this); this.loadInternal_(); } else { if (opt_request === true) { setTimeout(function() { - callback.call(opt_this, this.getData(coordinate)); + callback(this.getData(coordinate)); }.bind(this), 0); } else { - callback.call(opt_this, this.getData(coordinate)); + callback(this.getData(coordinate)); } } } @@ -391,7 +389,7 @@ class UTFGrid extends TileSource { coordinate, resolution); const tile = /** @type {!CustomTile} */(this.getTile( tileCoord[0], tileCoord[1], tileCoord[2], 1, this.getProjection())); - tile.forDataAtCoordinate(coordinate, callback, null, opt_request); + tile.forDataAtCoordinate(coordinate, callback, opt_request); } else { if (opt_request === true) { setTimeout(function() { From 438736068e10e6e9e620d27d803ed09d8d3233a0 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 7 Feb 2019 13:07:36 +0100 Subject: [PATCH 3/4] Remove opt_this param in forEach function --- src/ol/geom/flat/segments.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/ol/geom/flat/segments.js b/src/ol/geom/flat/segments.js index fc5db5a7b2..c36d1a92b4 100644 --- a/src/ol/geom/flat/segments.js +++ b/src/ol/geom/flat/segments.js @@ -11,21 +11,19 @@ * @param {number} offset Offset. * @param {number} end End. * @param {number} stride Stride. - * @param {function(this: S, import("../../coordinate.js").Coordinate, import("../../coordinate.js").Coordinate): T} callback Function + * @param {function(import("../../coordinate.js").Coordinate, import("../../coordinate.js").Coordinate): T} callback Function * called for each segment. - * @param {S=} opt_this The object to be used as the value of 'this' - * within callback. * @return {T|boolean} Value. - * @template T,S + * @template T */ -export function forEach(flatCoordinates, offset, end, stride, callback, opt_this) { +export function forEach(flatCoordinates, offset, end, stride, callback) { const point1 = [flatCoordinates[offset], flatCoordinates[offset + 1]]; const point2 = []; let ret; for (; (offset + stride) < end; offset += stride) { point2[0] = flatCoordinates[offset + stride]; point2[1] = flatCoordinates[offset + stride + 1]; - ret = callback.call(opt_this, point1, point2); + ret = callback(point1, point2); if (ret) { return ret; } From 6f8ffddaceada540db6e331c36d85e7cc0de4fb5 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 7 Feb 2019 13:18:52 +0100 Subject: [PATCH 4/4] Remove opt_this param in manageTilePyramid function --- src/ol/renderer/Layer.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/ol/renderer/Layer.js b/src/ol/renderer/Layer.js index 4d2249a180..0c56666522 100644 --- a/src/ol/renderer/Layer.js +++ b/src/ol/renderer/Layer.js @@ -221,10 +221,8 @@ class LayerRenderer extends Observable { * @param {import("../extent.js").Extent} extent Extent. * @param {number} currentZ Current Z. * @param {number} preload Load low resolution tiles up to 'preload' levels. - * @param {function(this: T, import("../Tile.js").default)=} opt_tileCallback Tile callback. - * @param {T=} opt_this Object to use as `this` in `opt_tileCallback`. + * @param {function(import("../Tile.js").default)=} opt_tileCallback Tile callback. * @protected - * @template T */ manageTilePyramid( frameState, @@ -235,8 +233,7 @@ class LayerRenderer extends Observable { extent, currentZ, preload, - opt_tileCallback, - opt_this + opt_tileCallback ) { const tileSourceKey = getUid(tileSource); if (!(tileSourceKey in frameState.wantedTiles)) { @@ -261,7 +258,7 @@ class LayerRenderer extends Observable { } } if (opt_tileCallback !== undefined) { - opt_tileCallback.call(opt_this, tile); + opt_tileCallback(tile); } } else { tileSource.useTile(z, x, y, projection);