Browse Source

Fixing assignment expressions

Sebastien Ros 12 years ago
parent
commit
7f5215235b
2 changed files with 7 additions and 5 deletions
  1. 1 0
      Jint.Tests.Ecma/Ecma/11.13.2.cs
  2. 6 5
      Jint/Runtime/ExpressionIntepreter.cs

+ 1 - 0
Jint.Tests.Ecma/Ecma/11.13.2.cs

@@ -2,6 +2,7 @@ using Xunit;
 
 namespace Jint.Tests.Ecma
 {
+    [Trait("Category", "Pass")]
     public class Test_11_13_2 : EcmaTest
     {
         [Fact]

+ 6 - 5
Jint/Runtime/ExpressionIntepreter.cs

@@ -46,13 +46,14 @@ namespace Jint.Runtime
 
             var lref = EvaluateExpression(assignmentExpression.Left) as Reference;
 
-            if (assignmentExpression.Operator == "=")
+            if (lref == null)
             {
-                if (lref == null)
-                {
-                    throw new JavaScriptException(_engine.ReferenceError);
-                }
+                throw new JavaScriptException(_engine.ReferenceError);
+            }
 
+            if (assignmentExpression.Operator == "=")
+            {
+ 
                 if(lref.IsStrict() && lref.GetBase() is EnvironmentRecord && (lref.GetReferencedName() == "eval" || lref.GetReferencedName() == "arguments"))
                 {
                     throw new JavaScriptException(_engine.SyntaxError);