Browse Source

Fixing unary expression parsing

Sebastien Ros 11 years ago
parent
commit
868f67421c
1 changed files with 14 additions and 2 deletions
  1. 14 2
      Jint/Parser/JavascriptParser.cs

+ 14 - 2
Jint/Parser/JavascriptParser.cs

@@ -1744,15 +1744,27 @@ namespace Jint.Parser
 
 
         public UnaryExpression CreateUnaryExpression(string op, Expression argument)
         public UnaryExpression CreateUnaryExpression(string op, Expression argument)
         {
         {
-            return new UpdateExpression
+            if (op == "++" || op == "--")
+            {
+                return new UpdateExpression
                 {
                 {
                     Type = SyntaxNodes.UpdateExpression,
                     Type = SyntaxNodes.UpdateExpression,
                     Operator = UnaryExpression.ParseUnaryOperator(op),
                     Operator = UnaryExpression.ParseUnaryOperator(op),
                     Argument = argument,
                     Argument = argument,
-                    Prefix = (op == "++" || op == "--")
+                    Prefix = true
                 };
                 };
+            }
+
+            return new UnaryExpression
+            {
+                Type = SyntaxNodes.UnaryExpression,
+                Operator = UnaryExpression.ParseUnaryOperator(op),
+                Argument = argument,
+                Prefix = true
+            };
         }
         }
 
 
+
         public VariableDeclaration CreateVariableDeclaration(IEnumerable<VariableDeclarator> declarations, string kind)
         public VariableDeclaration CreateVariableDeclaration(IEnumerable<VariableDeclarator> declarations, string kind)
         {
         {
             var variableDeclaration = new VariableDeclaration
             var variableDeclaration = new VariableDeclaration