Merge pull request #4778 from tschaub/no-goog-object

Remove use of goog.object.
This commit is contained in:
Tim Schaub
2016-02-04 07:14:37 -07:00
68 changed files with 421 additions and 290 deletions

View File

@@ -7008,11 +7008,12 @@ olx.view.FitOptions.prototype.maxZoom;
* size: ol.Size,
* skippedFeatureUids: Object.<string, boolean>,
* tileQueue: ol.TileQueue,
* tileSourceCount: number,
* time: number,
* usedTiles: Object.<string, Object.<string, ol.TileRange>>,
* viewState: olx.ViewState,
* viewHints: Array.<number>,
* wantedTiles: Object.<string, Object.<string, boolean>>}}
* wantedTiles: !Object.<string, Object.<string, boolean>>}}
* @api
*/
olx.FrameState;

View File

@@ -5,14 +5,14 @@ goog.provide('ol.control.Attribution');
goog.require('goog.asserts');
goog.require('goog.dom');
goog.require('goog.dom.classlist');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('goog.style');
goog.require('ol');
goog.require('ol.Attribution');
goog.require('ol.control.Control');
goog.require('ol.css');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol.object');
goog.require('ol.source.Tile');
@@ -150,7 +150,7 @@ ol.control.Attribution.prototype.getSourceAttributions = function(frameState) {
var intersectsTileRange;
var layerStatesArray = frameState.layerStatesArray;
/** @type {Object.<string, ol.Attribution>} */
var attributions = goog.object.clone(frameState.attributions);
var attributions = ol.object.assign({}, frameState.attributions);
/** @type {Object.<string, ol.Attribution>} */
var hiddenAttributions = {};
var projection = frameState.viewState.projection;
@@ -267,14 +267,14 @@ ol.control.Attribution.prototype.updateElement_ = function(frameState) {
}
var renderVisible =
!goog.object.isEmpty(this.attributionElementRenderedVisible_) ||
!goog.object.isEmpty(frameState.logos);
!ol.object.isEmpty(this.attributionElementRenderedVisible_) ||
!ol.object.isEmpty(frameState.logos);
if (this.renderedVisible_ != renderVisible) {
goog.style.setElementShown(this.element, renderVisible);
this.renderedVisible_ = renderVisible;
}
if (renderVisible &&
goog.object.isEmpty(this.attributionElementRenderedVisible_)) {
ol.object.isEmpty(this.attributionElementRenderedVisible_)) {
goog.dom.classlist.add(this.element, 'ol-logo-only');
} else {
goog.dom.classlist.remove(this.element, 'ol-logo-only');
@@ -321,7 +321,7 @@ ol.control.Attribution.prototype.insertLogos_ = function(frameState) {
}
}
goog.style.setElementShown(this.logoLi_, !goog.object.isEmpty(logos));
goog.style.setElementShown(this.logoLi_, !ol.object.isEmpty(logos));
};

View File

