Correct types

This commit is contained in:
Tim Schaub
2013-06-11 10:19:12 -06:00
parent 7a1e69e288
commit 737d669e4a
2 changed files with 10 additions and 5 deletions

View File

@@ -46,13 +46,14 @@ ol.expression.Expression.prototype.evaluate = goog.abstractMethod;
*
* @constructor
* @extends {ol.expression.Expression}
* @param {expr} expr An expression that resolves to a function.
* @param {ol.expression.Expression} expr An expression that resolves to a
* function.
* @param {Array.<ol.expression.Expression>} args Arguments.
*/
ol.expression.Call = function(expr, args) {
/**
* @type {expr}
* @type {ol.expression.Expression}
* @private
*/
this.expr_ = expr;
@@ -74,7 +75,7 @@ ol.expression.Call.prototype.evaluate = function(scope, opt_fns, opt_this) {
var fnScope = goog.isDefAndNotNull(opt_fns) ? opt_fns : scope;
var fn = this.expr_.evaluate(fnScope);
if (!fn || !goog.isFunction(fn)) {
throw new Error('No function in provided scope: ' + this.name_);
throw new Error('Expected function but found ' + fn);
}
var thisArg = goog.isDef(opt_this) ? opt_this : {};
@@ -458,7 +459,11 @@ goog.inherits(ol.expression.Member, ol.expression.Expression);
*/
ol.expression.Member.prototype.evaluate = function(scope, opt_fns, opt_this) {
var obj = this.expr_.evaluate(scope, opt_fns, opt_this);
return this.property_.evaluate(obj);
if (!goog.isObject(obj)) {
throw new Error('Expected member expression to evaluate to an object ' +
'but got ' + obj);
}
return this.property_.evaluate(/** @type {Object} */ (obj));
};

View File

@@ -154,7 +154,7 @@ ol.expression.Parser.prototype.createBinaryExpression_ = function(operator,
* @private
*/
ol.expression.Parser.prototype.createCallExpression_ = function(expr, args) {
return new ol.expressions.Call(expr, args);
return new ol.expression.Call(expr, args);
};