Browse Source

Merge pull request #13 from fredericaltorres/master

Defining message on TypeError when method is not found
Sébastien Ros 11 years ago
parent
commit
b7b3258c3b
1 changed files with 5 additions and 4 deletions
  1. 5 4
      Jint/Runtime/ExpressionIntepreter.cs

+ 5 - 4
Jint/Runtime/ExpressionIntepreter.cs

@@ -795,14 +795,16 @@ namespace Jint.Runtime
 
             var func = _engine.GetValue(callee);
 
+            var r = callee as Reference;
+
             if (func == Undefined.Instance)
             {
-                throw new JavaScriptException(_engine.TypeError);
+                throw new JavaScriptException(_engine.TypeError, r == null ? "" : string.Format("Object has no method '{0}'", (callee as Reference).GetReferencedName()));
             }
 
             if (!func.IsObject())
             {
-                throw new JavaScriptException(_engine.TypeError);
+                throw new JavaScriptException(_engine.TypeError, r == null ? "" : string.Format("Property '{0}' of object is not a function", (callee as Reference).GetReferencedName()));
             }
 
             var callable = func.TryCast<ICallable>();
@@ -810,8 +812,7 @@ namespace Jint.Runtime
             {
                 throw new JavaScriptException(_engine.TypeError);
             }
-
-            var r = callee as Reference;
+            
             if (r != null)
             {
                 if (r.IsPropertyReference())