diff --git a/lib/OpenLayers/Control/GetFeature.js b/lib/OpenLayers/Control/GetFeature.js index 2523100821..ee2896db13 100644 --- a/lib/OpenLayers/Control/GetFeature.js +++ b/lib/OpenLayers/Control/GetFeature.js @@ -478,7 +478,7 @@ OpenLayers.Control.GetFeature = OpenLayers.Class(OpenLayers.Control, { if(!this.modifiers.multiple && !this.modifiers.toggle) { this.unselectAll(); } - if(!(features instanceof Array)) { + if(!(OpenLayers.Util.isArray(features))) { features = [features]; } diff --git a/lib/OpenLayers/Control/ModifyFeature.js b/lib/OpenLayers/Control/ModifyFeature.js index 59298627f4..dbf2348271 100644 --- a/lib/OpenLayers/Control/ModifyFeature.js +++ b/lib/OpenLayers/Control/ModifyFeature.js @@ -215,7 +215,7 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, { this.deleteCodes = [46, 68]; this.mode = OpenLayers.Control.ModifyFeature.RESHAPE; OpenLayers.Control.prototype.initialize.apply(this, [options]); - if(!(this.deleteCodes instanceof Array)) { + if(!(OpenLayers.Util.isArray(this.deleteCodes))) { this.deleteCodes = [this.deleteCodes]; } var control = this; diff --git a/lib/OpenLayers/Control/Panel.js b/lib/OpenLayers/Control/Panel.js index b0955426c4..1129ef4e52 100644 --- a/lib/OpenLayers/Control/Panel.js +++ b/lib/OpenLayers/Control/Panel.js @@ -232,7 +232,7 @@ OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, { * controls - {} Controls to add in the panel. */ addControls: function(controls) { - if (!(controls instanceof Array)) { + if (!(OpenLayers.Util.isArray(controls))) { controls = [controls]; } this.controls = this.controls.concat(controls); diff --git a/lib/OpenLayers/Control/SelectFeature.js b/lib/OpenLayers/Control/SelectFeature.js index 570ad715d5..d9e58217e2 100644 --- a/lib/OpenLayers/Control/SelectFeature.js +++ b/lib/OpenLayers/Control/SelectFeature.js @@ -218,7 +218,7 @@ OpenLayers.Control.SelectFeature = OpenLayers.Class(OpenLayers.Control, { * layers - {}, or an array of vector layers. */ initLayer: function(layers) { - if(layers instanceof Array) { + if(OpenLayers.Util.isArray(layers)) { this.layers = layers; this.layer = new OpenLayers.Layer.Vector.RootContainer( this.id + "_container", { diff --git a/lib/OpenLayers/Control/WMSGetFeatureInfo.js b/lib/OpenLayers/Control/WMSGetFeatureInfo.js index 6d3775f1ae..f0a21883cd 100644 --- a/lib/OpenLayers/Control/WMSGetFeatureInfo.js +++ b/lib/OpenLayers/Control/WMSGetFeatureInfo.js @@ -300,7 +300,7 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, { layer = candidates[i]; if(layer instanceof OpenLayers.Layer.WMS && (!this.queryVisible || layer.getVisibility())) { - url = layer.url instanceof Array ? layer.url[0] : layer.url; + url = OpenLayers.Util.isArray(layer.url) ? layer.url[0] : layer.url; // if the control was not configured with a url, set it // to the first layer url if(this.drillDown === false && !this.url) { @@ -421,7 +421,7 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, { if (layer.params.STYLES) { styleNames = layer.params.STYLES; } else { - if (layer.params.LAYERS instanceof Array) { + if (OpenLayers.Util.isArray(layer.params.LAYERS)) { styleNames = new Array(layer.params.LAYERS.length); } else { // Assume it's a String styleNames = layer.params.LAYERS.replace(/[^,]/g, ""); @@ -469,7 +469,7 @@ OpenLayers.Control.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Control, { for(var i=0, len=layers.length; i 0) { + if (OpenLayers.Util.isArray(ResponseHandler) && ResponseHandler.length > 0) { // ResponseHandler must be a non-empty array for(var i=0, len=ResponseHandler.length; i 0) { + if (OpenLayers.Util.isArray(ElementName) && ElementName.length > 0) { // ElementName must be a non-empty array for(var i=0, len=ElementName.length; i)} */ write: function(features) { - if (!(features instanceof Array)) { + if (!(OpenLayers.Util.isArray(features))) { features = [features]; } diff --git a/lib/OpenLayers/Format/OWSContext/v0_3_1.js b/lib/OpenLayers/Format/OWSContext/v0_3_1.js index 35edba7de7..4f4948fbc4 100644 --- a/lib/OpenLayers/Format/OWSContext/v0_3_1.js +++ b/lib/OpenLayers/Format/OWSContext/v0_3_1.js @@ -178,7 +178,7 @@ OpenLayers.Format.OWSContext.v0_3_1 = OpenLayers.Class(OpenLayers.Format.XML, { */ decomposeNestingPath: function(nPath){ var a = []; - if (nPath instanceof Array) { + if (OpenLayers.Util.isArray(nPath)) { var path = nPath.slice(); while (path.length > 0) { a.push(path.slice()); diff --git a/lib/OpenLayers/Format/SLD/v1.js b/lib/OpenLayers/Format/SLD/v1.js index 562b12508b..8f9f39d903 100644 --- a/lib/OpenLayers/Format/SLD/v1.js +++ b/lib/OpenLayers/Format/SLD/v1.js @@ -147,7 +147,7 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, { for(var i=0, len=layer.userStyles.length; i)} An array of geometries to add */ addComponents: function(components){ - if(!(components instanceof Array)) { + if(!(OpenLayers.Util.isArray(components))) { components = [components]; } for(var i=0, len=components.length; i)} The components to be removed */ removeComponents: function(components) { - if(!(components instanceof Array)) { + if(!(OpenLayers.Util.isArray(components))) { components = [components]; } for(var i=components.length-1; i>=0; --i) { @@ -468,7 +468,7 @@ OpenLayers.Geometry.Collection = OpenLayers.Class(OpenLayers.Geometry, { if(!geometry || !geometry.CLASS_NAME || (this.CLASS_NAME != geometry.CLASS_NAME)) { equivalent = false; - } else if(!(geometry.components instanceof Array) || + } else if(!(OpenLayers.Util.isArray(geometry.components)) || (geometry.components.length != this.components.length)) { equivalent = false; } else { diff --git a/lib/OpenLayers/Layer/ArcGISCache.js b/lib/OpenLayers/Layer/ArcGISCache.js index 86f9567edb..377a3132c6 100644 --- a/lib/OpenLayers/Layer/ArcGISCache.js +++ b/lib/OpenLayers/Layer/ArcGISCache.js @@ -430,7 +430,7 @@ OpenLayers.Layer.ArcGISCache = OpenLayers.Class(OpenLayers.Layer.XYZ, { var url = this.url; var s = '' + x + y + z; - if (url instanceof Array) { + if (OpenLayers.Util.isArray(url)) { url = this.selectUrl(s, url); } diff --git a/lib/OpenLayers/Layer/HTTPRequest.js b/lib/OpenLayers/Layer/HTTPRequest.js index 46fe94bf62..3b7a154fcd 100644 --- a/lib/OpenLayers/Layer/HTTPRequest.js +++ b/lib/OpenLayers/Layer/HTTPRequest.js @@ -209,7 +209,7 @@ OpenLayers.Layer.HTTPRequest = OpenLayers.Class(OpenLayers.Layer, { // in which case we will deterministically select one of them in // order to evenly distribute requests to different urls. // - if (url instanceof Array) { + if (OpenLayers.Util.isArray(url)) { url = this.selectUrl(paramsString, url); } diff --git a/lib/OpenLayers/Layer/KaMapCache.js b/lib/OpenLayers/Layer/KaMapCache.js index 9a33d316f1..4cf8e7efa4 100644 --- a/lib/OpenLayers/Layer/KaMapCache.js +++ b/lib/OpenLayers/Layer/KaMapCache.js @@ -117,7 +117,7 @@ OpenLayers.Layer.KaMapCache = OpenLayers.Class(OpenLayers.Layer.KaMap, { // order to evenly distribute requests to different urls. // var url = this.url; - if (url instanceof Array) { + if (OpenLayers.Util.isArray(url)) { url = this.selectUrl(paramsString, url); } diff --git a/lib/OpenLayers/Layer/MapServer.js b/lib/OpenLayers/Layer/MapServer.js index 352c9b9755..e08aa74913 100644 --- a/lib/OpenLayers/Layer/MapServer.js +++ b/lib/OpenLayers/Layer/MapServer.js @@ -136,7 +136,7 @@ OpenLayers.Layer.MapServer = OpenLayers.Class(OpenLayers.Layer.Grid, { // if url is not a string, it should be an array of strings, // in which case we will deterministically select one of them in // order to evenly distribute requests to different urls. - if (url instanceof Array) { + if (OpenLayers.Util.isArray(url)) { url = this.selectUrl(paramsString, url); } diff --git a/lib/OpenLayers/Layer/TMS.js b/lib/OpenLayers/Layer/TMS.js index 7b990e5f0c..a596f5b957 100644 --- a/lib/OpenLayers/Layer/TMS.js +++ b/lib/OpenLayers/Layer/TMS.js @@ -129,7 +129,7 @@ OpenLayers.Layer.TMS = OpenLayers.Class(OpenLayers.Layer.Grid, { this.map.getZoom() + this.zoomOffset; var path = this.serviceVersion + "/" + this.layername + "/" + z + "/" + x + "/" + y + "." + this.type; var url = this.url; - if (url instanceof Array) { + if (OpenLayers.Util.isArray(url)) { url = this.selectUrl(path, url); } return url + path; diff --git a/lib/OpenLayers/Layer/TileCache.js b/lib/OpenLayers/Layer/TileCache.js index 90d432be0d..3510af5c5f 100644 --- a/lib/OpenLayers/Layer/TileCache.js +++ b/lib/OpenLayers/Layer/TileCache.js @@ -138,7 +138,7 @@ OpenLayers.Layer.TileCache = OpenLayers.Class(OpenLayers.Layer.Grid, { ]; var path = components.join('/'); var url = this.url; - if (url instanceof Array) { + if (OpenLayers.Util.isArray(url)) { url = this.selectUrl(path, url); } url = (url.charAt(url.length - 1) == '/') ? url : url + '/'; diff --git a/lib/OpenLayers/Layer/Vector.js b/lib/OpenLayers/Layer/Vector.js index 7a0cb51631..436ff68f66 100644 --- a/lib/OpenLayers/Layer/Vector.js +++ b/lib/OpenLayers/Layer/Vector.js @@ -554,7 +554,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, { * options - {Object} */ addFeatures: function(features, options) { - if (!(features instanceof Array)) { + if (!(OpenLayers.Util.isArray(features))) { features = [features]; } @@ -643,7 +643,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, { if (features === this.features) { return this.removeAllFeatures(options); } - if (!(features instanceof Array)) { + if (!(OpenLayers.Util.isArray(features))) { features = [features]; } if (features === this.selectedFeatures) { diff --git a/lib/OpenLayers/Layer/WMTS.js b/lib/OpenLayers/Layer/WMTS.js index 0c1c8c9cf8..0e6045bf59 100644 --- a/lib/OpenLayers/Layer/WMTS.js +++ b/lib/OpenLayers/Layer/WMTS.js @@ -408,7 +408,7 @@ OpenLayers.Layer.WMTS = OpenLayers.Class(OpenLayers.Layer.Grid, { path = path + this.matrixSet + "/" + this.matrix.identifier + "/" + info.row + "/" + info.col + "." + this.formatSuffix; - if (this.url instanceof Array) { + if (OpenLayers.Util.isArray(this.url)) { url = this.selectUrl(path, this.url); } else { url = this.url; diff --git a/lib/OpenLayers/Layer/XYZ.js b/lib/OpenLayers/Layer/XYZ.js index d0b6a34991..86520ab870 100644 --- a/lib/OpenLayers/Layer/XYZ.js +++ b/lib/OpenLayers/Layer/XYZ.js @@ -120,7 +120,7 @@ OpenLayers.Layer.XYZ = OpenLayers.Class(OpenLayers.Layer.Grid, { getURL: function (bounds) { var xyz = this.getXYZ(bounds); var url = this.url; - if (url instanceof Array) { + if (OpenLayers.Util.isArray(url)) { var s = '' + xyz.x + xyz.y + xyz.z; url = this.selectUrl(s, url); } diff --git a/lib/OpenLayers/Layer/Zoomify.js b/lib/OpenLayers/Layer/Zoomify.js index 5b2940500c..b6150a9fb1 100644 --- a/lib/OpenLayers/Layer/Zoomify.js +++ b/lib/OpenLayers/Layer/Zoomify.js @@ -211,7 +211,7 @@ OpenLayers.Layer.Zoomify = OpenLayers.Class(OpenLayers.Layer.Grid, { var path = "TileGroup" + Math.floor( (tileIndex) / 256 ) + "/" + z + "-" + x + "-" + y + ".jpg"; var url = this.url; - if (url instanceof Array) { + if (OpenLayers.Util.isArray(url)) { url = this.selectUrl(path, url); } return url + path; diff --git a/lib/OpenLayers/Protocol/SQL/Gears.js b/lib/OpenLayers/Protocol/SQL/Gears.js index b87f177f56..55cb72d43d 100644 --- a/lib/OpenLayers/Protocol/SQL/Gears.js +++ b/lib/OpenLayers/Protocol/SQL/Gears.js @@ -302,7 +302,7 @@ OpenLayers.Protocol.SQL.Gears = OpenLayers.Class(OpenLayers.Protocol.SQL, { * object. */ createOrUpdate: function(features) { - if (!(features instanceof Array)) { + if (!(OpenLayers.Util.isArray(features))) { features = [features]; } @@ -397,7 +397,7 @@ OpenLayers.Protocol.SQL.Gears = OpenLayers.Class(OpenLayers.Protocol.SQL, { * object. */ "delete": function(features, options) { - if (!(features instanceof Array)) { + if (!(OpenLayers.Util.isArray(features))) { features = [features]; } diff --git a/lib/OpenLayers/Protocol/WFS.js b/lib/OpenLayers/Protocol/WFS.js index c0b13e4ee9..fe1da18953 100644 --- a/lib/OpenLayers/Protocol/WFS.js +++ b/lib/OpenLayers/Protocol/WFS.js @@ -45,7 +45,7 @@ OpenLayers.Protocol.WFS = function(options) { OpenLayers.Protocol.WFS.fromWMSLayer = function(layer, options) { var typeName, featurePrefix; var param = layer.params["LAYERS"]; - var parts = (param instanceof Array ? param[0] : param).split(":"); + var parts = (OpenLayers.Util.isArray(param) ? param[0] : param).split(":"); if(parts.length > 1) { featurePrefix = parts[0]; } diff --git a/lib/OpenLayers/Renderer.js b/lib/OpenLayers/Renderer.js index 500e120b26..6a35b3f34c 100644 --- a/lib/OpenLayers/Renderer.js +++ b/lib/OpenLayers/Renderer.js @@ -267,7 +267,7 @@ OpenLayers.Renderer = OpenLayers.Class({ * features - {Array()} */ eraseFeatures: function(features) { - if(!(features instanceof Array)) { + if(!(OpenLayers.Util.isArray(features))) { features = [features]; } for(var i=0, len=features.length; i)} */ eraseFeatures: function(features) { - if(!(features instanceof Array)) { + if(!(OpenLayers.Util.isArray(features))) { features = [features]; } for(var i=0; i 1){ + if (urls && OpenLayers.Util.isArray(urls) && urls.length > 1){ var src = this.src.toString(); var current_url, k; for (k = 0; current_url = urls[k]; k++){ diff --git a/tests/Util.html b/tests/Util.html index 56b6c826de..7e83d27b25 100644 --- a/tests/Util.html +++ b/tests/Util.html @@ -41,6 +41,28 @@ "isElement reports that object returned by getElement is an Element"); } + function test_isArray(t) { + t.plan(5); + + var a; + + a = null; + t.eq(OpenLayers.Util.isArray(a), false, + "isArray reports 'null' isn't an Array"); + a = "Array"; + t.eq(OpenLayers.Util.isArray(a), false, + "isArray reports \"Array\" isn't an Array"); + a = {}; + t.eq(OpenLayers.Util.isArray(a), false, + "isArray reports {} isn't an Array"); + a = []; + t.eq(OpenLayers.Util.isArray(a), true, + "isArray reports [] is an Array"); + a = new Array(); + t.eq(OpenLayers.Util.isArray(a), true, + "isArray reports new Array() is an Array"); + } + function test_$(t) { t.plan(1); t.ok($ === custom$, "OpenLayers doesn't clobber existing definition of $.");