Index: src/elements.h |
diff --git a/src/elements.h b/src/elements.h |
index e743849ff7085ca641edaaaa65571c9c90f91101..334047cd3724f569e3b48d65dc97fc3b6b89cd3c 100644 |
--- a/src/elements.h |
+++ b/src/elements.h |
@@ -182,9 +182,12 @@ class ElementsAccessor { |
protected: |
friend class SloppyArgumentsElementsAccessor; |
+ friend class LookupIterator; |
- virtual uint32_t GetCapacity(Handle<JSObject> holder, |
- Handle<FixedArrayBase> backing_store) = 0; |
+ static ElementsAccessor* ForArray(FixedArrayBase* array); |
+ |
+ virtual uint32_t GetCapacity(JSObject* holder, |
+ FixedArrayBase* backing_store) = 0; |
// Element handlers distinguish between indexes and keys when they manipulate |
// elements. Indexes refer to elements in terms of their location in the |
@@ -194,8 +197,12 @@ class ElementsAccessor { |
// keys are equivalent to indexes, and GetKeyForIndex returns the same value |
// it is passed. In the NumberDictionary ElementsAccessor, GetKeyForIndex maps |
// the index to a key using the KeyAt method on the NumberDictionary. |
- virtual uint32_t GetKeyForIndex(Handle<FixedArrayBase> backing_store, |
+ virtual uint32_t GetKeyForIndex(FixedArrayBase* backing_store, |
uint32_t index) = 0; |
+ virtual uint32_t GetIndexForKey(FixedArrayBase* backing_store, |
+ uint32_t key) = 0; |
+ virtual PropertyDetails GetDetails(FixedArrayBase* backing_store, |
+ uint32_t index) = 0; |
private: |
static ElementsAccessor** elements_accessors_; |