Chromium Code Reviews| Index: src/types.cc |
| diff --git a/src/types.cc b/src/types.cc |
| index b8febc2a149ad4e7e488a8cfc4e6a59f6c896da6..3044d31a7bc4922855f4cac3f0a82ef7aaa933df 100644 |
| --- a/src/types.cc |
| +++ b/src/types.cc |
| @@ -131,6 +131,7 @@ int Type::LubBitset() { |
| if (value->IsUndefined()) return kUndefined; |
| if (value->IsNull()) return kNull; |
| if (value->IsTrue() || value->IsFalse()) return kBoolean; |
| + if (value->IsTheHole() || value->IsFalse()) return kAny; |
|
rossberg
2013/06/27 14:42:11
The False part shouldn't be there.
danno
2013/06/27 14:44:23
Done.
|
| } |
| } |
| switch (map->instance_type()) { |
| @@ -200,6 +201,10 @@ int Type::LubBitset() { |
| // We ought to find a cleaner solution for compiling stubs parameterised |
| // over type or class variables, esp ones with bounds... |
| return kDetectable; |
| + case DECLARED_ACCESSOR_INFO_TYPE: |
| + case EXECUTABLE_ACCESSOR_INFO_TYPE: |
| + case ACCESSOR_PAIR_TYPE: |
| + return kInternal; |
| default: |
| UNREACHABLE(); |
| return kNone; |
| @@ -222,7 +227,7 @@ int Type::GlbBitset() { |
| // Check this <= that. |
| -bool Type::Is(Type* that) { |
| +bool Type::IsSlowCase(Type* that) { |
| // Fast path for bitsets. |
| if (that->is_bitset()) { |
| return (this->LubBitset() | that->as_bitset()) == that->as_bitset(); |