@@ -2,7 +2,7 @@ goog.provide('ol.events');
goog.provide('ol.events.EventType');
goog.provide('ol.events.KeyCode');
goog.require('goog.object');
goog.require('ol.object');
/**
@@ -188,7 +188,7 @@ ol.events.removeListeners_ = function(target, type) {
if (listeners) {
for (var i = 0, ii = listeners.length; i < ii; ++i) {
target.removeEventListener(type, listeners[i].boundListener);
goog.object.clear(listeners[i])
ol.object.clear(listeners[i])
}
listeners.length = 0;
var listenerMap = target[ol.events.LISTENER_MAP_PROP_];
@@ -318,7 +318,7 @@ ol.events.unlistenByKey = function(key) {
ol.events.removeListeners_(key.target, key.type);
}
}
goog.object.clear(key);
ol.object.clear(key);
}
};

View File

@@ -1,9 +1,8 @@
goog.provide('ol.format.EsriJSON');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('ol.array');
goog.require('ol.Feature');
goog.require('ol.array');
goog.require('ol.extent');
goog.require('ol.format.Feature');
goog.require('ol.format.JSONFeature');
@@ -17,6 +16,7 @@ goog.require('ol.geom.MultiPolygon');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
goog.require('ol.geom.flat.orient');
goog.require('ol.object');
goog.require('ol.proj');
@@ -70,7 +70,7 @@ ol.format.EsriJSON.readGeometry_ = function(object, opt_options) {
} else if (object.rings) {
var layout = ol.format.EsriJSON.getGeometryLayout_(object);
var rings = ol.format.EsriJSON.convertRings_(object.rings, layout);
object = /** @type {EsriJSONGeometry} */(goog.object.clone(object));
object = /** @type {EsriJSONGeometry} */(ol.object.assign({}, object));
if (rings.length === 1) {
type = ol.geom.GeometryType.POLYGON;
object.rings = rings[0];
@@ -651,7 +651,7 @@ ol.format.EsriJSON.prototype.writeFeatureObject = function(
}
var properties = feature.getProperties();
delete properties[feature.getGeometryName()];
if (!goog.object.isEmpty(properties)) {
if (!ol.object.isEmpty(properties)) {
object['attributes'] = properties;
} else {
object['attributes'] = {};

View File

@@ -4,7 +4,6 @@
goog.provide('ol.format.GeoJSON');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('ol.Feature');
goog.require('ol.format.Feature');
goog.require('ol.format.JSONFeature');
@@ -15,6 +14,7 @@ goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.MultiPolygon');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
goog.require('ol.object');
goog.require('ol.proj');
@@ -541,7 +541,7 @@ ol.format.GeoJSON.prototype.writeFeatureObject = function(
}
var properties = feature.getProperties();
delete properties[feature.getGeometryName()];
if (!goog.object.isEmpty(properties)) {
if (!ol.object.isEmpty(properties)) {
object.properties = properties;
} else {
object.properties = null;

View File

@@ -3,7 +3,6 @@ goog.provide('ol.format.GML3');
goog.require('goog.asserts');
goog.require('goog.dom.NodeType');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.array');
goog.require('ol.Feature');
@@ -19,6 +18,7 @@ goog.require('ol.geom.MultiLineString');
goog.require('ol.geom.MultiPolygon');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.xml');
@@ -1003,7 +1003,7 @@ ol.format.GML3.prototype.writeCurveSegments_ = function(node, line, objectStack)
ol.format.GML3.prototype.writeGeometryElement = function(node, geometry, objectStack) {
var context = objectStack[objectStack.length - 1];
goog.asserts.assert(goog.isObject(context), 'context should be an Object');
var item = goog.object.clone(context);
var item = ol.object.assign({}, context);
item.node = node;
var value;
if (goog.isArray(geometry)) {
@@ -1064,7 +1064,7 @@ ol.format.GML3.prototype.writeFeatureElement = function(node, feature, objectSta
}
}
}
var item = goog.object.clone(context);
var item = ol.object.assign({}, context);
item.node = node;
ol.xml.pushSerializeAndPop(/** @type {ol.xml.NodeStackItem} */
(item), context.serializers,
@@ -1089,7 +1089,7 @@ ol.format.GML3.prototype.writeFeatureMembers_ = function(node, features, objectS
serializers[featureNS] = {};
serializers[featureNS][featureType] = ol.xml.makeChildAppender(
this.writeFeatureElement, this);
var item = goog.object.clone(context);
var item = ol.object.assign({}, context);
item.node = node;
ol.xml.pushSerializeAndPop(/** @type {ol.xml.NodeStackItem} */
(item),
@@ -1269,7 +1269,7 @@ ol.format.GML3.prototype.writeGeometryNode = function(geometry, opt_options) {
curve: this.curve_, surface: this.surface_,
multiSurface: this.multiSurface_, multiCurve: this.multiCurve_};
if (opt_options) {
goog.object.extend(context, opt_options);
ol.object.assign(context, opt_options);
}
this.writeGeometryElement(geom, geometry, [context]);
return geom;
@@ -1312,7 +1312,7 @@ ol.format.GML3.prototype.writeFeaturesNode = function(features, opt_options) {
featureType: this.featureType
};
if (opt_options) {
goog.object.extend(context, opt_options);
ol.object.assign(context, opt_options);
}
this.writeFeatureMembers_(node, features, [context]);
return node;

View File

@@ -5,7 +5,6 @@ goog.provide('ol.format.GMLBase');
goog.require('goog.asserts');
goog.require('goog.dom.NodeType');
goog.require('goog.object');
goog.require('goog.string');
goog.require('ol.array');
goog.require('ol.Feature');
@@ -20,6 +19,7 @@ goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.MultiPolygon');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.xml');
@@ -122,14 +122,19 @@ ol.format.GMLBase.prototype.readFeaturesInternal = function(node, objectStack) {
if (child.nodeType === 1) {
var ft = child.nodeName.split(':').pop();
if (featureType.indexOf(ft) === -1) {
var key;
if (!goog.object.contains(featureNS, child.namespaceURI)) {
key = prefix + goog.object.getCount(featureNS);
featureNS[key] = child.namespaceURI;
} else {
key = goog.object.findKey(featureNS, function(value) {
return value === child.namespaceURI;
});
var key = '';
var count = 0;
var uri = child.namespaceURI;
for (var candidate in featureNS) {
if (featureNS[candidate] === uri) {
key = candidate;
break;
}
++count;
}
if (!key) {
key = prefix + count;
featureNS[key] = uri;
}
featureType.push(key + ':' + ft);
}
@@ -607,7 +612,7 @@ ol.format.GMLBase.prototype.readFeaturesFromNode = function(node, opt_options) {
featureNS: this.featureNS
};
if (opt_options) {
goog.object.extend(options, this.getReadOptions(node, opt_options));
ol.object.assign(options, this.getReadOptions(node, opt_options));
}
return this.readFeaturesInternal(node, [options]);
};

View File

@@ -30,6 +30,7 @@ goog.require('ol.geom.MultiPolygon');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
goog.require('ol.math');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.style.Fill');
goog.require('ol.style.Icon');
@@ -331,7 +332,7 @@ ol.format.KML.createNameStyleFunction_ = function(foundStyle, name) {
textAlign = 'left';
}
}
if (!goog.object.isEmpty(foundStyle.getText())) {
if (!ol.object.isEmpty(foundStyle.getText())) {
textStyle = /** @type {ol.style.Text} */
(goog.object.clone(foundStyle.getText()));
textStyle.setText(name);

View File

@@ -3,7 +3,6 @@ goog.provide('ol.format.OSMXML');
goog.require('goog.asserts');
goog.require('goog.dom.NodeType');
goog.require('goog.object');
goog.require('ol.array');
goog.require('ol.Feature');
goog.require('ol.format.Feature');
@@ -12,6 +11,7 @@ goog.require('ol.geom.GeometryLayout');
goog.require('ol.geom.LineString');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.xml');
@@ -74,7 +74,7 @@ ol.format.OSMXML.readNode_ = function(node, objectStack) {
var values = ol.xml.pushParseAndPop({
tags: {}
}, ol.format.OSMXML.NODE_PARSERS_, node, objectStack);
if (!goog.object.isEmpty(values.tags)) {
if (!ol.object.isEmpty(values.tags)) {
var geometry = new ol.geom.Point(coordinates);
ol.format.Feature.transformWithOptions(geometry, false, options);
var feature = new ol.Feature(geometry);

View File

@@ -1,7 +1,6 @@
goog.provide('ol.format.TopoJSON');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('ol.Feature');
goog.require('ol.format.Feature');
goog.require('ol.format.JSONFeature');
@@ -11,6 +10,7 @@ goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.MultiPolygon');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
goog.require('ol.object');
goog.require('ol.proj');
@@ -299,7 +299,7 @@ ol.format.TopoJSON.prototype.readFeaturesFromObject = function(
}
/** @type {Array.<ol.Feature>} */
var features = [];
var topoJSONFeatures = goog.object.getValues(topoJSONTopology.objects);
var topoJSONFeatures = ol.object.getValues(topoJSONTopology.objects);
var i, ii;
var feature;
for (i = 0, ii = topoJSONFeatures.length; i < ii; ++i) {

View File

@@ -2,13 +2,13 @@ goog.provide('ol.format.WFS');
goog.require('goog.asserts');
goog.require('goog.dom.NodeType');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.format.GML3');
goog.require('ol.format.GMLBase');
goog.require('ol.format.XMLFeature');
goog.require('ol.format.XSD');
goog.require('ol.geom.Geometry');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.xml');
@@ -122,7 +122,7 @@ ol.format.WFS.prototype.readFeaturesFromNode = function(node, opt_options) {
'featureType': this.featureType_,
'featureNS': this.featureNS_
};
goog.object.extend(context, this.getReadOptions(node,
ol.object.assign(context, this.getReadOptions(node,
opt_options ? opt_options : {}));
var objectStack = [context];
this.gmlFormat_.FEATURE_COLLECTION_PARSERS[ol.format.GMLBase.GMLNS][
@@ -543,7 +543,7 @@ ol.format.WFS.writeQuery_ = function(node, featureType, objectStack) {
ol.xml.setAttributeNS(node, ol.format.WFS.XMLNS, 'xmlns:' + featurePrefix,
featureNS);
}
var item = goog.object.clone(context);
var item = ol.object.assign({}, context);
item.node = node;
ol.xml.pushSerializeAndPop(item,
ol.format.WFS.QUERY_SERIALIZERS_,
@@ -610,7 +610,7 @@ ol.format.WFS.GETFEATURE_SERIALIZERS_ = {
ol.format.WFS.writeGetFeature_ = function(node, featureTypes, objectStack) {
var context = objectStack[objectStack.length - 1];
goog.asserts.assert(goog.isObject(context), 'context should be an Object');
var item = goog.object.clone(context);
var item = ol.object.assign({}, context);
item.node = node;
ol.xml.pushSerializeAndPop(item,
ol.format.WFS.GETFEATURE_SERIALIZERS_,
@@ -698,7 +698,7 @@ ol.format.WFS.prototype.writeTransaction = function(inserts, updates, deletes,
if (inserts) {
obj = {node: node, featureNS: options.featureNS,
featureType: options.featureType, featurePrefix: options.featurePrefix};
goog.object.extend(obj, baseObj);
ol.object.assign(obj, baseObj);
ol.xml.pushSerializeAndPop(obj,
ol.format.WFS.TRANSACTION_SERIALIZERS_,
ol.xml.makeSimpleNodeFactory('Insert'), inserts,
@@ -707,7 +707,7 @@ ol.format.WFS.prototype.writeTransaction = function(inserts, updates, deletes,
if (updates) {
obj = {node: node, featureNS: options.featureNS,
featureType: options.featureType, featurePrefix: options.featurePrefix};
goog.object.extend(obj, baseObj);
ol.object.assign(obj, baseObj);
ol.xml.pushSerializeAndPop(obj,
ol.format.WFS.TRANSACTION_SERIALIZERS_,
ol.xml.makeSimpleNodeFactory('Update'), updates,

View File

@@ -2,7 +2,6 @@ goog.provide('ol.format.WMSCapabilities');
goog.require('goog.asserts');
goog.require('goog.dom.NodeType');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.format.XLink');
goog.require('ol.format.XML');
@@ -339,9 +338,8 @@ ol.format.WMSCapabilities.readLayer_ = function(node, objectStack) {
var addKeys = ['Style', 'CRS', 'AuthorityURL'];
addKeys.forEach(function(key) {
if (key in parentLayerObject) {
var childValue = goog.object.setIfUndefined(layerObject, key, []);
childValue = childValue.concat(parentLayerObject[key]);
layerObject[key] = childValue;
var childValue = layerObject[key] || [];
layerObject[key] = childValue.concat(parentLayerObject[key]);
}
});

View File

@@ -2,10 +2,10 @@ goog.provide('ol.format.WMSGetFeatureInfo');
goog.require('goog.asserts');
goog.require('goog.dom.NodeType');
goog.require('goog.object');
goog.require('ol.array');
goog.require('ol.format.GML2');
goog.require('ol.format.XMLFeature');
goog.require('ol.object');
goog.require('ol.xml');
@@ -154,7 +154,7 @@ ol.format.WMSGetFeatureInfo.prototype.readFeaturesFromNode = function(node, opt_
'featureNS': this.featureNS
};
if (opt_options) {
goog.object.extend(options, this.getReadOptions(node, opt_options));
ol.object.assign(options, this.getReadOptions(node, opt_options));
}
return this.readFeatures_(node, [options]);
};

View File

@@ -2,10 +2,10 @@ goog.provide('ol.geom.GeometryCollection');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('ol.extent');
goog.require('ol.geom.Geometry');
goog.require('ol.geom.GeometryType');
goog.require('ol.object');
/**
@@ -160,7 +160,7 @@ ol.geom.GeometryCollection.prototype.getGeometriesArray = function() {
*/
ol.geom.GeometryCollection.prototype.getSimplifiedGeometry = function(squaredTolerance) {
if (this.simplifiedGeometryRevision != this.getRevision()) {
goog.object.clear(this.simplifiedGeometryCache);
ol.object.clear(this.simplifiedGeometryCache);
this.simplifiedGeometryMaxMinSquaredTolerance = 0;
this.simplifiedGeometryRevision = this.getRevision();
}

View File

@@ -1,7 +1,6 @@
goog.provide('ol.geom.MultiPolygon');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.array');
goog.require('ol.extent');
@@ -119,8 +118,13 @@ ol.geom.MultiPolygon.prototype.appendPolygon = function(polygon) {
*/
ol.geom.MultiPolygon.prototype.clone = function() {
var multiPolygon = new ol.geom.MultiPolygon(null);
var newEndss = /** @type {Array.<Array.<number>>} */
(goog.object.unsafeClone(this.endss_));
var len = this.endss_.length;
var newEndss = new Array(len);
for (var i = 0; i < len; ++i) {
newEndss[i] = this.endss_.slice();
}
multiPolygon.setFlatCoordinates(
this.layout, this.flatCoordinates.slice(), newEndss);
return multiPolygon;

View File

@@ -2,11 +2,11 @@ goog.provide('ol.geom.SimpleGeometry');
goog.require('goog.asserts');
goog.require('goog.functions');
goog.require('goog.object');
goog.require('ol.extent');
goog.require('ol.geom.Geometry');
goog.require('ol.geom.GeometryLayout');
goog.require('ol.geom.flat.transform');
goog.require('ol.object');
/**
@@ -146,7 +146,7 @@ ol.geom.SimpleGeometry.prototype.getLayout = function() {
*/
ol.geom.SimpleGeometry.prototype.getSimplifiedGeometry = function(squaredTolerance) {
if (this.simplifiedGeometryRevision != this.getRevision()) {
goog.object.clear(this.simplifiedGeometryCache);
ol.object.clear(this.simplifiedGeometryCache);
this.simplifiedGeometryMaxMinSquaredTolerance = 0;
this.simplifiedGeometryRevision = this.getRevision();
}

View File

@@ -1,12 +1,12 @@
goog.provide('ol.Image');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('ol.ImageBase');
goog.require('ol.ImageState');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol.extent');
goog.require('ol.object');
/**
@@ -81,7 +81,7 @@ ol.Image.prototype.getImage = function(opt_context) {
var key = goog.getUid(opt_context);
if (key in this.imageByContext_) {
return this.imageByContext_[key];
} else if (goog.object.isEmpty(this.imageByContext_)) {
} else if (ol.object.isEmpty(this.imageByContext_)) {
image = this.image_;
} else {
image = /** @type {Image} */ (this.image_.cloneNode(false));

View File

@@ -1,13 +1,13 @@
goog.provide('ol.ImageTile');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('ol.Tile');
goog.require('ol.TileCoord');
goog.require('ol.TileLoadFunctionType');
goog.require('ol.TileState');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol.object');
/**
@@ -87,7 +87,7 @@ ol.ImageTile.prototype.getImage = function(opt_context) {
var key = goog.getUid(opt_context);
if (key in this.imageByContext_) {
return this.imageByContext_[key];
} else if (goog.object.isEmpty(this.imageByContext_)) {
} else if (ol.object.isEmpty(this.imageByContext_)) {
image = this.image_;
} else {
image = /** @type {Image} */ (this.image_.cloneNode(false));

View File

@@ -1,12 +1,12 @@
goog.provide('ol.interaction.Pointer');
goog.require('goog.functions');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.MapBrowserEvent.EventType');
goog.require('ol.MapBrowserPointerEvent');
goog.require('ol.Pixel');
goog.require('ol.interaction.Interaction');
goog.require('ol.object');
/**
@@ -133,7 +133,7 @@ ol.interaction.Pointer.prototype.updateTrackedPointers_ = function(mapBrowserEve
// update only when there was a pointerdown event for this pointer
this.trackedPointers_[event.pointerId] = event;
}
this.targetPointers = goog.object.getValues(this.trackedPointers_);
this.targetPointers = ol.object.getValues(this.trackedPointers_);
}
};

View File

@@ -4,17 +4,17 @@ goog.provide('ol.interaction.SelectEventType');
goog.provide('ol.interaction.SelectFilterFunction');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('ol.events.Event');
goog.require('goog.functions');
goog.require('goog.object');
goog.require('ol.CollectionEventType');
goog.require('ol.Feature');
goog.require('ol.array');
goog.require('ol.events');
goog.require('ol.events.Event');
goog.require('ol.events.condition');
goog.require('ol.geom.GeometryType');
goog.require('ol.interaction.Interaction');
goog.require('ol.layer.Vector');
goog.require('ol.object');
goog.require('ol.source.Vector');
@@ -305,7 +305,7 @@ ol.interaction.Select.handleEvent = function(mapBrowserEvent) {
features.extend(selected);
// Modify object this.featureLayerAssociation_
if (selected.length === 0) {
goog.object.clear(this.featureLayerAssociation_);
ol.object.clear(this.featureLayerAssociation_);
} else {
if (deselected.length > 0) {
deselected.forEach(function(feature) {

View File

@@ -2,9 +2,6 @@ goog.provide('ol.interaction.Snap');
goog.provide('ol.interaction.SnapProperty');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.Collection');
goog.require('ol.CollectionEvent');
@@ -14,9 +11,12 @@ goog.require('ol.Feature');
goog.require('ol.Object');
goog.require('ol.Observable');
goog.require('ol.coordinate');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol.extent');
goog.require('ol.geom.Geometry');
goog.require('ol.interaction.Pointer');
goog.require('ol.object');
goog.require('ol.source.Vector');
goog.require('ol.source.VectorEvent');
goog.require('ol.source.VectorEventType');
@@ -591,7 +591,7 @@ ol.interaction.Snap.handleEvent_ = function(evt) {
* @private
*/
ol.interaction.Snap.handleUpEvent_ = function(evt) {
var featuresToUpdate = goog.object.getValues(this.pendingFeatures_);
var featuresToUpdate = ol.object.getValues(this.pendingFeatures_);
if (featuresToUpdate.length) {
featuresToUpdate.forEach(this.updateFeature_, this);
this.pendingFeatures_ = {};

View File

@@ -2,12 +2,12 @@ goog.provide('ol.layer.Heatmap');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.Object');
goog.require('ol.dom');
goog.require('ol.layer.Vector');
goog.require('ol.math');
goog.require('ol.object');
goog.require('ol.render.EventType');
goog.require('ol.style.Icon');
goog.require('ol.style.Style');
@@ -39,7 +39,7 @@ ol.layer.HeatmapLayerProperty = {
ol.layer.Heatmap = function(opt_options) {
var options = opt_options ? opt_options : {};
var baseOptions = goog.object.clone(options);
var baseOptions = ol.object.assign({}, options);
delete baseOptions.gradient;
delete baseOptions.radius;

View File

@@ -2,11 +2,11 @@ goog.provide('ol.layer.Layer');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.Object');
goog.require('ol.layer.Base');
goog.require('ol.layer.LayerProperty');
goog.require('ol.object');
goog.require('ol.render.EventType');
goog.require('ol.source.State');
@@ -34,7 +34,7 @@ goog.require('ol.source.State');
*/
ol.layer.Layer = function(options) {
var baseOptions = goog.object.clone(options);
var baseOptions = ol.object.assign({}, options);
delete baseOptions.source;
goog.base(this, /** @type {olx.layer.LayerOptions} */ (baseOptions));

View File

@@ -2,10 +2,10 @@ goog.provide('ol.layer.Base');
goog.provide('ol.layer.LayerProperty');
goog.provide('ol.layer.LayerState');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.Object');
goog.require('ol.math');
goog.require('ol.object');
goog.require('ol.source.State');
@@ -57,7 +57,7 @@ ol.layer.Base = function(options) {
/**
* @type {Object.<string, *>}
*/
var properties = goog.object.clone(options);
var properties = ol.object.assign({}, options);
properties[ol.layer.LayerProperty.OPACITY] =
options.opacity !== undefined ? options.opacity : 1;
properties[ol.layer.LayerProperty.VISIBLE] =

View File

@@ -1,16 +1,16 @@
goog.provide('ol.layer.Group');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('ol.Collection');
goog.require('ol.CollectionEvent');
goog.require('ol.CollectionEventType');
goog.require('ol.Object');
goog.require('ol.ObjectEventType');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol.extent');
goog.require('ol.layer.Base');
goog.require('ol.object');
goog.require('ol.source.State');
@@ -37,7 +37,7 @@ ol.layer.Group = function(opt_options) {
var options = opt_options || {};
var baseOptions = /** @type {olx.layer.GroupOptions} */
(goog.object.clone(options));
(ol.object.assign({}, options));
delete baseOptions.layers;
var layers = options.layers;
@@ -103,10 +103,10 @@ ol.layer.Group.prototype.handleLayersChanged_ = function(event) {
ol.events.listen(layers, ol.CollectionEventType.REMOVE,
this.handleLayersRemove_, this));
goog.object.forEach(this.listenerKeys_, function(keys) {
keys.forEach(ol.events.unlistenByKey);
});
goog.object.clear(this.listenerKeys_);
for (var id in this.listenerKeys_) {
this.listenerKeys_[id].forEach(ol.events.unlistenByKey);
}
ol.object.clear(this.listenerKeys_);
var layersArray = layers.getArray();
var i, ii, layer;

View File

@@ -1,8 +1,8 @@
goog.provide('ol.layer.Tile');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.layer.Layer');
goog.require('ol.object');
/**
@@ -31,7 +31,7 @@ ol.layer.TileProperty = {
ol.layer.Tile = function(opt_options) {
var options = opt_options ? opt_options : {};
var baseOptions = goog.object.clone(options);
var baseOptions = ol.object.assign({}, options);
delete baseOptions.preload;
delete baseOptions.useInterimTilesOnError;

View File

@@ -1,9 +1,9 @@
goog.provide('ol.layer.Vector');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.layer.Layer');
goog.require('ol.object');
goog.require('ol.style.Style');
@@ -38,7 +38,7 @@ ol.layer.Vector = function(opt_options) {
goog.isFunction(options.renderOrder),
'renderOrder must be a comparator function');
var baseOptions = goog.object.clone(options);
var baseOptions = ol.object.assign({}, options);
delete baseOptions.style;
delete baseOptions.renderBuffer;

View File

@@ -1,7 +1,7 @@
goog.provide('ol.layer.VectorTile');
goog.require('goog.object');
goog.require('ol.layer.Vector');
goog.require('ol.object');
/**
@@ -28,7 +28,7 @@ ol.layer.VectorTileProperty = {
ol.layer.VectorTile = function(opt_options) {
var options = opt_options ? opt_options : {};
var baseOptions = goog.object.clone(options);
var baseOptions = ol.object.assign({}, options);
delete baseOptions.preload;
delete baseOptions.useInterimTilesOnError;

View File

@@ -13,7 +13,6 @@ goog.require('goog.dom.classlist');
goog.require('goog.functions');
goog.require('goog.log');
goog.require('goog.log.Level');
goog.require('goog.object');
goog.require('goog.style');
goog.require('goog.vec.Mat4');
goog.require('ol.Collection');
@@ -44,6 +43,7 @@ goog.require('ol.has');
goog.require('ol.interaction');
goog.require('ol.layer.Base');
goog.require('ol.layer.Group');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.proj.common');
goog.require('ol.renderer.Map');
@@ -1027,7 +1027,7 @@ ol.Map.prototype.handlePostRender = function() {
maxTotalLoading = this.loadTilesWhileInteracting_ ? 8 : 0;
maxNewLoads = 2;
}
tileSourceCount = goog.object.getCount(frameState.wantedTiles);
tileSourceCount = frameState.tileSourceCount;
}
maxTotalLoading *= tileSourceCount;
maxNewLoads *= tileSourceCount;
@@ -1325,13 +1325,14 @@ ol.Map.prototype.renderFrame_ = function(time) {
index: this.frameIndex_++,
layerStates: layerStates,
layerStatesArray: layerStatesArray,
logos: goog.object.clone(this.logos_),
logos: ol.object.assign({}, this.logos_),
pixelRatio: this.pixelRatio_,
pixelToCoordinateMatrix: this.pixelToCoordinateMatrix_,
postRenderFunctions: [],
size: size,
skippedFeatureUids: this.skippedFeatureUids_,
tileQueue: this.tileQueue_,
tileSourceCount: 0,
time: time,
usedTiles: {},
viewState: viewState,

View File

@@ -4,14 +4,13 @@ goog.provide('ol.MapBrowserEventHandler');
goog.provide('ol.MapBrowserPointerEvent');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('ol.events.EventTarget');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.Coordinate');
goog.require('ol.MapEvent');
goog.require('ol.Pixel');
goog.require('ol.events');
goog.require('ol.events.EventTarget');
goog.require('ol.events.EventType');
goog.require('ol.pointer.PointerEvent');
goog.require('ol.pointer.PointerEventHandler');
@@ -176,7 +175,7 @@ ol.MapBrowserEventHandler = function(map) {
this.activePointers_ = 0;
/**
* @type {Object.<number, boolean>}
* @type {!Object.<number, boolean>}
* @private
*/
this.trackedTouches_ = {};
@@ -254,7 +253,7 @@ ol.MapBrowserEventHandler.prototype.updateActivePointers_ = function(pointerEven
} else if (event.type == ol.MapBrowserEvent.EventType.POINTERDOWN) {
this.trackedTouches_[event.pointerId] = true;
}
this.activePointers_ = goog.object.getCount(this.trackedTouches_);
this.activePointers_ = Object.keys(this.trackedTouches_).length;
};

View File

@@ -2,9 +2,10 @@ goog.provide('ol.Object');
goog.provide('ol.ObjectEvent');
goog.provide('ol.ObjectEventType');
goog.require('ol.Observable');
goog.require('ol.events');
goog.require('ol.events.Event');
goog.require('ol.Observable');
goog.require('ol.object');
/**
@@ -169,12 +170,7 @@ ol.Object.prototype.getKeys = function() {
* @api stable
*/
ol.Object.prototype.getProperties = function() {
var properties = {};
var key;
for (key in this.values_) {
properties[key] = this.values_[key];
}
return properties;
return ol.object.assign({}, this.values_);
};

70
src/ol/objectutil.js Normal file
View File

@@ -0,0 +1,70 @@
goog.provide('ol.object');
/**
* Polyfill for Object.assign(). Assigns enumerable and own properties from
* one or more source objects to a target object.
*
* @see https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
* @param {!Object} target The target object.
* @param {...Object} var_sources The source object(s).
* @return {!Object} The modified target object.
*/
ol.object.assign = (typeof Object.assign === 'function') ? Object.assign : function(target, var_sources) {
if (target === undefined || target === null) {
throw new TypeError('Cannot convert undefined or null to object');
}
var output = Object(target);
for (var i = 1, ii = arguments.length; i < ii; ++i) {
var source = arguments[i];
if (source !== undefined && source !== null) {
for (var key in source) {
if (source.hasOwnProperty(key)) {
output[key] = source[key];
}
}
}
}
return output;
};
/**
* Removes all properties from an object.
* @param {Object} object The object to clear.
*/
ol.object.clear = function(object) {
for (var property in object) {
delete object[property];
}
};
/**
* Get an array of property values from an object.
* @param {Object<K,V>} object The object from which to get the values.
* @return {!Array<V>} The property values.
* @template K,V
*/
ol.object.getValues = function(object) {
var values = [];
for (var property in object) {
values.push(object[property]);
}
return values;
};
/**
* Determine if an object has any properties.
* @param {Object} object The object to check.
* @return {boolean} The object is empty.
*/
ol.object.isEmpty = function(object) {
var property;
for (property in object) {
return false;
}
return !property;
};

View File

@@ -30,11 +30,10 @@
goog.provide('ol.pointer.TouchSource');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.array');
goog.require('ol.pointer.EventSource');
goog.require('ol.pointer.MouseSource');
goog.require('ol.array');
/**
@@ -124,7 +123,7 @@ ol.pointer.TouchSource.prototype.isPrimaryTouch_ = function(inTouch) {
* @private
*/
ol.pointer.TouchSource.prototype.setPrimaryTouch_ = function(inTouch) {
var count = goog.object.getCount(this.pointerMap);
var count = Object.keys(this.pointerMap).length;
if (count === 0 || (count === 1 &&
ol.pointer.MouseSource.POINTER_ID.toString() in this.pointerMap)) {
this.firstTouchId_ = inTouch.identifier;

View File

@@ -5,11 +5,11 @@ goog.provide('ol.proj.ProjectionLike');
goog.provide('ol.proj.Units');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.Extent');
goog.require('ol.TransformFunction');
goog.require('ol.extent');
goog.require('ol.object');
goog.require('ol.sphere.NORMAL');
@@ -630,7 +630,7 @@ ol.proj.removeTransform = function(source, destination) {
'destinationCode should be in transforms of sourceCode');
var transform = transforms[sourceCode][destinationCode];
delete transforms[sourceCode][destinationCode];
if (goog.object.isEmpty(transforms[sourceCode])) {
if (ol.object.isEmpty(transforms[sourceCode])) {
delete transforms[sourceCode];
}
return transform;

View File

@@ -9,7 +9,6 @@ goog.provide('ol.render.canvas.ReplayGroup');
goog.provide('ol.render.canvas.TextReplay');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('goog.vec.Mat4');
goog.require('ol');
goog.require('ol.array');
@@ -20,6 +19,7 @@ goog.require('ol.extent.Relationship');
goog.require('ol.geom.flat.simplify');
goog.require('ol.geom.flat.transform');
goog.require('ol.has');
goog.require('ol.object');
goog.require('ol.render.IReplayGroup');
goog.require('ol.render.VectorContext');
goog.require('ol.render.canvas');
@@ -249,7 +249,7 @@ ol.render.canvas.Replay.prototype.replay_ = function(
goog.asserts.assert(pixelCoordinates === this.pixelCoordinates_,
'pixelCoordinates should be the same as this.pixelCoordinates_');
}
var skipFeatures = !goog.object.isEmpty(skippedFeaturesHash);
var skipFeatures = !ol.object.isEmpty(skippedFeaturesHash);
var i = 0; // instruction index
var ii = instructions.length; // end of instructions
var d = 0; // data index
@@ -1981,7 +1981,7 @@ ol.render.canvas.ReplayGroup.prototype.getReplay = function(zIndex, replayType)
* @inheritDoc
*/
ol.render.canvas.ReplayGroup.prototype.isEmpty = function() {
return goog.object.isEmpty(this.replaysByZIndex_);
return ol.object.isEmpty(this.replaysByZIndex_);
};

View File

@@ -3,9 +3,9 @@ goog.provide('ol.render.webgl.ReplayGroup');
goog.require('goog.asserts');
goog.require('goog.functions');
goog.require('goog.object');
goog.require('goog.vec.Mat4');
goog.require('ol.extent');
goog.require('ol.object');
goog.require('ol.render.IReplayGroup');
goog.require('ol.render.VectorContext');
goog.require('ol.render.webgl.imagereplay.shader.Default');
@@ -620,7 +620,7 @@ ol.render.webgl.ImageReplay.prototype.drawReplay_ = function(gl, context, skippe
goog.webgl.UNSIGNED_INT : goog.webgl.UNSIGNED_SHORT;
var elementSize = context.hasOESElementIndexUint ? 4 : 2;
if (!goog.object.isEmpty(skippedFeaturesHash)) {
if (!ol.object.isEmpty(skippedFeaturesHash)) {
this.drawReplaySkipping_(
gl, skippedFeaturesHash, textures, groupIndices,
elementType, elementSize);
@@ -996,7 +996,7 @@ ol.render.webgl.ReplayGroup.prototype.getReplay = function(zIndex, replayType) {
* @inheritDoc
*/
ol.render.webgl.ReplayGroup.prototype.isEmpty = function() {
return goog.object.isEmpty(this.replays_);
return ol.object.isEmpty(this.replays_);
};

View File

@@ -298,6 +298,7 @@ ol.renderer.Layer.prototype.manageTilePyramid = function(
var tileSourceKey = goog.getUid(tileSource).toString();
if (!(tileSourceKey in frameState.wantedTiles)) {
frameState.wantedTiles[tileSourceKey] = {};
++frameState.tileSourceCount;
}
var wantedTiles = frameState.wantedTiles[tileSourceKey];
var tileQueue = frameState.tileQueue;

View File

@@ -4,12 +4,11 @@ goog.provide('ol.renderer.Map');
goog.require('goog.Disposable');
goog.require('goog.asserts');
goog.require('goog.dispose');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('goog.functions');
goog.require('goog.object');
goog.require('goog.vec.Mat4');
goog.require('ol');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol.extent');
goog.require('ol.layer.Layer');
goog.require('ol.renderer.Layer');
@@ -95,7 +94,9 @@ ol.renderer.Map.prototype.createLayerRenderer = goog.abstractMethod;
* @inheritDoc
*/
ol.renderer.Map.prototype.disposeInternal = function() {
goog.object.forEach(this.layerRenderers_, goog.dispose);
for (var id in this.layerRenderers_) {
goog.dispose(this.layerRenderers_[id]);
}
goog.base(this, 'disposeInternal');
};
@@ -277,7 +278,7 @@ ol.renderer.Map.prototype.getLayerRendererByKey = function(layerKey) {
/**
* @protected
* @return {Object.<number, ol.renderer.Layer>} Layer renderers.
* @return {Object.<string, ol.renderer.Layer>} Layer renderers.
*/
ol.renderer.Map.prototype.getLayerRenderers = function() {
return this.layerRenderers_;

View File

@@ -4,11 +4,8 @@ goog.provide('ol.renderer.webgl.Map');
goog.require('goog.asserts');
goog.require('goog.dom');
goog.require('ol.events');
goog.require('ol.events.Event');
goog.require('goog.log');
goog.require('goog.log.Logger');
goog.require('goog.object');
goog.require('goog.style');
goog.require('goog.webgl');
goog.require('ol');
@@ -16,6 +13,8 @@ goog.require('ol.RendererType');
goog.require('ol.array');
goog.require('ol.css');
goog.require('ol.dom');
goog.require('ol.events');
goog.require('ol.events.Event');
goog.require('ol.layer.Image');
goog.require('ol.layer.Layer');
goog.require('ol.layer.Tile');
@@ -384,17 +383,12 @@ ol.renderer.webgl.Map.prototype.handleWebGLContextLost = function(event) {
event.preventDefault();
this.textureCache_.clear();
this.textureCacheFrameMarkerCount_ = 0;
goog.object.forEach(this.getLayerRenderers(),
/**
* @param {ol.renderer.Layer} layerRenderer Layer renderer.
* @param {string} key Key.
* @param {Object.<string, ol.renderer.Layer>} object Object.
*/
function(layerRenderer, key, object) {
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer,
'renderer is an instance of ol.renderer.webgl.Layer');
layerRenderer.handleWebGLContextLost();
});
var renderers = this.getLayerRenderers();
for (var id in renderers) {
var renderer = /** @type {ol.renderer.webgl.Layer} */ (renderers[id]);
renderer.handleWebGLContextLost();
}
};

View File

@@ -2,14 +2,14 @@ goog.provide('ol.reproj.Tile');
goog.provide('ol.reproj.TileFunctionType');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('goog.math');
goog.require('goog.object');
goog.require('ol.Tile');
goog.require('ol.TileState');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol.extent');
goog.require('ol.math');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.reproj');
goog.require('ol.reproj.Triangulation');
@@ -226,7 +226,7 @@ ol.reproj.Tile.prototype.getImage = function(opt_context) {
var key = goog.getUid(opt_context);
if (key in this.canvasByContext_) {
return this.canvasByContext_[key];
} else if (goog.object.isEmpty(this.canvasByContext_)) {
} else if (ol.object.isEmpty(this.canvasByContext_)) {
image = this.canvas_;
} else {
image = /** @type {HTMLCanvasElement} */ (this.canvas_.cloneNode(false));

View File

@@ -4,10 +4,9 @@
goog.provide('ol.source.Cluster');
goog.require('goog.asserts');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('ol.Feature');
goog.require('ol.coordinate');
goog.require('ol.events.EventType');
goog.require('ol.extent');
goog.require('ol.geom.Point');
goog.require('ol.source.Vector');
@@ -111,7 +110,7 @@ ol.source.Cluster.prototype.cluster_ = function() {
var features = this.source_.getFeatures();
/**
* @type {Object.<string, boolean>}
* @type {!Object.<string, boolean>}
*/
var clustered = {};
@@ -140,7 +139,7 @@ ol.source.Cluster.prototype.cluster_ = function() {
}
}
goog.asserts.assert(
goog.object.getCount(clustered) == this.source_.getFeatures().length,
Object.keys(clustered).length == this.source_.getFeatures().length,
'number of clustered equals number of features in the source');
};

View File

@@ -2,11 +2,11 @@ goog.provide('ol.source.ImageMapGuide');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('goog.uri.utils');
goog.require('ol.Image');
goog.require('ol.ImageLoadFunctionType');
goog.require('ol.extent');
goog.require('ol.object');
goog.require('ol.source.Image');
@@ -43,9 +43,9 @@ ol.source.ImageMapGuide = function(options) {
/**
* @private
* @type {Object}
* @type {!Object}
*/
this.params_ = options.params !== undefined ? options.params : {};
this.params_ = options.params || {};
/**
* @private
@@ -192,7 +192,7 @@ ol.source.ImageMapGuide.getScale = function(extent, size, metersPerUnit, dpi) {
* @api stable
*/
ol.source.ImageMapGuide.prototype.updateParams = function(params) {
goog.object.extend(this.params_, params);
ol.object.assign(this.params_, params);
this.changed();
};
@@ -222,7 +222,7 @@ ol.source.ImageMapGuide.prototype.getUrl = function(baseUrl, params, extent, siz
'SETVIEWCENTERX': center[0],
'SETVIEWCENTERY': center[1]
};
goog.object.extend(baseParams, params);
ol.object.assign(baseParams, params);
return goog.uri.utils.appendParamsFromMap(baseUrl, baseParams);
};

View File

@@ -3,15 +3,15 @@
goog.provide('ol.source.ImageWMS');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('goog.string');
goog.require('goog.uri.utils');
goog.require('ol');
goog.require('ol.Image');
goog.require('ol.ImageLoadFunctionType');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol.extent');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.source.Image');
goog.require('ol.source.wms');
@@ -61,9 +61,9 @@ ol.source.ImageWMS = function(opt_options) {
/**
* @private
* @type {Object}
* @type {!Object}
*/
this.params_ = options.params;
this.params_ = options.params || {};
/**
* @private
@@ -156,7 +156,7 @@ ol.source.ImageWMS.prototype.getGetFeatureInfoUrl = function(coordinate, resolut
'TRANSPARENT': true,
'QUERY_LAYERS': this.params_['LAYERS']
};
goog.object.extend(baseParams, this.params_, params);
ol.object.assign(baseParams, this.params_, params);
var x = Math.floor((coordinate[0] - extent[0]) / resolution);
var y = Math.floor((extent[3] - coordinate[1]) / resolution);
@@ -228,7 +228,7 @@ ol.source.ImageWMS.prototype.getImageInternal = function(extent, resolution, pix
'FORMAT': 'image/png',
'TRANSPARENT': true
};
goog.object.extend(params, this.params_);
ol.object.assign(params, this.params_);
this.imageSize_[0] = Math.ceil(imageWidth * this.ratio_);
this.imageSize_[1] = Math.ceil(imageHeight * this.ratio_);
@@ -360,7 +360,7 @@ ol.source.ImageWMS.prototype.setUrl = function(url) {
* @api stable
*/
ol.source.ImageWMS.prototype.updateParams = function(params) {
goog.object.extend(this.params_, params);
ol.object.assign(this.params_, params);
this.updateV13_();
this.image_ = null;
this.changed();
@@ -371,7 +371,6 @@ ol.source.ImageWMS.prototype.updateParams = function(params) {
* @private
*/
ol.source.ImageWMS.prototype.updateV13_ = function() {
var version =
goog.object.get(this.params_, 'VERSION', ol.DEFAULT_WMS_VERSION);
var version = this.params_['VERSION'] || ol.DEFAULT_WMS_VERSION;
this.v13_ = goog.string.compareVersions(version, '1.3') >= 0;
};

View File

@@ -3,18 +3,18 @@ goog.provide('ol.source.RasterEvent');
goog.provide('ol.source.RasterEventType');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('ol.events.Event');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('goog.vec.Mat4');
goog.require('ol.ImageCanvas');
goog.require('ol.TileQueue');
goog.require('ol.dom');
goog.require('ol.events');
goog.require('ol.events.Event');
goog.require('ol.events.EventType');
goog.require('ol.ext.pixelworks');
goog.require('ol.extent');
goog.require('ol.layer.Image');
goog.require('ol.layer.Tile');
goog.require('ol.object');
goog.require('ol.raster.OperationType');
goog.require('ol.renderer.canvas.ImageLayer');
goog.require('ol.renderer.canvas.TileLayer');
@@ -122,6 +122,7 @@ ol.source.Raster = function(options) {
size: [0, 0],
skippedFeatureUids: {},
tileQueue: this.tileQueue_,
tileSourceCount: 0,
time: Date.now(),
usedTiles: {},
viewState: /** @type {olx.ViewState} */ ({
@@ -171,10 +172,10 @@ ol.source.Raster.prototype.setOperation = function(operation, opt_lib) {
ol.source.Raster.prototype.updateFrameState_ = function(extent, resolution, projection) {
var frameState = /** @type {olx.FrameState} */ (
goog.object.clone(this.frameState_));
ol.object.assign({}, this.frameState_));
frameState.viewState = /** @type {olx.ViewState} */ (
goog.object.clone(frameState.viewState));
ol.object.assign({}, frameState.viewState));
var center = ol.extent.getCenter(extent);
var width = Math.round(ol.extent.getWidth(extent) / resolution);

View File

@@ -2,12 +2,12 @@ goog.provide('ol.source.TileArcGISRest');
goog.require('goog.asserts');
goog.require('goog.math');
goog.require('goog.object');
goog.require('goog.string');
goog.require('goog.uri.utils');
goog.require('ol');
goog.require('ol.TileCoord');
goog.require('ol.extent');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.size');
goog.require('ol.source.TileImage');
@@ -32,8 +32,6 @@ ol.source.TileArcGISRest = function(opt_options) {
var options = opt_options || {};
var params = options.params !== undefined ? options.params : {};
goog.base(this, {
attributions: options.attributions,
crossOrigin: options.crossOrigin,
@@ -49,9 +47,9 @@ ol.source.TileArcGISRest = function(opt_options) {
/**
* @private
* @type {Object}
* @type {!Object}
*/
this.params_ = params;
this.params_ = options.params || {};
/**
* @private
@@ -165,7 +163,7 @@ ol.source.TileArcGISRest.prototype.fixedTileUrlFunction = function(tileCoord, pi
'FORMAT': 'PNG32',
'TRANSPARENT': true
};
goog.object.extend(baseParams, this.params_);
ol.object.assign(baseParams, this.params_);
return this.getRequestUrl_(tileCoord, tileSize, tileExtent,
pixelRatio, projection, baseParams);
@@ -178,6 +176,6 @@ ol.source.TileArcGISRest.prototype.fixedTileUrlFunction = function(tileCoord, pi
* @api stable
*/
ol.source.TileArcGISRest.prototype.updateParams = function(params) {
goog.object.extend(this.params_, params);
ol.object.assign(this.params_, params);
this.changed();
};

View File

@@ -1,12 +1,11 @@
goog.provide('ol.source.TileImage');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('ol.ImageTile');
goog.require('ol.TileCache');
goog.require('ol.TileState');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol.proj');
goog.require('ol.reproj.Tile');
goog.require('ol.source.UrlTile');
@@ -90,14 +89,16 @@ ol.source.TileImage.prototype.canExpireCache = function() {
if (!ol.ENABLE_RASTER_REPROJECTION) {
return goog.base(this, 'canExpireCache');
}
var canExpire = this.tileCache.canExpireCache();
if (canExpire) {
if (this.tileCache.canExpireCache()) {
return true;
} else {
return goog.object.some(this.tileCacheForProjection, function(tileCache) {
return tileCache.canExpireCache();
});
for (var key in this.tileCacheForProjection) {
if (this.tileCacheForProjection[key].canExpireCache()) {
return true;
}
}
}
return false;
};
@@ -112,9 +113,10 @@ ol.source.TileImage.prototype.expireCache = function(projection, usedTiles) {
var usedTileCache = this.getTileCacheForProjection(projection);
this.tileCache.expireCache(this.tileCache == usedTileCache ? usedTiles : {});
goog.object.forEach(this.tileCacheForProjection, function(tileCache) {
for (var id in this.tileCacheForProjection) {
var tileCache = this.tileCacheForProjection[id];
tileCache.expireCache(tileCache == usedTileCache ? usedTiles : {});
});
}
};
@@ -303,9 +305,9 @@ ol.source.TileImage.prototype.setRenderReprojectionEdges = function(render) {
return;
}
this.renderReprojectionEdges_ = render;
goog.object.forEach(this.tileCacheForProjection, function(tileCache) {
tileCache.clear();
});
for (var id in this.tileCacheForProjection) {
this.tileCacheForProjection[id].clear();
}
this.changed();
};

View File

@@ -6,12 +6,12 @@ goog.provide('ol.source.TileWMS');
goog.require('goog.asserts');
goog.require('goog.math');
goog.require('goog.object');
goog.require('goog.string');
goog.require('goog.uri.utils');
goog.require('ol');
goog.require('ol.TileCoord');
goog.require('ol.extent');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.size');
goog.require('ol.source.TileImage');
@@ -33,9 +33,9 @@ ol.source.TileWMS = function(opt_options) {
var options = opt_options || {};
var params = options.params !== undefined ? options.params : {};
var params = options.params || {};
var transparent = goog.object.get(params, 'TRANSPARENT', true);
var transparent = 'TRANSPARENT' in params ? params['TRANSPARENT'] : true;
goog.base(this, {
attributions: options.attributions,
@@ -59,7 +59,7 @@ ol.source.TileWMS = function(opt_options) {
/**
* @private
* @type {Object}
* @type {!Object}
*/
this.params_ = params;
@@ -161,7 +161,7 @@ ol.source.TileWMS.prototype.getGetFeatureInfoUrl = function(coordinate, resoluti
'TRANSPARENT': true,
'QUERY_LAYERS': this.params_['LAYERS']
};
goog.object.extend(baseParams, this.params_, params);
ol.object.assign(baseParams, this.params_, params);
var x = Math.floor((coordinate[0] - tileExtent[0]) / tileResolution);
var y = Math.floor((tileExtent[3] - coordinate[1]) / tileResolution);
@@ -363,7 +363,7 @@ ol.source.TileWMS.prototype.fixedTileUrlFunction = function(tileCoord, pixelRati
'FORMAT': 'image/png',
'TRANSPARENT': true
};
goog.object.extend(baseParams, this.params_);
ol.object.assign(baseParams, this.params_);
return this.getRequestUrl_(tileCoord, tileSize, tileExtent,
pixelRatio, projection, baseParams);
@@ -376,7 +376,7 @@ ol.source.TileWMS.prototype.fixedTileUrlFunction = function(tileCoord, pixelRati
* @api stable
*/
ol.source.TileWMS.prototype.updateParams = function(params) {
goog.object.extend(this.params_, params);
ol.object.assign(this.params_, params);
this.resetCoordKeyPrefix_();
this.resetParamsKey_();
this.updateV13_();
@@ -388,7 +388,6 @@ ol.source.TileWMS.prototype.updateParams = function(params) {
* @private
*/
ol.source.TileWMS.prototype.updateV13_ = function() {
var version =
goog.object.get(this.params_, 'VERSION', ol.DEFAULT_WMS_VERSION);
var version = this.params_['VERSION'] || ol.DEFAULT_WMS_VERSION;
this.v13_ = goog.string.compareVersions(version, '1.3') >= 0;
};

View File

@@ -6,10 +6,6 @@ goog.provide('ol.source.VectorEvent');
goog.provide('ol.source.VectorEventType');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('ol.events.Event');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.Collection');
goog.require('ol.CollectionEventType');
@@ -19,9 +15,13 @@ goog.require('ol.FeatureLoader');
goog.require('ol.LoadingStrategy');
goog.require('ol.ObjectEventType');
goog.require('ol.array');
goog.require('ol.events');
goog.require('ol.events.Event');
goog.require('ol.events.EventType');
goog.require('ol.extent');
goog.require('ol.featureloader');
goog.require('ol.loadingstrategy');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.source.Source');
goog.require('ol.source.State');
@@ -382,20 +382,21 @@ ol.source.Vector.prototype.clear = function(opt_fast) {
this.undefIdIndex_ = {};
}
} else {
var rmFeatureInternal = this.removeFeatureInternal;
if (this.featuresRtree_) {
this.featuresRtree_.forEach(rmFeatureInternal, this);
goog.object.forEach(this.nullGeometryFeatures_, rmFeatureInternal, this);
this.featuresRtree_.forEach(this.removeFeatureInternal, this);
for (var id in this.nullGeometryFeatures_) {
this.removeFeatureInternal(this.nullGeometryFeatures_[id]);
}
}
}
if (this.featuresCollection_) {
this.featuresCollection_.clear();
}
goog.asserts.assert(goog.object.isEmpty(this.featureChangeKeys_),
goog.asserts.assert(ol.object.isEmpty(this.featureChangeKeys_),
'featureChangeKeys is an empty object now');
goog.asserts.assert(goog.object.isEmpty(this.idIndex_),
goog.asserts.assert(ol.object.isEmpty(this.idIndex_),
'idIndex is an empty object now');
goog.asserts.assert(goog.object.isEmpty(this.undefIdIndex_),
goog.asserts.assert(ol.object.isEmpty(this.undefIdIndex_),
'undefIdIndex is an empty object now');
if (this.featuresRtree_) {
@@ -549,9 +550,9 @@ ol.source.Vector.prototype.getFeatures = function() {
features = this.featuresCollection_.getArray();
} else if (this.featuresRtree_) {
features = this.featuresRtree_.getAll();
if (!goog.object.isEmpty(this.nullGeometryFeatures_)) {
if (!ol.object.isEmpty(this.nullGeometryFeatures_)) {
ol.array.extend(
features, goog.object.getValues(this.nullGeometryFeatures_));
features, ol.object.getValues(this.nullGeometryFeatures_));
}
}
goog.asserts.assert(features !== undefined,
@@ -752,7 +753,7 @@ ol.source.Vector.prototype.hasFeature = function(feature) {
*/
ol.source.Vector.prototype.isEmpty = function() {
return this.featuresRtree_.isEmpty() &&
goog.object.isEmpty(this.nullGeometryFeatures_);
ol.object.isEmpty(this.nullGeometryFeatures_);
};

View File

@@ -2,12 +2,12 @@ goog.provide('ol.source.WMTS');
goog.provide('ol.source.WMTSRequestEncoding');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('goog.uri.utils');
goog.require('ol.TileUrlFunction');
goog.require('ol.TileUrlFunctionType');
goog.require('ol.array');
goog.require('ol.extent');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.source.TileImage');
goog.require('ol.tilegrid.WMTS');
@@ -111,7 +111,7 @@ ol.source.WMTS = function(options) {
};
if (requestEncoding == ol.source.WMTSRequestEncoding.KVP) {
goog.object.extend(context, {
ol.object.assign(context, {
'Service': 'WMTS',
'Request': 'GetTile',
'Version': this.version_,
@@ -153,7 +153,7 @@ ol.source.WMTS = function(options) {
'TileCol': tileCoord[1],
'TileRow': -tileCoord[2] - 1
};
goog.object.extend(localContext, dimensions);
ol.object.assign(localContext, dimensions);
var url = template;
if (requestEncoding == ol.source.WMTSRequestEncoding.KVP) {
url = goog.uri.utils.appendParamsFromMap(url, localContext);
@@ -290,7 +290,7 @@ ol.source.WMTS.prototype.resetDimensionsKey_ = function() {
* @api
*/
ol.source.WMTS.prototype.updateDimensions = function(dimensions) {
goog.object.extend(this.dimensions_, dimensions);
ol.object.assign(this.dimensions_, dimensions);
this.resetDimensionsKey_();
this.changed();
};

View File

@@ -1,7 +1,7 @@
goog.provide('ol.structs.LRUCache');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('ol.object');
/**
@@ -22,7 +22,7 @@ ol.structs.LRUCache = function() {
/**
* @private
* @type {Object.<string, ol.structs.LRUCacheEntry>}
* @type {!Object.<string, ol.structs.LRUCacheEntry>}
*/
this.entries_ = {};
@@ -46,14 +46,14 @@ ol.structs.LRUCache = function() {
*/
ol.structs.LRUCache.prototype.assertValid = function() {
if (this.count_ === 0) {
goog.asserts.assert(goog.object.isEmpty(this.entries_),
goog.asserts.assert(ol.object.isEmpty(this.entries_),
'entries must be an empty object (count = 0)');
goog.asserts.assert(!this.oldest_,
'oldest must be null (count = 0)');
goog.asserts.assert(!this.newest_,
'newest must be null (count = 0)');
} else {
goog.asserts.assert(goog.object.getCount(this.entries_) == this.count_,
goog.asserts.assert(Object.keys(this.entries_).length == this.count_,
'number of entries matches count');
goog.asserts.assert(this.oldest_,
'we have an oldest entry');

View File

@@ -1,7 +1,7 @@
goog.provide('ol.structs.PriorityQueue');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('ol.object');
/**
@@ -88,7 +88,7 @@ ol.structs.PriorityQueue.prototype.assertValid = function() {
ol.structs.PriorityQueue.prototype.clear = function() {
this.elements_.length = 0;
this.priorities_.length = 0;
goog.object.clear(this.queuedElements_);
ol.object.clear(this.queuedElements_);
};

View File

@@ -1,9 +1,9 @@
goog.provide('ol.structs.RBush');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('ol.ext.rbush');
goog.require('ol.extent');
goog.require('ol.object');
/**
@@ -234,7 +234,7 @@ ol.structs.RBush.prototype.forEach_ = function(values, callback, opt_this) {
* @return {boolean} Is empty.
*/
ol.structs.RBush.prototype.isEmpty = function() {
return goog.object.isEmpty(this.items_);
return ol.object.isEmpty(this.items_);
};

View File

@@ -3,7 +3,6 @@ goog.provide('ol.style.AtlasManager');
goog.require('goog.asserts');
goog.require('goog.functions');
goog.require('goog.object');
goog.require('ol');
@@ -310,8 +309,7 @@ ol.style.Atlas = function(size, space) {
* @return {?ol.style.AtlasInfo} The atlas info.
*/
ol.style.Atlas.prototype.get = function(id) {
return /** @type {?ol.style.AtlasInfo} */ (
goog.object.get(this.entries_, id, null));
return this.entries_[id] || null;
};

View File

@@ -1,7 +1,6 @@
goog.provide('ol.tilegrid.TileGrid');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.Coordinate');
goog.require('ol.TileCoord');
@@ -10,6 +9,7 @@ goog.require('ol.array');
goog.require('ol.extent');
goog.require('ol.extent.Corner');
goog.require('ol.math');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.proj.METERS_PER_UNIT');
goog.require('ol.proj.Projection');
@@ -542,7 +542,7 @@ ol.tilegrid.createForExtent = function(extent, opt_maxZoom, opt_tileSize, opt_co
*/
ol.tilegrid.createXYZ = function(opt_options) {
var options = /** @type {olx.tilegrid.TileGridOptions} */ ({});
goog.object.extend(options, opt_options !== undefined ?
ol.object.assign(options, opt_options !== undefined ?
opt_options : /** @type {olx.tilegrid.XYZOptions} */ ({}));
if (options.extent === undefined) {
options.extent = ol.proj.get('EPSG:3857').getExtent();

View File

@@ -1,11 +1,11 @@
goog.provide('ol.webgl.Context');
goog.require('goog.asserts');
goog.require('ol.events');
goog.require('goog.log');
goog.require('goog.object');
goog.require('ol');
goog.require('ol.array');
goog.require('ol.events');
goog.require('ol.object');
goog.require('ol.webgl.Buffer');
goog.require('ol.webgl.WebGLContextEventType');
@@ -42,13 +42,13 @@ ol.webgl.Context = function(canvas, gl) {
/**
* @private
* @type {Object.<number, ol.webgl.BufferCacheEntry>}
* @type {Object.<string, ol.webgl.BufferCacheEntry>}
*/
this.bufferCache_ = {};
/**
* @private
* @type {Object.<number, WebGLShader>}
* @type {Object.<string, WebGLShader>}
*/
this.shaderCache_ = {};
@@ -113,7 +113,7 @@ ol.webgl.Context = function(canvas, gl) {
ol.webgl.Context.prototype.bindBuffer = function(target, buf) {
var gl = this.getGL();
var arr = buf.getArray();
var bufferKey = goog.getUid(buf);
var bufferKey = String(goog.getUid(buf));
if (bufferKey in this.bufferCache_) {
var bufferCacheEntry = this.bufferCache_[bufferKey];
gl.bindBuffer(target, bufferCacheEntry.buffer);
@@ -146,7 +146,7 @@ ol.webgl.Context.prototype.bindBuffer = function(target, buf) {
*/
ol.webgl.Context.prototype.deleteBuffer = function(buf) {
var gl = this.getGL();
var bufferKey = goog.getUid(buf);
var bufferKey = String(goog.getUid(buf));
goog.asserts.assert(bufferKey in this.bufferCache_,
'attempted to delete uncached buffer');
var bufferCacheEntry = this.bufferCache_[bufferKey];
@@ -163,15 +163,16 @@ ol.webgl.Context.prototype.deleteBuffer = function(buf) {
ol.webgl.Context.prototype.disposeInternal = function() {
var gl = this.getGL();
if (!gl.isContextLost()) {
goog.object.forEach(this.bufferCache_, function(bufferCacheEntry) {
gl.deleteBuffer(bufferCacheEntry.buffer);
});
goog.object.forEach(this.programCache_, function(program) {
gl.deleteProgram(program);
});
goog.object.forEach(this.shaderCache_, function(shader) {
gl.deleteShader(shader);
});
var key;
for (key in this.bufferCache_) {
gl.deleteBuffer(this.bufferCache_[key].buffer);
}
for (key in this.programCache_) {
gl.deleteProgram(this.programCache_[key]);
}
for (key in this.shaderCache_) {
gl.deleteShader(this.shaderCache_[key]);
}
// delete objects for hit-detection
gl.deleteFramebuffer(this.hitDetectionFramebuffer_);
gl.deleteRenderbuffer(this.hitDetectionRenderbuffer_);
@@ -217,7 +218,7 @@ ol.webgl.Context.prototype.getHitDetectionFramebuffer = function() {
* @return {WebGLShader} Shader.
*/
ol.webgl.Context.prototype.getShader = function(shaderObject) {
var shaderKey = goog.getUid(shaderObject);
var shaderKey = String(goog.getUid(shaderObject));
if (shaderKey in this.shaderCache_) {
return this.shaderCache_[shaderKey];
} else {
@@ -281,9 +282,9 @@ ol.webgl.Context.prototype.getProgram = function(
* FIXME empy description for jsdoc
*/
ol.webgl.Context.prototype.handleWebGLContextLost = function() {
goog.object.clear(this.bufferCache_);
goog.object.clear(this.shaderCache_);
goog.object.clear(this.programCache_);
ol.object.clear(this.bufferCache_);
ol.object.clear(this.shaderCache_);
ol.object.clear(this.programCache_);
this.currentProgram_ = null;
this.hitDetectionFramebuffer_ = null;
this.hitDetectionTexture_ = null;

View File

@@ -3,7 +3,6 @@ goog.provide('ol.xml');
goog.require('goog.asserts');
goog.require('goog.dom.NodeType');
goog.require('goog.dom.xml');
goog.require('goog.object');
goog.require('goog.userAgent');
goog.require('ol.array');
@@ -454,7 +453,12 @@ ol.xml.makeObjectPropertyPusher = function(valueReader, opt_property, opt_this)
opt_property : node.localName;
goog.asserts.assert(goog.isObject(object),
'entity from stack was not an object');
var array = goog.object.setIfUndefined(object, property, []);
var array;
if (property in object) {
array = object[property];
} else {
array = object[property] = [];
}
array.push(value);
}
});

View File

@@ -81,7 +81,7 @@ describe('ol.Feature', function() {
it('is empty by default', function() {
var feature = new ol.Feature();
var properties = feature.getProperties();
expect(goog.object.isEmpty(properties)).to.be(true);
expect(ol.object.isEmpty(properties)).to.be(true);
});
});
@@ -462,8 +462,7 @@ describe('ol.Feature.createStyleFunction()', function() {
});
goog.require('ol.events');
goog.require('goog.object');
goog.require('ol.Feature');
goog.require('ol.geom.Point');
goog.require('ol.object');
goog.require('ol.style.Style');

View File

@@ -47,7 +47,6 @@ describe('ol.interaction.KeyboardPan', function() {
});
goog.require('goog.object');
goog.require('ol.Map');
goog.require('ol.MapBrowserEvent');
goog.require('ol.View');

View File

@@ -41,7 +41,6 @@ describe('ol.interaction.KeyboardZoom', function() {
});
goog.require('goog.object');
goog.require('ol.Map');
goog.require('ol.MapBrowserEvent');
goog.require('ol.View');

View File

@@ -126,7 +126,6 @@ describe('ol.interaction.MouseWheelZoom', function() {
});
goog.require('goog.object');
goog.require('ol.Map');
goog.require('ol.MapBrowserEvent');
goog.require('ol.View');

View File

@@ -279,10 +279,10 @@ describe('ol.layer.Group', function() {
var layerGroup = new ol.layer.Group({
layers: layers
});
expect(goog.object.getCount(layerGroup.listenerKeys_)).to.eql(0);
expect(Object.keys(layerGroup.listenerKeys_).length).to.eql(0);
var layer = new ol.layer.Layer({});
layers.push(layer);
expect(goog.object.getCount(layerGroup.listenerKeys_)).to.eql(1);
expect(Object.keys(layerGroup.listenerKeys_).length).to.eql(1);
var listeners = layerGroup.listenerKeys_[goog.getUid(layer)];
expect(listeners.length).to.eql(2);
@@ -291,7 +291,7 @@ describe('ol.layer.Group', function() {
// remove the layer from the group
layers.pop();
expect(goog.object.getCount(layerGroup.listenerKeys_)).to.eql(0);
expect(Object.keys(layerGroup.listenerKeys_).length).to.eql(0);
expect(listeners[0].listener).to.be(undefined);
expect(listeners[1].listener).to.be(undefined);
});
@@ -364,9 +364,9 @@ describe('ol.layer.Group', function() {
expect(layerStatesArray[0]).to.eql(layer1.getLayerState());
// layer state should match except for layer reference
var layerState = goog.object.clone(layerStatesArray[0]);
var layerState = ol.object.assign({}, layerStatesArray[0]);
delete layerState.layer;
var groupState = goog.object.clone(layerGroup.getLayerState());
var groupState = ol.object.assign({}, layerGroup.getLayerState());
delete groupState.layer;
expect(layerState).to.eql(groupState);
@@ -413,14 +413,14 @@ describe('ol.layer.Group', function() {
var groupState, layerState;
// layer state should match except for layer reference
layerState = goog.object.clone(layerStatesArray[0]);
layerState = ol.object.assign({}, layerStatesArray[0]);
delete layerState.layer;
groupState = goog.object.clone(layerGroup.getLayerState());
groupState = ol.object.assign({}, layerGroup.getLayerState());
delete groupState.layer;
expect(layerState).to.eql(groupState);
// layer state should be transformed (and we ignore layer reference)
layerState = goog.object.clone(layerStatesArray[1]);
layerState = ol.object.assign({}, layerStatesArray[1]);
delete layerState.layer;
expect(layerState).to.eql({
opacity: 0.25,
@@ -491,14 +491,14 @@ describe('ol.layer.Group', function() {
goog.require('ol.array');
goog.require('goog.dispose');
goog.require('ol.Collection');
goog.require('ol.ObjectEventType');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('goog.object');
goog.require('ol.ObjectEventType');
goog.require('ol.extent');
goog.require('ol.layer.Layer');
goog.require('ol.layer.Group');
goog.require('ol.layer.Layer');
goog.require('ol.object');
goog.require('ol.renderer.Map');
goog.require('ol.source.Source');
goog.require('ol.source.State');
goog.require('ol.Collection');

View File

@@ -239,6 +239,6 @@ describe('ol.Object', function() {
});
goog.require('ol.events');
goog.require('ol.Object');
goog.require('ol.ObjectEventType');
goog.require('ol.events');

View File

@@ -0,0 +1,66 @@
goog.provide('ol.test.object');
describe('ol.object.assign()', function() {
it('is an alias for Object.assign() where available', function() {
if (typeof Object.assign === 'function') {
expect(ol.object.assign).to.be(Object.assign);
}
});
it('assigns properties from a source object to a target object', function() {
var source = {
sourceProp1: 'sourceValue1',
sourceProp2: 'sourceValue2'
};
var target = {
sourceProp1: 'overridden',
targetProp1: 'targetValue1'
};
var assigned = ol.object.assign(target, source);
expect(assigned).to.be(target);
expect(assigned.sourceProp1).to.be('sourceValue1');
expect(assigned.sourceProp2).to.be('sourceValue2');
expect(assigned.targetProp1).to.be('targetValue1');
});
});
describe('ol.object.clear()', function() {
it('removes all properties from an object', function() {
var clear = ol.object.clear;
var isEmpty = ol.object.isEmpty;
expect(isEmpty(clear({foo: 'bar'}))).to.be(true);
expect(isEmpty(clear({foo: 'bar', num: 42}))).to.be(true);
expect(isEmpty(clear({}))).to.be(true);
expect(isEmpty(clear(null))).to.be(true);
});
});
describe('ol.object.getValues()', function() {
it('gets a list of property values from an object', function() {
expect(ol.object.getValues({foo: 'bar', num: 42}).sort()).to.eql([42, 'bar']);
expect(ol.object.getValues(null)).to.eql([]);
});
});
describe('ol.object.isEmpty()', function() {
it('checks if an object has any properties', function() {
expect(ol.object.isEmpty({})).to.be(true);
expect(ol.object.isEmpty(null)).to.be(true);
expect(ol.object.isEmpty({foo: 'bar'})).to.be(false);
expect(ol.object.isEmpty({foo: false})).to.be(false);
});
});
goog.require('ol.object');

View File

@@ -1,7 +1,5 @@
goog.provide('ol.test.pointer.TouchSource');
goog.require('goog.object');
describe('ol.pointer.TouchSource', function() {
var handler;
var target;
@@ -48,7 +46,7 @@ describe('ol.pointer.TouchSource', function() {
expect(pointerEvent2.clientX).to.be(30);
expect(pointerEvent2.clientY).to.be(45);
expect(goog.object.getCount(handler.pointerMap)).to.be(2);
expect(Object.keys(handler.pointerMap).length).to.be(2);
});
it('creates the right pointer events', function() {
@@ -59,7 +57,7 @@ describe('ol.pointer.TouchSource', function() {
{identifier: 3, clientX: 10, clientY: 11}
]);
expect(eventSpy.calledOnce).to.be.ok();
expect(goog.object.getCount(handler.pointerMap)).to.be(1);
expect(Object.keys(handler.pointerMap).length).to.be(1);
// second touch (first touch still down)
simulateTouchEvent('touchstart', [
@@ -67,7 +65,7 @@ describe('ol.pointer.TouchSource', function() {
], [{identifier: 3}, {identifier: 4}]
);
expect(eventSpy.calledTwice).to.be.ok();
expect(goog.object.getCount(handler.pointerMap)).to.be(2);
expect(Object.keys(handler.pointerMap).length).to.be(2);
// first touch moves
var moveEventSpy = sinon.spy();
@@ -89,7 +87,7 @@ describe('ol.pointer.TouchSource', function() {
], [{identifier: 3}, {identifier: 4}]
);
expect(upEventSpy.calledTwice).to.be.ok();
expect(goog.object.getCount(handler.pointerMap)).to.be(0);
expect(Object.keys(handler.pointerMap).length).to.be(0);
});
it('handles flawed touches', function() {
@@ -100,7 +98,7 @@ describe('ol.pointer.TouchSource', function() {
{identifier: 3, clientX: 10, clientY: 11}
]);
expect(eventSpy.calledOnce).to.be.ok();
expect(goog.object.getCount(handler.pointerMap)).to.be(1);
expect(Object.keys(handler.pointerMap).length).to.be(1);
// second touch, but the first touch has disappeared
var cancelEventSpy = sinon.spy();
@@ -113,7 +111,7 @@ describe('ol.pointer.TouchSource', function() {
// the first (broken) touch is canceled
expect(cancelEventSpy.calledOnce).to.be.ok();
expect(goog.object.getCount(handler.pointerMap)).to.be(1);
expect(Object.keys(handler.pointerMap).length).to.be(1);
});
});
@@ -121,7 +119,7 @@ describe('ol.pointer.TouchSource', function() {
touches = touches !== undefined ? touches : changedTouches;
var event = new ol.events.Event(type);
goog.object.extend(event, {
ol.object.assign(event, {
touches: touches,
changedTouches: changedTouches
});
@@ -129,11 +127,11 @@ describe('ol.pointer.TouchSource', function() {
}
});
goog.require('goog.dom');
goog.require('ol.events');
goog.require('ol.events.Event');
goog.require('ol.events.EventTarget');
goog.require('ol.has');
goog.require('ol.object');
goog.require('ol.pointer.PointerEvent');
goog.require('ol.pointer.PointerEventHandler');
goog.require('ol.pointer.TouchSource');

View File

@@ -255,7 +255,6 @@ describe('ol.test.source.TileMock', function() {
});
goog.require('goog.object');
goog.require('ol.Tile');
goog.require('ol.TileRange');
goog.require('ol.TileState');

View File

@@ -44,7 +44,7 @@ describe('ol.rendering.layer.Image', function() {
var options = {
source: source
};
goog.object.extend(options, layerOptions);
ol.object.assign(options, layerOptions);
map.addLayer(new ol.layer.Image(options));
});
}
@@ -109,9 +109,9 @@ describe('ol.rendering.layer.Image', function() {
});
goog.require('goog.object');
goog.require('ol.proj');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Image');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.source.ImageStatic');

View File

@@ -44,7 +44,7 @@ describe('ol.rendering.layer.Tile', function() {
var options = {
source: source
};
goog.object.extend(options, layerOptions);
ol.object.assign(options, layerOptions);
map.addLayer(new ol.layer.Tile(options));
});
}
@@ -190,11 +190,11 @@ describe('ol.rendering.layer.Tile', function() {
});
goog.require('goog.object');
goog.require('ol.proj');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.layer.Tile');
goog.require('ol.object');
goog.require('ol.proj');
goog.require('ol.source.TileImage');
goog.require('ol.source.XYZ');
goog.require('ol.tilegrid.TileGrid');

View File

@@ -42,7 +42,7 @@ describe('ol.rendering.layer.VectorTile', function() {
var options = {
source: source
};
goog.object.extend(options, layerOptions);
ol.object.assign(options, layerOptions);
map.addLayer(new ol.layer.VectorTile(options));
}
@@ -74,9 +74,9 @@ describe('ol.rendering.layer.VectorTile', function() {
});
goog.require('goog.object');
goog.require('ol.format.MVT');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.format.MVT');
goog.require('ol.layer.VectorTile');
goog.require('ol.object');
goog.require('ol.source.VectorTile');