Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index cf60eb7ea2afdcc63d153d2a8794cb1dff0b621c..17651d882bcdabf4d4e20ae070616ecd06cf9d3d 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -1397,6 +1397,14 @@ class JSReceiver: public HeapObject { |
Object* value); |
MUST_USE_RESULT MaybeObject* DeleteProperty(String* name, DeleteMode mode); |
+ MUST_USE_RESULT MaybeObject* DeleteElement(uint32_t index, DeleteMode mode); |
+ |
+ // Set the index'th array element. |
+ // Can cause GC, or return failure if GC is required. |
+ MUST_USE_RESULT MaybeObject* SetElement(uint32_t index, |
+ Object* value, |
+ StrictModeFlag strict_mode, |
+ bool check_prototype); |
// Returns the class name ([[Class]] property in the specification). |
String* class_name(); |
@@ -1413,6 +1421,7 @@ class JSReceiver: public HeapObject { |
// Can cause a GC. |
inline bool HasProperty(String* name); |
inline bool HasLocalProperty(String* name); |
+ inline bool HasElement(uint32_t index); |
// Return the object's prototype (might be Heap::null_value()). |
inline Object* GetPrototype(); |
@@ -1693,7 +1702,6 @@ class JSObject: public JSReceiver { |
bool CanConvertToFastDoubleElements(); |
// Tells whether the index'th element is present. |
- inline bool HasElement(uint32_t index); |
bool HasElementWithReceiver(JSReceiver* receiver, uint32_t index); |
// Computes the new capacity when expanding the elements of a JSObject. |
@@ -6594,6 +6602,7 @@ class JSProxy: public JSReceiver { |
static inline JSProxy* cast(Object* obj); |
bool HasPropertyWithHandler(String* name); |
+ bool HasElementWithHandler(uint32_t index); |
MUST_USE_RESULT MaybeObject* GetPropertyWithHandler( |
Object* receiver, |
@@ -6607,14 +6616,33 @@ class JSProxy: public JSReceiver { |
Object* value, |
PropertyAttributes attributes, |
StrictModeFlag strict_mode); |
+ MUST_USE_RESULT MaybeObject* SetElementWithHandler( |
+ uint32_t index, |
+ Object* value, |
+ StrictModeFlag strict_mode); |
+ |
+ // If the handler defines an accessor property, invoke its setter |
+ // (or throw if only a getter exists) and set *found to true. Otherwise false. |
+ MUST_USE_RESULT MaybeObject* SetPropertyWithHandlerIfDefiningSetter( |
+ String* name, |
+ Object* value, |
+ PropertyAttributes attributes, |
+ StrictModeFlag strict_mode, |
+ bool* found); |
MUST_USE_RESULT MaybeObject* DeletePropertyWithHandler( |
String* name, |
DeleteMode mode); |
+ MUST_USE_RESULT MaybeObject* DeleteElementWithHandler( |
+ uint32_t index, |
+ DeleteMode mode); |
MUST_USE_RESULT PropertyAttributes GetPropertyAttributeWithHandler( |
JSReceiver* receiver, |
String* name); |
+ MUST_USE_RESULT PropertyAttributes GetElementAttributeWithHandler( |
+ JSReceiver* receiver, |
+ uint32_t index); |
// Turn this into an (empty) JSObject. |
void Fix(); |