<p>In app/assets/javascripts/map.js.erb:</p>
<pre style='color:#555'>> @@ -1,265 +1,204 @@
> -var epsg4326 = new OpenLayers.Projection("EPSG:4326");
> +// Leaflet extensions
> +L.LatLngBounds.include({
</pre>
<p>jQuery is comparable, because this "documented extension point" is <a href="https://github.com/jquery/jquery/blob/master/src/core.js#L84">just a shortcut</a> to <code>jQuery.prototype</code>, extending which adds methods to instances of jQuery class (with an infinite potential for conflicts).</p>

<p>Sure, these things could be rewritten as functions to prevent possible collisions in future, but this also removes some convenience and readability of code, so one should compromise. Given the nature of introduced methods, I doubt they could ever cause any conflicts.</p>

<p>Once again, I can see how rude it might look in a static language environment, but this approach is very common for dynamic languages.</p>

            <p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">
              —<br>
              Reply to this email directly or <a href='https://github.com/openstreetmap/openstreetmap-website/pull/121/files#r2028915'>view it on GitHub</a>.
            </p>
            <img src='https://github.com/notifications/beacon/Jshd8sI44GVrKZBvymxqKMaI74MGmprT8Jg3uq9qI3wC23ieooSLsLyn1o3pzYqH.gif' height='1' width='1'>