Browse Source

Fixing Error names

Sebastien Ros 11 years ago
parent
commit
059c7dbdc2
3 changed files with 8 additions and 4 deletions
  1. 1 0
      Jint/Engine.cs
  2. 4 1
      Jint/Native/Error/ErrorConstructor.cs
  3. 3 3
      Jint/Native/Error/ErrorPrototype.cs

+ 1 - 0
Jint/Engine.cs

@@ -94,6 +94,7 @@ namespace Jint
             Json.Configure();
 
             Error.Configure();
+            Error.PrototypeObject.Configure();
 
             // create the global environment http://www.ecma-international.org/ecma-262/5.1/#sec-10.2.3
             GlobalEnvironment = LexicalEnvironment.NewObjectEnvironment(this, Global, null, false);

+ 4 - 1
Jint/Native/Error/ErrorConstructor.cs

@@ -6,6 +6,8 @@ namespace Jint.Native.Error
 {
     public class ErrorConstructor : FunctionInstance, IConstructor
     {
+        private string _name;
+
         public ErrorConstructor(Engine engine) : base(engine, null, null, false)
         {
         }
@@ -14,6 +16,7 @@ namespace Jint.Native.Error
         {
             var obj = new ErrorConstructor(engine);
             obj.Extensible = true;
+            obj._name = name;
 
             // The value of the [[Prototype]] internal property of the Error constructor is the Function prototype object (15.11.3)
             obj.Prototype = engine.Function.PrototypeObject;
@@ -39,7 +42,7 @@ namespace Jint.Native.Error
 
         public ObjectInstance Construct(object[] arguments)
         {
-            var instance = new ErrorInstance(Engine, null);
+            var instance = new ErrorInstance(Engine, _name);
             instance.Prototype = PrototypeObject;
             instance.Extensible = true;
 

+ 3 - 3
Jint/Native/Error/ErrorPrototype.cs

@@ -9,14 +9,14 @@ namespace Jint.Native.Error
     /// </summary>
     public sealed class ErrorPrototype : ErrorInstance
     {
-        private ErrorPrototype(Engine engine)
-            : base(engine, "Error")
+        private ErrorPrototype(Engine engine, string name)
+            : base(engine, name)
         {
         }
 
         public static ErrorPrototype CreatePrototypeObject(Engine engine, ErrorConstructor errorConstructor, string name)
         {
-            var obj = new ErrorPrototype(engine) { Extensible = true };
+            var obj = new ErrorPrototype(engine, name) { Extensible = true };
             obj.FastAddProperty("constructor", errorConstructor, false, false, false);
 
             if (name != "Error")