Replace goog.object.clear() with ol.object.clear()
This commit is contained in:
@@ -2,7 +2,7 @@ goog.provide('ol.events');
|
|||||||
goog.provide('ol.events.EventType');
|
goog.provide('ol.events.EventType');
|
||||||
goog.provide('ol.events.KeyCode');
|
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) {
|
if (listeners) {
|
||||||
for (var i = 0, ii = listeners.length; i < ii; ++i) {
|
for (var i = 0, ii = listeners.length; i < ii; ++i) {
|
||||||
target.removeEventListener(type, listeners[i].boundListener);
|
target.removeEventListener(type, listeners[i].boundListener);
|
||||||
goog.object.clear(listeners[i])
|
ol.object.clear(listeners[i])
|
||||||
}
|
}
|
||||||
listeners.length = 0;
|
listeners.length = 0;
|
||||||
var listenerMap = target[ol.events.LISTENER_MAP_PROP_];
|
var listenerMap = target[ol.events.LISTENER_MAP_PROP_];
|
||||||
@@ -318,7 +318,7 @@ ol.events.unlistenByKey = function(key) {
|
|||||||
ol.events.removeListeners_(key.target, key.type);
|
ol.events.removeListeners_(key.target, key.type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
goog.object.clear(key);
|
ol.object.clear(key);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ goog.provide('ol.geom.GeometryCollection');
|
|||||||
|
|
||||||
goog.require('ol.events');
|
goog.require('ol.events');
|
||||||
goog.require('ol.events.EventType');
|
goog.require('ol.events.EventType');
|
||||||
goog.require('goog.object');
|
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
goog.require('ol.geom.Geometry');
|
goog.require('ol.geom.Geometry');
|
||||||
goog.require('ol.geom.GeometryType');
|
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) {
|
ol.geom.GeometryCollection.prototype.getSimplifiedGeometry = function(squaredTolerance) {
|
||||||
if (this.simplifiedGeometryRevision != this.getRevision()) {
|
if (this.simplifiedGeometryRevision != this.getRevision()) {
|
||||||
goog.object.clear(this.simplifiedGeometryCache);
|
ol.object.clear(this.simplifiedGeometryCache);
|
||||||
this.simplifiedGeometryMaxMinSquaredTolerance = 0;
|
this.simplifiedGeometryMaxMinSquaredTolerance = 0;
|
||||||
this.simplifiedGeometryRevision = this.getRevision();
|
this.simplifiedGeometryRevision = this.getRevision();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,11 +2,11 @@ goog.provide('ol.geom.SimpleGeometry');
|
|||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.functions');
|
goog.require('goog.functions');
|
||||||
goog.require('goog.object');
|
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
goog.require('ol.geom.Geometry');
|
goog.require('ol.geom.Geometry');
|
||||||
goog.require('ol.geom.GeometryLayout');
|
goog.require('ol.geom.GeometryLayout');
|
||||||
goog.require('ol.geom.flat.transform');
|
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) {
|
ol.geom.SimpleGeometry.prototype.getSimplifiedGeometry = function(squaredTolerance) {
|
||||||
if (this.simplifiedGeometryRevision != this.getRevision()) {
|
if (this.simplifiedGeometryRevision != this.getRevision()) {
|
||||||
goog.object.clear(this.simplifiedGeometryCache);
|
ol.object.clear(this.simplifiedGeometryCache);
|
||||||
this.simplifiedGeometryMaxMinSquaredTolerance = 0;
|
this.simplifiedGeometryMaxMinSquaredTolerance = 0;
|
||||||
this.simplifiedGeometryRevision = this.getRevision();
|
this.simplifiedGeometryRevision = this.getRevision();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,17 +4,17 @@ goog.provide('ol.interaction.SelectEventType');
|
|||||||
goog.provide('ol.interaction.SelectFilterFunction');
|
goog.provide('ol.interaction.SelectFilterFunction');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('ol.events');
|
|
||||||
goog.require('ol.events.Event');
|
|
||||||
goog.require('goog.functions');
|
goog.require('goog.functions');
|
||||||
goog.require('goog.object');
|
|
||||||
goog.require('ol.CollectionEventType');
|
goog.require('ol.CollectionEventType');
|
||||||
goog.require('ol.Feature');
|
goog.require('ol.Feature');
|
||||||
goog.require('ol.array');
|
goog.require('ol.array');
|
||||||
|
goog.require('ol.events');
|
||||||
|
goog.require('ol.events.Event');
|
||||||
goog.require('ol.events.condition');
|
goog.require('ol.events.condition');
|
||||||
goog.require('ol.geom.GeometryType');
|
goog.require('ol.geom.GeometryType');
|
||||||
goog.require('ol.interaction.Interaction');
|
goog.require('ol.interaction.Interaction');
|
||||||
goog.require('ol.layer.Vector');
|
goog.require('ol.layer.Vector');
|
||||||
|
goog.require('ol.object');
|
||||||
goog.require('ol.source.Vector');
|
goog.require('ol.source.Vector');
|
||||||
|
|
||||||
|
|
||||||
@@ -305,7 +305,7 @@ ol.interaction.Select.handleEvent = function(mapBrowserEvent) {
|
|||||||
features.extend(selected);
|
features.extend(selected);
|
||||||
// Modify object this.featureLayerAssociation_
|
// Modify object this.featureLayerAssociation_
|
||||||
if (selected.length === 0) {
|
if (selected.length === 0) {
|
||||||
goog.object.clear(this.featureLayerAssociation_);
|
ol.object.clear(this.featureLayerAssociation_);
|
||||||
} else {
|
} else {
|
||||||
if (deselected.length > 0) {
|
if (deselected.length > 0) {
|
||||||
deselected.forEach(function(feature) {
|
deselected.forEach(function(feature) {
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
goog.provide('ol.layer.Group');
|
goog.provide('ol.layer.Group');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.object');
|
|
||||||
goog.require('ol.events');
|
|
||||||
goog.require('ol.events.EventType');
|
|
||||||
goog.require('ol.Collection');
|
goog.require('ol.Collection');
|
||||||
goog.require('ol.CollectionEvent');
|
goog.require('ol.CollectionEvent');
|
||||||
goog.require('ol.CollectionEventType');
|
goog.require('ol.CollectionEventType');
|
||||||
goog.require('ol.Object');
|
goog.require('ol.Object');
|
||||||
goog.require('ol.ObjectEventType');
|
goog.require('ol.ObjectEventType');
|
||||||
|
goog.require('ol.events');
|
||||||
|
goog.require('ol.events.EventType');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
goog.require('ol.layer.Base');
|
goog.require('ol.layer.Base');
|
||||||
goog.require('ol.object');
|
goog.require('ol.object');
|
||||||
@@ -107,7 +106,7 @@ ol.layer.Group.prototype.handleLayersChanged_ = function(event) {
|
|||||||
for (var id in this.listenerKeys_) {
|
for (var id in this.listenerKeys_) {
|
||||||
this.listenerKeys_[id].forEach(ol.events.unlistenByKey);
|
this.listenerKeys_[id].forEach(ol.events.unlistenByKey);
|
||||||
}
|
}
|
||||||
goog.object.clear(this.listenerKeys_);
|
ol.object.clear(this.listenerKeys_);
|
||||||
|
|
||||||
var layersArray = layers.getArray();
|
var layersArray = layers.getArray();
|
||||||
var i, ii, layer;
|
var i, ii, layer;
|
||||||
|
|||||||
@@ -1,54 +1,11 @@
|
|||||||
goog.provide('ol.Object');
|
goog.provide('ol.Object');
|
||||||
goog.provide('ol.ObjectEvent');
|
goog.provide('ol.ObjectEvent');
|
||||||
goog.provide('ol.ObjectEventType');
|
goog.provide('ol.ObjectEventType');
|
||||||
goog.provide('ol.object');
|
|
||||||
|
|
||||||
|
goog.require('ol.Observable');
|
||||||
goog.require('ol.events');
|
goog.require('ol.events');
|
||||||
goog.require('ol.events.Event');
|
goog.require('ol.events.Event');
|
||||||
goog.require('ol.Observable');
|
goog.require('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;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
55
src/ol/objectutil.js
Normal file
55
src/ol/objectutil.js
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
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];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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;
|
||||||
|
};
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
goog.provide('ol.structs.PriorityQueue');
|
goog.provide('ol.structs.PriorityQueue');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
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() {
|
ol.structs.PriorityQueue.prototype.clear = function() {
|
||||||
this.elements_.length = 0;
|
this.elements_.length = 0;
|
||||||
this.priorities_.length = 0;
|
this.priorities_.length = 0;
|
||||||
goog.object.clear(this.queuedElements_);
|
ol.object.clear(this.queuedElements_);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ goog.provide('ol.webgl.Context');
|
|||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.log');
|
goog.require('goog.log');
|
||||||
goog.require('goog.object');
|
|
||||||
goog.require('ol');
|
goog.require('ol');
|
||||||
goog.require('ol.array');
|
goog.require('ol.array');
|
||||||
goog.require('ol.events');
|
goog.require('ol.events');
|
||||||
|
goog.require('ol.object');
|
||||||
goog.require('ol.webgl.Buffer');
|
goog.require('ol.webgl.Buffer');
|
||||||
goog.require('ol.webgl.WebGLContextEventType');
|
goog.require('ol.webgl.WebGLContextEventType');
|
||||||
|
|
||||||
@@ -282,9 +282,9 @@ ol.webgl.Context.prototype.getProgram = function(
|
|||||||
* FIXME empy description for jsdoc
|
* FIXME empy description for jsdoc
|
||||||
*/
|
*/
|
||||||
ol.webgl.Context.prototype.handleWebGLContextLost = function() {
|
ol.webgl.Context.prototype.handleWebGLContextLost = function() {
|
||||||
goog.object.clear(this.bufferCache_);
|
ol.object.clear(this.bufferCache_);
|
||||||
goog.object.clear(this.shaderCache_);
|
ol.object.clear(this.shaderCache_);
|
||||||
goog.object.clear(this.programCache_);
|
ol.object.clear(this.programCache_);
|
||||||
this.currentProgram_ = null;
|
this.currentProgram_ = null;
|
||||||
this.hitDetectionFramebuffer_ = null;
|
this.hitDetectionFramebuffer_ = null;
|
||||||
this.hitDetectionTexture_ = null;
|
this.hitDetectionTexture_ = null;
|
||||||
|
|||||||
@@ -238,48 +238,7 @@ describe('ol.Object', function() {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
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.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');
|
goog.require('ol.Object');
|
||||||
goog.require('ol.ObjectEventType');
|
goog.require('ol.ObjectEventType');
|
||||||
goog.require('ol.events');
|
goog.require('ol.events');
|
||||||
goog.require('ol.object');
|
|
||||||
|
|||||||
57
test/spec/ol/objectutil.test.js
Normal file
57
test/spec/ol/objectutil.test.js
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
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.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');
|
||||||
Reference in New Issue
Block a user