public object Evaluate(IContext context) { var value = this.expression.Evaluate(context); if (value == null) return "null"; if (value is Undefined) return "undefined"; if (value is string) return "string"; if (Predicates.IsNumber(value)) return "number"; if (value is IFunction) return "function"; return "object"; }
public void EvaluateUndefined() { TypeOfExpression expr = new TypeOfExpression(new VariableExpression("foo")); var result = expr.Evaluate(new Context()); Assert.IsNotNull(result); Assert.AreEqual("undefined", result); }