Reviewers: rossberg, titzer,

Description:
Visit AST Property nodes as expressions in AstExpressionVisitor.

Left out by mistake, correcting.

BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-ast-expression-visitor, test-typing-reset
[email protected],[email protected]
LOG=N

Please review this at https://codereview.chromium.org/1314843002/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+51, -26 lines):
  M src/ast-expression-visitor.cc
  M test/cctest/test-ast-expression-visitor.cc
  M test/cctest/test-typing-reset.cc


Index: src/ast-expression-visitor.cc
diff --git a/src/ast-expression-visitor.cc b/src/ast-expression-visitor.cc
index 08f29501940a33642bb82bce62c3cc39a4ee5c7f..3bf7db212a55b875fdfc19337cb43e684007b68f 100644
--- a/src/ast-expression-visitor.cc
+++ b/src/ast-expression-visitor.cc
@@ -244,8 +244,9 @@ void AstExpressionVisitor::VisitThrow(Throw* expr) {


 void AstExpressionVisitor::VisitProperty(Property* expr) {
-  RECURSE(Visit(expr->obj()));
-  RECURSE(Visit(expr->key()));
+  VisitExpression(expr);
+  RECURSE_EXPRESSION(Visit(expr->obj()));
+  RECURSE_EXPRESSION(Visit(expr->key()));
 }


Index: test/cctest/test-ast-expression-visitor.cc
diff --git a/test/cctest/test-ast-expression-visitor.cc b/test/cctest/test-ast-expression-visitor.cc index f2709639e3570c402b423ad6646171ff1d5b3d0d..05a97c8ed0e8f90d4b13a5b433f7f3aa4f493bcc 100644
--- a/test/cctest/test-ast-expression-visitor.cc
+++ b/test/cctest/test-ast-expression-visitor.cc
@@ -163,10 +163,12 @@ TEST(VisitExpressions) {
             CHECK_EXPR(BinaryOperation, DEFAULT_TYPE) {
               CHECK_EXPR(Call, DEFAULT_TYPE) {
                 CHECK_VAR(log, DEFAULT_TYPE);
-                CHECK_VAR(values, DEFAULT_TYPE);
-                CHECK_EXPR(BinaryOperation, DEFAULT_TYPE) {
-                  CHECK_VAR(p, DEFAULT_TYPE);
-                  CHECK_EXPR(Literal, DEFAULT_TYPE);
+                CHECK_EXPR(Property, DEFAULT_TYPE) {
+                  CHECK_VAR(values, DEFAULT_TYPE);
+                  CHECK_EXPR(BinaryOperation, DEFAULT_TYPE) {
+                    CHECK_VAR(p, DEFAULT_TYPE);
+                    CHECK_EXPR(Literal, DEFAULT_TYPE);
+                  }
                 }
               }
               CHECK_EXPR(Literal, DEFAULT_TYPE);
@@ -228,23 +230,33 @@ TEST(VisitExpressions) {
       // var exp = stdlib.Math.exp;
       CHECK_EXPR(Assignment, DEFAULT_TYPE) {
         CHECK_VAR(exp, DEFAULT_TYPE);
-        CHECK_VAR(stdlib, DEFAULT_TYPE);
-        CHECK_EXPR(Literal, DEFAULT_TYPE);
-        CHECK_EXPR(Literal, DEFAULT_TYPE);
+        CHECK_EXPR(Property, DEFAULT_TYPE) {
+          CHECK_EXPR(Property, DEFAULT_TYPE) {
+            CHECK_VAR(stdlib, DEFAULT_TYPE);
+            CHECK_EXPR(Literal, DEFAULT_TYPE);
+          }
+          CHECK_EXPR(Literal, DEFAULT_TYPE);
+        }
       }
       // var log = stdlib.Math.log;
       CHECK_EXPR(Assignment, DEFAULT_TYPE) {
         CHECK_VAR(log, DEFAULT_TYPE);
-        CHECK_VAR(stdlib, DEFAULT_TYPE);
-        CHECK_EXPR(Literal, DEFAULT_TYPE);
-        CHECK_EXPR(Literal, DEFAULT_TYPE);
+        CHECK_EXPR(Property, DEFAULT_TYPE) {
+          CHECK_EXPR(Property, DEFAULT_TYPE) {
+            CHECK_VAR(stdlib, DEFAULT_TYPE);
+            CHECK_EXPR(Literal, DEFAULT_TYPE);
+          }
+          CHECK_EXPR(Literal, DEFAULT_TYPE);
+        }
       }
       // var values = new stdlib.Float64Array(buffer);
       CHECK_EXPR(Assignment, DEFAULT_TYPE) {
         CHECK_VAR(values, DEFAULT_TYPE);
         CHECK_EXPR(CallNew, DEFAULT_TYPE) {
-          CHECK_VAR(stdlib, DEFAULT_TYPE);
-          CHECK_EXPR(Literal, DEFAULT_TYPE);
+          CHECK_EXPR(Property, DEFAULT_TYPE) {
+            CHECK_VAR(stdlib, DEFAULT_TYPE);
+            CHECK_EXPR(Literal, DEFAULT_TYPE);
+          }
           CHECK_VAR(buffer, DEFAULT_TYPE);
         }
       }
Index: test/cctest/test-typing-reset.cc
diff --git a/test/cctest/test-typing-reset.cc b/test/cctest/test-typing-reset.cc index f92e955d5002c2bdb331c6377121b77ab2d9f4cf..1dc701b55439f33897d8fde65efe70f76f150b82 100644
--- a/test/cctest/test-typing-reset.cc
+++ b/test/cctest/test-typing-reset.cc
@@ -112,10 +112,12 @@ void CheckAllSame(ZoneVector<ExpressionTypeEntry>& types,
             CHECK_EXPR(BinaryOperation, expected_type) {
               CHECK_EXPR(Call, expected_type) {
                 CHECK_VAR(log, expected_type);
-                CHECK_VAR(values, expected_type);
-                CHECK_EXPR(BinaryOperation, expected_type) {
-                  CHECK_VAR(p, expected_type);
-                  CHECK_EXPR(Literal, expected_type);
+                CHECK_EXPR(Property, expected_type) {
+                  CHECK_VAR(values, expected_type);
+                  CHECK_EXPR(BinaryOperation, expected_type) {
+                    CHECK_VAR(p, expected_type);
+                    CHECK_EXPR(Literal, expected_type);
+                  }
                 }
               }
               CHECK_EXPR(Literal, expected_type);
@@ -177,23 +179,33 @@ void CheckAllSame(ZoneVector<ExpressionTypeEntry>& types,
       // var exp = stdlib.Math.exp;
       CHECK_EXPR(Assignment, expected_type) {
         CHECK_VAR(exp, expected_type);
-        CHECK_VAR(stdlib, expected_type);
-        CHECK_EXPR(Literal, expected_type);
-        CHECK_EXPR(Literal, expected_type);
+        CHECK_EXPR(Property, expected_type) {
+          CHECK_EXPR(Property, expected_type) {
+            CHECK_VAR(stdlib, expected_type);
+            CHECK_EXPR(Literal, expected_type);
+          }
+          CHECK_EXPR(Literal, expected_type);
+        }
       }
       // var log = stdlib.Math.log;
       CHECK_EXPR(Assignment, expected_type) {
         CHECK_VAR(log, expected_type);
-        CHECK_VAR(stdlib, expected_type);
-        CHECK_EXPR(Literal, expected_type);
-        CHECK_EXPR(Literal, expected_type);
+        CHECK_EXPR(Property, expected_type) {
+          CHECK_EXPR(Property, expected_type) {
+            CHECK_VAR(stdlib, expected_type);
+            CHECK_EXPR(Literal, expected_type);
+          }
+          CHECK_EXPR(Literal, expected_type);
+        }
       }
       // var values = new stdlib.Float64Array(buffer);
       CHECK_EXPR(Assignment, expected_type) {
         CHECK_VAR(values, expected_type);
         CHECK_EXPR(CallNew, expected_type) {
-          CHECK_VAR(stdlib, expected_type);
-          CHECK_EXPR(Literal, expected_type);
+          CHECK_EXPR(Property, expected_type) {
+            CHECK_VAR(stdlib, expected_type);
+            CHECK_EXPR(Literal, expected_type);
+          }
           CHECK_VAR(buffer, expected_type);
         }
       }


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to