diff --git a/lib/OpenLayers/Format/KML.js b/lib/OpenLayers/Format/KML.js index 09d9cb22c5..22a778fd60 100644 --- a/lib/OpenLayers/Format/KML.js +++ b/lib/OpenLayers/Format/KML.js @@ -550,9 +550,9 @@ OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, { if (inlineStyleNode) { var inlineStyle= this.parseStyle(inlineStyleNode); if (inlineStyle) { - feature.style = OpenLayers.Util.extend({}, - feature.style); - OpenLayers.Util.extend(feature.style, inlineStyle); + feature.style = OpenLayers.Util.extend( + feature.style, inlineStyle + ); } } diff --git a/lib/OpenLayers/Layer/KaMap.js b/lib/OpenLayers/Layer/KaMap.js index f921b533fc..ff10292d40 100644 --- a/lib/OpenLayers/Layer/KaMap.js +++ b/lib/OpenLayers/Layer/KaMap.js @@ -64,13 +64,9 @@ OpenLayers.Layer.KaMap = OpenLayers.Class(OpenLayers.Layer.Grid, { var newArguments = []; newArguments.push(name, url, params, options); OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments); - this.params = (params ? params : {}); - if (params) { - OpenLayers.Util.applyDefaults( - this.params, - this.DEFAULT_PARAMS - ); - } + this.params = OpenLayers.Util.applyDefaults( + this.params, this.DEFAULT_PARAMS + ); }, /** diff --git a/lib/OpenLayers/Layer/MapServer.js b/lib/OpenLayers/Layer/MapServer.js index 80a19c2e13..f80a69e4ba 100644 --- a/lib/OpenLayers/Layer/MapServer.js +++ b/lib/OpenLayers/Layer/MapServer.js @@ -42,12 +42,9 @@ OpenLayers.Layer.MapServer = OpenLayers.Class(OpenLayers.Layer.Grid, { newArguments.push(name, url, params, options); OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments); - if (arguments.length > 0) { - OpenLayers.Util.applyDefaults( - this.params, - this.DEFAULT_PARAMS - ); - } + this.params = OpenLayers.Util.applyDefaults( + this.params, this.DEFAULT_PARAMS + ); // unless explicitly set in options, if the layer is transparent, // it will be an overlay diff --git a/lib/OpenLayers/Layer/WFS.js b/lib/OpenLayers/Layer/WFS.js index 6860d38aca..79a316a4f5 100644 --- a/lib/OpenLayers/Layer/WFS.js +++ b/lib/OpenLayers/Layer/WFS.js @@ -138,11 +138,10 @@ OpenLayers.Layer.WFS = OpenLayers.Class( this.options.geometry_column = "the_geom"; } - this.params = params; - OpenLayers.Util.applyDefaults( - this.params, - OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS) - ); + this.params = OpenLayers.Util.applyDefaults( + params, + OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS) + ); this.url = url; }, diff --git a/lib/OpenLayers/Layer/WorldWind.js b/lib/OpenLayers/Layer/WorldWind.js index 412d5e72d6..2a6ab487c6 100644 --- a/lib/OpenLayers/Layer/WorldWind.js +++ b/lib/OpenLayers/Layer/WorldWind.js @@ -54,13 +54,9 @@ OpenLayers.Layer.WorldWind = OpenLayers.Class(OpenLayers.Layer.Grid, { var newArguments = []; newArguments.push(name, url, params, options); OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments); - this.params = (params ? params : {}); - if (params) { - OpenLayers.Util.applyDefaults( - this.params, - this.DEFAULT_PARAMS - ); - } + this.params = OpenLayers.Util.applyDefaults( + this.params, this.DEFAULT_PARAMS + ); }, /** * Method: addTile diff --git a/lib/OpenLayers/Map.js b/lib/OpenLayers/Map.js index 566e75c4d1..9fe62a421e 100644 --- a/lib/OpenLayers/Map.js +++ b/lib/OpenLayers/Map.js @@ -1335,11 +1335,7 @@ OpenLayers.Map = OpenLayers.Class({ * false. */ pan: function(dx, dy, options) { - // this should be pushed to applyDefaults and extend - if (!options) { - options = {}; - } - OpenLayers.Util.applyDefaults(options, { + options = OpenLayers.Util.applyDefaults(options, { animate: true, dragging: false }); diff --git a/lib/OpenLayers/Util.js b/lib/OpenLayers/Util.js index 83343c9012..e70254357b 100644 --- a/lib/OpenLayers/Util.js +++ b/lib/OpenLayers/Util.js @@ -49,7 +49,8 @@ if ($ == null) { * {Object} The destination object. */ OpenLayers.Util.extend = function(destination, source) { - if(destination && source) { + destination = destination || {}; + if(source) { for(var property in source) { var value = source[property]; if(value !== undefined) { @@ -522,7 +523,7 @@ OpenLayers.Util.upperCaseObject = function (object) { * in place and returned by this function. */ OpenLayers.Util.applyDefaults = function (to, from) { - + to = to || {}; /* * FF/Windows < 2.0.0.13 reports "Illegal operation on WrappedNative * prototype object" when calling hawOwnProperty if the source object is an diff --git a/tests/Util.html b/tests/Util.html index 1dabbf73bb..1f943369e4 100644 --- a/tests/Util.html +++ b/tests/Util.html @@ -169,7 +169,7 @@ function test_Util_applyDefaults(t) { - t.plan(10); + t.plan(11); var to = { 'a': "abra", @@ -198,6 +198,12 @@ t.eq( ret["c"], "press", "key present in from and not ret successfully copied to ret"); t.eq(to.toString(), "works", "correctly applies custom toString"); t.eq(to.n, null, "correctly preserves null"); + + var to; + var from = {rand: Math.random()}; + + var ret = OpenLayers.Util.applyDefaults(to, from); + t.eq(ret.rand, from.rand, "works with undefined to"); } function test_Util_getParameterString(t) { @@ -709,7 +715,7 @@ } function tests_Util_extend(t) { - t.plan(6); + t.plan(7); var source = { num: Math.random(), @@ -736,6 +742,12 @@ t.eq(destination.nada, "untouched", "undefined source properties don't clobber existing properties"); t.eq(window.property, undefined, "Property variable not clobbered."); + + var destination; + var source = {rand: Math.random()}; + var ret = OpenLayers.Util.extend(destination, source); + t.eq(destination.rand, source.rand, "works with undefined destination"); + } function test_XX_Util_Try(t) {