@@ -32,7 +32,7 @@ namespace Jint.Repl
catch (JavaScriptException je)
{
Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("Error => {0}", engine.Json.Stringify(engine.Json, Arguments.From(je.Error, Undefined.Instance, " ")));
+ Console.WriteLine(je.ToString());
}
@@ -367,7 +367,7 @@ namespace Jint
if (reference.IsUnresolvableReference())
- throw new JavaScriptException(ReferenceError);
+ throw new JavaScriptException(ReferenceError, reference.GetReferencedName() + " is not defined");
var baseValue = reference.GetBase();
@@ -1,4 +1,5 @@
using Jint.Native.Object;
+using Jint.Runtime;
namespace Jint.Native.Error
@@ -18,5 +19,10 @@ namespace Jint.Native.Error
return "Error";
+
+ public override string ToString()
+ {
+ return Engine.Error.PrototypeObject.ToString(this, Arguments.Empty).ToObject().ToString();
+ }
@@ -33,7 +33,7 @@ namespace Jint.Native.Error
FastAddProperty("toString", new ClrFunctionInstance(Engine, ToString), true, false, true);
- private JsValue ToString(JsValue thisObject, JsValue[] arguments)
+ public JsValue ToString(JsValue thisObject, JsValue[] arguments)
var o = thisObject.TryCast<ObjectInstance>();
if (o == null)
@@ -352,6 +352,29 @@ namespace Jint.Native
+ switch (Type)
+ case Types.None:
+ return "None";
+ case Types.Undefined:
+ return "undefined";
+ case Types.Null:
+ return "null";
+ case Types.Boolean:
+ return _bool.ToString();
+ case Types.String:
+ return _string;
+ case Types.Number:
+ return _double.ToString();
+ case Types.Object:
+ return _object.ToString();
+ default:
+ return string.Empty;
public static bool operator ==(JsValue a, JsValue b)
return a.Equals(b);
@@ -23,7 +23,6 @@ namespace Jint.Runtime
: base(GetErrorMessage(error))
_errorObject = error;
-
private static string GetErrorMessage(JsValue error)
@@ -39,5 +38,10 @@ namespace Jint.Runtime
public JsValue Error { get { return _errorObject; } }
+ return _errorObject.ToString();