diff --git a/bin/check-example.js b/bin/check-example.js new file mode 100644 index 0000000000..7995118519 --- /dev/null +++ b/bin/check-example.js @@ -0,0 +1,30 @@ +// +// A PhantomJS script used to check that the hosted examples load +// without errors. This script is executed by the build tool's +// check-examples target. +// +var args = require('system').args; +if (args.length != 2) { + phantom.exit(2); +} +var examplePath = args[1]; +var page = require('webpage').create(); +page.onError = function(msg, trace) { + var msgStack = ['JavaScript ERROR: ' + msg]; + if (trace) { + msgStack.push('TRACE:'); + trace.forEach(function(t) { + msgStack.push(' -> ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function + '")' : '')); + }); + } + console.error(msgStack.join('\n')); + phantom.exit(1); +}; +page.open(examplePath, function(s) { + var exitCode = 0; + if (s != 'success') { + exitCode = 1; + console.error('PAGE LOAD ERROR'); + } + phantom.exit(exitCode); +}); diff --git a/build.py b/build.py index 4fb0b399f5..f584c4c97a 100755 --- a/build.py +++ b/build.py @@ -95,7 +95,7 @@ def report_sizes(t): virtual('all', 'build-all', 'build', 'examples', 'precommit') -virtual('precommit', 'lint', 'build-all', 'test', 'build', 'build-examples', 'doc') +virtual('precommit', 'lint', 'build-all', 'test', 'build', 'build-examples', 'check-examples', 'doc') virtual('build', 'build/ol.css', 'build/ol.js', 'build/ol-simple.js', 'build/ol-whitespace.js') @@ -378,6 +378,17 @@ def hostexamples(t): t.cp('examples/example-list.js', 'examples/example-list.xml', 'examples/Jugl.js', 'build/gh-pages/%(BRANCH)s/examples/') +@target('check-examples', 'hostexamples', phony=True) +def check_examples(t): + directory = 'build/gh-pages/%(BRANCH)s/' + examples = ['build/gh-pages/%(BRANCH)s/' + e for e in EXAMPLES] + all_examples = examples + \ + [e + '?mode=simple' for e in examples] + \ + [e + '?mode=whitespace' for e in examples] + for example in all_examples: + t.run('%(PHANTOMJS)s', 'bin/check-example.js', example) + + @target(PROJ4JS, PROJ4JS_ZIP) def proj4js(t): from zipfile import ZipFile diff --git a/build/ol-simple.json b/build/ol-simple.json index 27a982ee23..63fd1b7108 100644 --- a/build/ol-simple.json +++ b/build/ol-simple.json @@ -1,5 +1,15 @@ { + // If ambiguate-properties and disambiguate-properties are set to true + // we get function names like "ol_control_Control_prototype$setMap" in + // the compiled code when using the SIMPLE compilation. It looks like + // "ambiguate-properties" and "disambiguate-properties" are only + // appropriate for ADVANCED compilation. + + "ambiguate-properties": false, + + "disambiguate-properties": false, + "id": "ol-simple", "externs": [ diff --git a/build/ol-whitespace.json b/build/ol-whitespace.json index 83294ee47c..95fd632611 100644 --- a/build/ol-whitespace.json +++ b/build/ol-whitespace.json @@ -2,6 +2,17 @@ "id": "ol-whitespace", + // If ambiguate-properties and disambiguate-properties are set to true + // we get function names like "ol_control_Control_prototype$setMap" in + // the compiled code when using the SIMPLE compilation. It looks like + // "ambiguate-properties" and "disambiguate-properties" are only + // appropriate for ADVANCED compilation. To be sure we also don't + // set them for WHITESPACE. + + "ambiguate-properties": false, + + "disambiguate-properties": false, + "externs": [ "externs/bingmaps.js", "externs/proj4js.js", diff --git a/examples/epsg-4326.js b/examples/epsg-4326.js index 27fc69913b..9acf4517f8 100644 --- a/examples/epsg-4326.js +++ b/examples/epsg-4326.js @@ -1,6 +1,3 @@ -goog.require('goog.debug.Console'); -goog.require('goog.debug.Logger'); -goog.require('goog.debug.Logger.Level'); goog.require('ol.Collection'); goog.require('ol.Coordinate'); goog.require('ol.Map'); @@ -11,11 +8,6 @@ goog.require('ol.projection'); goog.require('ol.source.TiledWMS'); -if (goog.DEBUG) { - goog.debug.Console.autoInstall(); - goog.debug.Logger.getLogger('ol').setLevel(goog.debug.Logger.Level.INFO); -} - var epsg4326 = ol.projection.getFromCode('EPSG:4326'); // We give the single image source a set of resolutions. This prevents the diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index d3cceb36d1..dfd69e5464 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -119,7 +119,9 @@ ol.renderer.Map.prototype.calculateMatrices2D = function(frameState) { * @protected * @return {ol.renderer.Layer} layerRenderer Layer renderer. */ -ol.renderer.Map.prototype.createLayerRenderer = goog.functions.NULL; +ol.renderer.Map.prototype.createLayerRenderer = function(layer) { + return new ol.renderer.Layer(this, layer); +}; /**