diff --git a/src/ol/collection.js b/src/ol/collection.js index 88f7109b0d..cea644b072 100644 --- a/src/ol/collection.js +++ b/src/ol/collection.js @@ -95,7 +95,11 @@ ol.Collection.prototype.extend = function(arr) { * @api */ ol.Collection.prototype.forEach = function(f, opt_this) { - this.array_.forEach(f, opt_this); + var fn = (opt_this) ? f.bind(opt_this) : f; + var array = this.array_; + for (var i = 0, ii = array.length; i < ii; ++i) { + fn(array[i], i, array); + } }; diff --git a/src/ol/format/wfs.js b/src/ol/format/wfs.js index ddd38dc2be..a30a9fe3d8 100644 --- a/src/ol/format/wfs.js +++ b/src/ol/format/wfs.js @@ -688,12 +688,14 @@ ol.format.WFS.writeDuringFilter_ = function(node, filter, objectStack) { ol.format.WFS.writeLogicalFilter_ = function(node, filter, objectStack) { /** @type {ol.XmlNodeStackItem} */ var item = {node: node}; - filter.conditions.forEach(function(condition) { + var conditions = filter.conditions; + for (var i = 0, ii = conditions.length; i < ii; ++i) { + var condition = conditions[i]; ol.xml.pushSerializeAndPop(item, ol.format.WFS.GETFEATURE_SERIALIZERS_, ol.xml.makeSimpleNodeFactory(condition.getTagName()), [condition], objectStack); - }); + } }; diff --git a/src/ol/renderer/canvas/vectorlayer.js b/src/ol/renderer/canvas/vectorlayer.js index 55471f16b8..73491e8525 100644 --- a/src/ol/renderer/canvas/vectorlayer.js +++ b/src/ol/renderer/canvas/vectorlayer.js @@ -319,7 +319,7 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = function(frameState, lay feature, resolution, pixelRatio, styles, replayGroup); this.dirty_ = this.dirty_ || dirty; } - }; + }.bind(this); if (vectorLayerRenderOrder) { /** @type {Array.} */ var features = []; @@ -331,7 +331,9 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame = function(frameState, lay features.push(feature); }, this); features.sort(vectorLayerRenderOrder); - features.forEach(renderFeature, this); + for (var i = 0, ii = features.length; i < ii; ++i) { + renderFeature(features[i]); + } } else { vectorSource.forEachFeatureInExtent(extent, renderFeature, this); }