From 60a13d6517adb9a9eae4b2766e76954965f9f01c Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Mon, 7 Oct 2013 09:46:24 -0600 Subject: [PATCH 1/2] Always provide lib functions, conditionally provide scope --- src/ol/expr/expression.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/ol/expr/expression.js b/src/ol/expr/expression.js index baa9eacf22..3e8103885d 100644 --- a/src/ol/expr/expression.js +++ b/src/ol/expr/expression.js @@ -21,14 +21,11 @@ goog.require('ol.geom.GeometryType'); * @return {*} The result of the expression. */ ol.expr.evaluateFeature = function(expr, opt_feature) { - var result; + var scope; if (goog.isDef(opt_feature)) { - result = expr.evaluate( - opt_feature.getAttributes(), ol.expr.lib, opt_feature); - } else { - result = expr.evaluate(); + scope = opt_feature.getAttributes(); } - return result; + return expr.evaluate(scope, ol.expr.lib, opt_feature); }; From 0296ee846ad13c5976eb8a555936f68887029ce6 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Mon, 7 Oct 2013 09:47:41 -0600 Subject: [PATCH 2/2] Avoiding unhandled errors These tests were generating errors that were not caught because they were outside the `it` functions. --- test/spec/ol/expr/expression.test.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/test/spec/ol/expr/expression.test.js b/test/spec/ol/expr/expression.test.js index 2816365667..4f0f0942db 100644 --- a/test/spec/ol/expr/expression.test.js +++ b/test/spec/ol/expr/expression.test.js @@ -675,17 +675,20 @@ describe('ol.expr.lib', function() { }); describe('counter()', function() { - var counter = parse('counter()'); - var counterWithStart = parse('counter(1000)'); - var start = evaluate(counter); it('increases the counter with every call', function() { + var counter = parse('counter()'); + var start = evaluate(counter); expect(evaluate(counter)).to.be(start + 1); expect(evaluate(counter)).to.be(start + 2); }); it('increases the counter, starting with a custom value', function() { - expect(evaluate(counterWithStart)).to.be(start + 3 + 1000); + var counterWithStart = parse('counter(1000)'); + var start = evaluate(counterWithStart); + expect(start > 1000).to.be(true); + expect(evaluate(counterWithStart)).to.be(start + 1); + expect(evaluate(counterWithStart)).to.be(start + 2); }); });