Index: src/property.h |
diff --git a/src/property.h b/src/property.h |
index 9e3b2a09a7d26b352be1318d85a4724426f14f9a..4ddcab00e497d20a55cb24df867b5f249ab626db 100644 |
--- a/src/property.h |
+++ b/src/property.h |
@@ -7,7 +7,6 @@ |
#include "isolate.h" |
#include "factory.h" |
-#include "types.h" |
namespace v8 { |
namespace internal { |
@@ -75,15 +74,8 @@ class FieldDescriptor V8_FINAL : public Descriptor { |
int field_index, |
PropertyAttributes attributes, |
Representation representation) |
- : Descriptor(key, HeapType::Any(key->GetIsolate()), attributes, |
+ : Descriptor(key, handle(Smi::FromInt(0), key->GetIsolate()), attributes, |
FIELD, representation, field_index) {} |
- FieldDescriptor(Handle<Name> key, |
- int field_index, |
- Handle<HeapType> field_type, |
- PropertyAttributes attributes, |
- Representation representation) |
- : Descriptor(key, field_type, attributes, FIELD, |
- representation, field_index) { } |
}; |
@@ -185,26 +177,9 @@ class LookupResult V8_FINAL BASE_EMBEDDED { |
number_ = number; |
} |
- bool CanHoldValue(Handle<Object> value) const { |
- switch (type()) { |
- case NORMAL: |
- return true; |
- case FIELD: |
- return value->FitsRepresentation(representation()) && |
- GetFieldType()->NowContains(value); |
- case CONSTANT: |
- ASSERT(GetConstant() != *value || |
- value->FitsRepresentation(representation())); |
- return GetConstant() == *value; |
- case CALLBACKS: |
- case HANDLER: |
- case INTERCEPTOR: |
- return true; |
- case NONEXISTENT: |
- UNREACHABLE(); |
- } |
- UNREACHABLE(); |
- return true; |
+ bool CanHoldValue(Handle<Object> value) { |
+ if (IsNormal()) return true; |
+ return value->FitsRepresentation(details_.representation()); |
} |
void TransitionResult(JSObject* holder, Map* target) { |
@@ -483,32 +458,6 @@ class LookupResult V8_FINAL BASE_EMBEDDED { |
return map->instance_descriptors()->GetFieldIndex(number_); |
} |
- HeapType* GetFieldType() const { |
- ASSERT(type() == FIELD); |
- if (lookup_type_ == DESCRIPTOR_TYPE) { |
- return GetFieldTypeFromMap(holder()->map()); |
- } |
- ASSERT(lookup_type_ == TRANSITION_TYPE); |
- return GetFieldTypeFromMap(transition_); |
- } |
- |
- HeapType* GetFieldTypeFromMap(Map* map) const { |
- ASSERT(lookup_type_ == DESCRIPTOR_TYPE || |
- lookup_type_ == TRANSITION_TYPE); |
- ASSERT(number_ < map->NumberOfOwnDescriptors()); |
- return map->instance_descriptors()->GetFieldType(number_); |
- } |
- |
- Map* GetFieldOwner() const { |
- return GetFieldOwnerFromMap(holder()->map()); |
- } |
- |
- Map* GetFieldOwnerFromMap(Map* map) const { |
- ASSERT(lookup_type_ == DESCRIPTOR_TYPE); |
- ASSERT(number_ < map->NumberOfOwnDescriptors()); |
- return map->FindFieldOwner(number_); |
- } |
- |
void Iterate(ObjectVisitor* visitor); |
private: |