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.