Index: src/elements.h |
diff --git a/src/elements.h b/src/elements.h |
index 1292a3cbac1f64b19de41946bdaebfb808733aaf..ef2089882e919ffef7ff196c64bf23a2b1f4d249 100644 |
--- a/src/elements.h |
+++ b/src/elements.h |
@@ -79,16 +79,12 @@ class ElementsAccessor { |
uint32_t key, |
Handle<FixedArrayBase> backing_store) = 0; |
- MUST_USE_RESULT virtual Handle<Object> Get( |
+ MUST_USE_RESULT inline Handle<Object> Get( |
Handle<Object> receiver, |
Handle<JSObject> holder, |
- uint32_t key) = 0; |
- |
- MUST_USE_RESULT virtual MaybeObject* Get( |
- Object* receiver, |
- JSObject* holder, |
- uint32_t key, |
- FixedArrayBase* backing_store = NULL) = 0; |
+ uint32_t key) { |
+ return Get(receiver, holder, key, handle(holder->elements())); |
+ } |
// Returns an element's attributes, or ABSENT if there is no such |
// element. This method doesn't iterate up the prototype chain. The caller |
@@ -96,10 +92,17 @@ class ElementsAccessor { |
// be compatible with the ElementsKind of the ElementsAccessor. If |
// backing_store is NULL, the holder->elements() is used as the backing store. |
MUST_USE_RESULT virtual PropertyAttributes GetAttributes( |
- Object* receiver, |
- JSObject* holder, |
+ Handle<Object> receiver, |
+ Handle<JSObject> holder, |
uint32_t key, |
- FixedArrayBase* backing_store = NULL) = 0; |
+ Handle<FixedArrayBase> backing_store) = 0; |
+ |
+ MUST_USE_RESULT inline PropertyAttributes GetAttributes( |
+ Handle<Object> receiver, |
+ Handle<JSObject> holder, |
+ uint32_t key) { |
+ return GetAttributes(receiver, holder, key, handle(holder->elements())); |
+ } |
// Returns an element's type, or NONEXISTENT if there is no such |
// element. This method doesn't iterate up the prototype chain. The caller |
@@ -107,10 +110,17 @@ class ElementsAccessor { |
// be compatible with the ElementsKind of the ElementsAccessor. If |
// backing_store is NULL, the holder->elements() is used as the backing store. |
MUST_USE_RESULT virtual PropertyType GetType( |
- Object* receiver, |
- JSObject* holder, |
+ Handle<Object> receiver, |
+ Handle<JSObject> holder, |
uint32_t key, |
- FixedArrayBase* backing_store = NULL) = 0; |
+ Handle<FixedArrayBase> backing_store) = 0; |
+ |
+ MUST_USE_RESULT inline PropertyType GetType( |
+ Handle<Object> receiver, |
+ Handle<JSObject> holder, |
+ uint32_t key) { |
+ return GetType(receiver, holder, key, handle(holder->elements())); |
+ } |
// Returns an element's accessors, or NULL if the element does not exist or |
// is plain. This method doesn't iterate up the prototype chain. The caller |
@@ -234,6 +244,26 @@ class ElementsAccessor { |
virtual uint32_t GetKeyForIndex(Handle<FixedArrayBase> backing_store, |
uint32_t index) = 0; |
+ // TODO(ishell): Non-handlified versions, used only by accessors' |
+ // implementations. To be removed once elements.cc is handlified. |
+ MUST_USE_RESULT virtual MaybeObject* Get( |
+ Object* receiver, |
+ JSObject* holder, |
+ uint32_t key, |
+ FixedArrayBase* backing_store) = 0; |
+ |
+ MUST_USE_RESULT virtual PropertyAttributes GetAttributes( |
+ Object* receiver, |
+ JSObject* holder, |
+ uint32_t key, |
+ FixedArrayBase* backing_store) = 0; |
+ |
+ MUST_USE_RESULT virtual PropertyType GetType( |
+ Object* receiver, |
+ JSObject* holder, |
+ uint32_t key, |
+ FixedArrayBase* backing_store) = 0; |
+ |
private: |
static ElementsAccessor** elements_accessors_; |
const char* name_; |