Index: src/property.h |
=================================================================== |
--- src/property.h (revision 9531) |
+++ src/property.h (working copy) |
@@ -115,11 +115,9 @@ |
class ElementsTransitionDescriptor: public Descriptor { |
public: |
ElementsTransitionDescriptor(String* key, |
- Map* map, |
- ElementsKind elements_kind) |
- : Descriptor(key, map, PropertyDetails(NONE, |
- ELEMENTS_TRANSITION, |
- elements_kind)) { } |
+ Object* map_or_array) |
+ : Descriptor(key, map_or_array, PropertyDetails(NONE, |
+ ELEMENTS_TRANSITION)) { } |
}; |
// Marks a field name in a map so that adding the field is guaranteed |
@@ -202,9 +200,9 @@ |
number_ = entry; |
} |
- void HandlerResult() { |
+ void HandlerResult(JSProxy* proxy) { |
lookup_type_ = HANDLER_TYPE; |
- holder_ = NULL; |
+ holder_ = proxy; |
details_ = PropertyDetails(NONE, HANDLER); |
cacheable_ = false; |
} |
@@ -221,9 +219,14 @@ |
JSObject* holder() { |
ASSERT(IsFound()); |
- return holder_; |
+ return JSObject::cast(holder_); |
} |
+ JSProxy* proxy() { |
+ ASSERT(IsFound()); |
+ return JSProxy::cast(holder_); |
+ } |
+ |
PropertyType type() { |
ASSERT(IsFound()); |
return details_.type(); |
@@ -354,7 +357,7 @@ |
CONSTANT_TYPE |
} lookup_type_; |
- JSObject* holder_; |
+ JSReceiver* holder_; |
int number_; |
bool cacheable_; |
PropertyDetails details_; |