| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 541334a5dc197b11be3b80ad25755d3cac4ed556..717b2ab07204c4f8155cb55cf5927067c3d7083b 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -1342,6 +1342,11 @@ class JSReceiver: public HeapObject {
|
| // Casting.
|
| static inline JSReceiver* cast(Object* obj);
|
|
|
| + static Handle<Object> SetProperty(Handle<JSReceiver> object,
|
| + Handle<String> key,
|
| + Handle<Object> value,
|
| + PropertyAttributes attributes,
|
| + StrictModeFlag strict_mode);
|
| // Can cause GC.
|
| MUST_USE_RESULT MaybeObject* SetProperty(String* key,
|
| Object* value,
|
| @@ -1521,6 +1526,14 @@ class JSObject: public JSReceiver {
|
| Object* value,
|
| PropertyAttributes attributes,
|
| StrictModeFlag strict_mode);
|
| +
|
| + static Handle<Object> SetLocalPropertyIgnoreAttributes(
|
| + Handle<JSObject> object,
|
| + Handle<String> key,
|
| + Handle<Object> value,
|
| + PropertyAttributes attributes);
|
| +
|
| + // Can cause GC.
|
| MUST_USE_RESULT MaybeObject* SetLocalPropertyIgnoreAttributes(
|
| String* key,
|
| Object* value,
|
| @@ -1536,6 +1549,11 @@ class JSObject: public JSReceiver {
|
|
|
| // Sets the property value in a normalized object given (key, value, details).
|
| // Handles the special representation of JS global objects.
|
| + static Handle<Object> SetNormalizedProperty(Handle<JSObject> object,
|
| + Handle<String> key,
|
| + Handle<Object> value,
|
| + PropertyDetails details);
|
| +
|
| MUST_USE_RESULT MaybeObject* SetNormalizedProperty(String* name,
|
| Object* value,
|
| PropertyDetails details);
|
| @@ -1605,8 +1623,11 @@ class JSObject: public JSReceiver {
|
| // hidden properties.
|
|
|
| // Sets a hidden property on this object. Returns this object if successful,
|
| - // undefined if called on a detached proxy, and a failure if a GC
|
| - // is required
|
| + // undefined if called on a detached proxy.
|
| + static Handle<Object> SetHiddenProperty(Handle<JSObject> obj,
|
| + Handle<String> key,
|
| + Handle<Object> value);
|
| + // Returns a failure if a GC is required.
|
| MaybeObject* SetHiddenProperty(String* key, Object* value);
|
| // Gets the value of a hidden property with the given key. Returns undefined
|
| // if the property doesn't exist (or if called on a detached proxy),
|
| @@ -1618,10 +1639,15 @@ class JSObject: public JSReceiver {
|
| // Returns true if the object has a property with the hidden symbol as name.
|
| bool HasHiddenProperties();
|
|
|
| + static int GetIdentityHash(Handle<JSObject> obj);
|
| MUST_USE_RESULT MaybeObject* GetIdentityHash(CreationFlag flag);
|
| MUST_USE_RESULT MaybeObject* SetIdentityHash(Object* hash, CreationFlag flag);
|
|
|
| + static Handle<Object> DeleteProperty(Handle<JSObject> obj,
|
| + Handle<String> name);
|
| MUST_USE_RESULT MaybeObject* DeleteProperty(String* name, DeleteMode mode);
|
| +
|
| + static Handle<Object> DeleteElement(Handle<JSObject> obj, uint32_t index);
|
| MUST_USE_RESULT MaybeObject* DeleteElement(uint32_t index, DeleteMode mode);
|
|
|
| inline void ValidateSmiOnlyElements();
|
| @@ -1701,7 +1727,18 @@ class JSObject: public JSReceiver {
|
| StrictModeFlag strict_mode,
|
| bool check_prototype = true);
|
|
|
| - // Set the index'th array element.
|
| +
|
| + static Handle<Object> SetOwnElement(Handle<JSObject> object,
|
| + uint32_t index,
|
| + Handle<Object> value,
|
| + StrictModeFlag strict_mode);
|
| +
|
| + // Empty handle is returned if the element cannot be set to the given value.
|
| + static MUST_USE_RESULT Handle<Object> SetElement(Handle<JSObject> object,
|
| + uint32_t index,
|
| + Handle<Object> value,
|
| + StrictModeFlag strict_mode);
|
| +
|
| // A Failure object is returned if GC is needed.
|
| MUST_USE_RESULT MaybeObject* SetElement(uint32_t index,
|
| Object* value,
|
| @@ -1811,6 +1848,9 @@ class JSObject: public JSReceiver {
|
| MUST_USE_RESULT MaybeObject* GetElementsTransitionMap(
|
| ElementsKind elements_kind);
|
|
|
| + static Handle<Object> TransitionElementsKind(Handle<JSObject> object,
|
| + ElementsKind to_kind);
|
| +
|
| MUST_USE_RESULT MaybeObject* TransitionElementsKind(ElementsKind to_kind);
|
|
|
| // Converts a descriptor of any other type to a real field,
|
| @@ -1851,12 +1891,18 @@ class JSObject: public JSReceiver {
|
| // representation. If the object is expected to have additional properties
|
| // added this number can be indicated to have the backing store allocated to
|
| // an initial capacity for holding these properties.
|
| + static void NormalizeProperties(Handle<JSObject> object,
|
| + PropertyNormalizationMode mode,
|
| + int expected_additional_properties);
|
| +
|
| MUST_USE_RESULT MaybeObject* NormalizeProperties(
|
| PropertyNormalizationMode mode,
|
| int expected_additional_properties);
|
|
|
| // Convert and update the elements backing store to be a NumberDictionary
|
| // dictionary. Returns the backing after conversion.
|
| + static Handle<NumberDictionary> NormalizeElements(Handle<JSObject> object);
|
| +
|
| MUST_USE_RESULT MaybeObject* NormalizeElements();
|
|
|
| static void UpdateMapCodeCache(Handle<JSObject> object,
|
| @@ -1867,6 +1913,9 @@ class JSObject: public JSReceiver {
|
|
|
| // Transform slow named properties to fast variants.
|
| // Returns failure if allocation failed.
|
| + static void TransformToFastProperties(Handle<JSObject> object,
|
| + int unused_property_fields);
|
| +
|
| MUST_USE_RESULT MaybeObject* TransformToFastProperties(
|
| int unused_property_fields);
|
|
|
| @@ -1898,6 +1947,7 @@ class JSObject: public JSReceiver {
|
| static inline JSObject* cast(Object* obj);
|
|
|
| // Disalow further properties to be added to the object.
|
| + static Handle<Object> PreventExtensions(Handle<JSObject> object);
|
| MUST_USE_RESULT MaybeObject* PreventExtensions();
|
|
|
|
|
| @@ -2973,6 +3023,13 @@ class NumberDictionary: public Dictionary<NumberDictionaryShape, uint32_t> {
|
| PropertyDetails details);
|
|
|
| // Set an existing entry or add a new one if needed.
|
| + // Return the updated dictionary.
|
| + MUST_USE_RESULT static Handle<NumberDictionary> Set(
|
| + Handle<NumberDictionary> dictionary,
|
| + uint32_t index,
|
| + Handle<Object> value,
|
| + PropertyDetails details);
|
| +
|
| MUST_USE_RESULT MaybeObject* Set(uint32_t key,
|
| Object* value,
|
| PropertyDetails details);
|
|
|