Index: src/typing.cc |
diff --git a/src/typing.cc b/src/typing.cc |
index 7762624b0739c542f4fc64da1ce46af1b388d8a8..2bcca833009bf9cfea74789975f555353355c4d5 100644 |
--- a/src/typing.cc |
+++ b/src/typing.cc |
@@ -400,12 +400,26 @@ void AstTyper::VisitObjectLiteral(ObjectLiteral* expr) { |
ObjectLiteral::Property* prop = properties->at(i); |
// Collect type feedback. |
- if ((prop->kind() == ObjectLiteral::Property::MATERIALIZED_LITERAL && |
- !CompileTimeValue::IsCompileTimeValue(prop->value())) || |
- prop->kind() == ObjectLiteral::Property::COMPUTED) { |
- if (prop->key()->value()->IsInternalizedString() && prop->emit_store()) { |
- prop->RecordTypeFeedback(oracle()); |
- } |
+ switch (prop->kind()) { |
+ case ObjectLiteral::Property::MATERIALIZED_LITERAL: |
+ if (CompileTimeValue::IsCompileTimeValue(prop->value())) break; |
+ // Fall through. |
+ case ObjectLiteral::Property::COMPUTED: |
+ if (prop->key()->AsLiteral()->value()->IsInternalizedString() && |
+ prop->emit_store()) { |
+ prop->RecordTypeFeedback(oracle()); |
+ } |
+ break; |
+ |
+ case ObjectLiteral::Property::COMPUTED_NAME: |
+ RECURSE(Visit(prop->key())); |
+ break; |
+ |
+ case ObjectLiteral::Property::CONSTANT: |
+ case ObjectLiteral::Property::PROTOTYPE: |
+ case ObjectLiteral::Property::GETTER: |
+ case ObjectLiteral::Property::SETTER: |
+ break; |
} |
RECURSE(Visit(prop->value())); |