Index: src/elements.h |
diff --git a/src/elements.h b/src/elements.h |
index 74e4ad665969971843f248e8f5d6a43f9a7b7c8d..2ae584bc068eeeab1c902a03b33c79f880c74a3d 100644 |
--- a/src/elements.h |
+++ b/src/elements.h |
@@ -41,10 +41,10 @@ class ElementsAccessor { |
virtual ~ElementsAccessor() { } |
virtual MaybeObject* GetWithReceiver(JSObject* obj, |
Object* receiver, |
- uint32_t index) = 0; |
+ uint32_t key) = 0; |
virtual MaybeObject* Delete(JSObject* obj, |
- uint32_t index, |
+ uint32_t key, |
JSReceiver::DeleteMode mode) = 0; |
virtual MaybeObject* AddElementsToFixedArray(FixedArrayBase* from, |
@@ -56,8 +56,25 @@ class ElementsAccessor { |
return elements_accessors_[elements_kind]; |
} |
+ static ElementsAccessor* ForArray(FixedArrayBase* array); |
+ |
static void InitializeOncePerProcess(); |
+ protected: |
+ friend class NonStrictArgumentsElementsAccessor; |
+ |
+ virtual uint32_t GetCapacity(FixedArrayBase* backing_store) = 0; |
+ |
+ // TODO(danno): GetElement should be merged with GetWithReceiver. |
+ virtual MaybeObject* GetElement(FixedArrayBase* backing_store, |
+ uint32_t key) = 0; |
+ |
+ virtual bool HasElementAtIndex(FixedArrayBase* backing_store, |
+ uint32_t index) = 0; |
+ |
+ virtual uint32_t GetKeyForIndex(FixedArrayBase* backing_store, |
+ uint32_t index) = 0; |
+ |
private: |
static ElementsAccessor** elements_accessors_; |