From 7c15280e81a8fc9321f2bc1c335979ad77567ef9 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 2 May 2016 14:49:25 +0200 Subject: [PATCH] Remove use of goog.partial Use Function.prototype.bind instead, see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Partially_applied_functions_(currying) --- src/ol/control/zoomcontrol.js | 10 +++----- src/ol/interaction/draganddropinteraction.js | 2 +- src/ol/renderer/layerrenderer.js | 24 ++++++++++-------- .../renderer/webgl/webglimagelayerrenderer.js | 21 ++++++++-------- src/ol/renderer/webgl/webgllayerrenderer.js | 25 ++++++++++--------- 5 files changed, 42 insertions(+), 40 deletions(-) diff --git a/src/ol/control/zoomcontrol.js b/src/ol/control/zoomcontrol.js index e840c66c24..e1e2c6cd93 100644 --- a/src/ol/control/zoomcontrol.js +++ b/src/ol/control/zoomcontrol.js @@ -42,9 +42,8 @@ ol.control.Zoom = function(opt_options) { 'title': zoomInTipLabel }, zoomInLabel); - ol.events.listen(inElement, - ol.events.EventType.CLICK, goog.partial( - ol.control.Zoom.prototype.handleClick_, delta), this); + ol.events.listen(inElement, ol.events.EventType.CLICK, + ol.control.Zoom.prototype.handleClick_.bind(this, delta)); var outElement = goog.dom.createDom('BUTTON', { 'class': className + '-out', @@ -52,9 +51,8 @@ ol.control.Zoom = function(opt_options) { 'title': zoomOutTipLabel }, zoomOutLabel); - ol.events.listen(outElement, - ol.events.EventType.CLICK, goog.partial( - ol.control.Zoom.prototype.handleClick_, -delta), this); + ol.events.listen(outElement, ol.events.EventType.CLICK, + ol.control.Zoom.prototype.handleClick_.bind(this, -delta)); var cssClasses = className + ' ' + ol.css.CLASS_UNSELECTABLE + ' ' + ol.css.CLASS_CONTROL; diff --git a/src/ol/interaction/draganddropinteraction.js b/src/ol/interaction/draganddropinteraction.js index 62f6cbc377..d3430a9ec6 100644 --- a/src/ol/interaction/draganddropinteraction.js +++ b/src/ol/interaction/draganddropinteraction.js @@ -72,7 +72,7 @@ ol.interaction.DragAndDrop.handleDrop_ = function(event) { file = files.item(i); var reader = new FileReader(); reader.addEventListener(ol.events.EventType.LOAD, - goog.partial(this.handleResult_, file).bind(this)); + this.handleResult_.bind(this, file)); reader.readAsText(file); } }; diff --git a/src/ol/renderer/layerrenderer.js b/src/ol/renderer/layerrenderer.js index 4111ff1f64..b54701f633 100644 --- a/src/ol/renderer/layerrenderer.js +++ b/src/ol/renderer/layerrenderer.js @@ -181,18 +181,20 @@ ol.renderer.Layer.prototype.renderIfReadyAndVisible = function() { */ ol.renderer.Layer.prototype.scheduleExpireCache = function(frameState, tileSource) { if (tileSource.canExpireCache()) { + /** + * @param {ol.source.Tile} tileSource Tile source. + * @param {ol.Map} map Map. + * @param {olx.FrameState} frameState Frame state. + */ + var postRenderFunction = function(tileSource, map, frameState) { + var tileSourceKey = goog.getUid(tileSource).toString(); + tileSource.expireCache(frameState.viewState.projection, + frameState.usedTiles[tileSourceKey]); + }.bind(null, tileSource); + frameState.postRenderFunctions.push( - /** @type {ol.PostRenderFunction} */ (goog.partial( - /** - * @param {ol.source.Tile} tileSource Tile source. - * @param {ol.Map} map Map. - * @param {olx.FrameState} frameState Frame state. - */ - function(tileSource, map, frameState) { - var tileSourceKey = goog.getUid(tileSource).toString(); - tileSource.expireCache(frameState.viewState.projection, - frameState.usedTiles[tileSourceKey]); - }, tileSource))); + /** @type {ol.PostRenderFunction} */ (postRenderFunction) + ); } }; diff --git a/src/ol/renderer/webgl/webglimagelayerrenderer.js b/src/ol/renderer/webgl/webglimagelayerrenderer.js index b804599d1a..98546abe13 100644 --- a/src/ol/renderer/webgl/webglimagelayerrenderer.js +++ b/src/ol/renderer/webgl/webglimagelayerrenderer.js @@ -138,17 +138,18 @@ ol.renderer.webgl.ImageLayer.prototype.prepareFrame = function(frameState, layer image = image_; texture = this.createTexture_(image_); if (this.texture) { + /** + * @param {WebGLRenderingContext} gl GL. + * @param {WebGLTexture} texture Texture. + */ + var postRenderFunction = function(gl, texture) { + if (!gl.isContextLost()) { + gl.deleteTexture(texture); + } + }.bind(null, gl, this.texture); frameState.postRenderFunctions.push( - /** @type {ol.PostRenderFunction} */ (goog.partial( - /** - * @param {WebGLRenderingContext} gl GL. - * @param {WebGLTexture} texture Texture. - */ - function(gl, texture) { - if (!gl.isContextLost()) { - gl.deleteTexture(texture); - } - }, gl, this.texture))); + /** @type {ol.PostRenderFunction} */ (postRenderFunction) + ); } } } diff --git a/src/ol/renderer/webgl/webgllayerrenderer.js b/src/ol/renderer/webgl/webgllayerrenderer.js index 1207eebc56..c8feb8d837 100644 --- a/src/ol/renderer/webgl/webgllayerrenderer.js +++ b/src/ol/renderer/webgl/webgllayerrenderer.js @@ -93,20 +93,21 @@ ol.renderer.webgl.Layer.prototype.bindFramebuffer = function(frameState, framebu if (this.framebufferDimension === undefined || this.framebufferDimension != framebufferDimension) { + /** + * @param {WebGLRenderingContext} gl GL. + * @param {WebGLFramebuffer} framebuffer Framebuffer. + * @param {WebGLTexture} texture Texture. + */ + var postRenderFunction = function(gl, framebuffer, texture) { + if (!gl.isContextLost()) { + gl.deleteFramebuffer(framebuffer); + gl.deleteTexture(texture); + } + }.bind(null, gl, this.framebuffer, this.texture); frameState.postRenderFunctions.push( - /** @type {ol.PostRenderFunction} */ (goog.partial( - /** - * @param {WebGLRenderingContext} gl GL. - * @param {WebGLFramebuffer} framebuffer Framebuffer. - * @param {WebGLTexture} texture Texture. - */ - function(gl, framebuffer, texture) { - if (!gl.isContextLost()) { - gl.deleteFramebuffer(framebuffer); - gl.deleteTexture(texture); - } - }, gl, this.framebuffer, this.texture))); + /** @type {ol.PostRenderFunction} */ (postRenderFunction) + ); var texture = ol.webgl.Context.createEmptyTexture( gl, framebufferDimension, framebufferDimension);