| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 582038cca64ea6cd8e8ae83ced0b43ec80968d0a..bd9e4abe71354c1936cb5bac273dfa645fc2a0cb 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -1199,9 +1199,7 @@ class Object {
|
| MUST_USE_RESULT static MaybeHandle<Object> GetPropertyWithAccessor(
|
| LookupIterator* it);
|
| MUST_USE_RESULT static MaybeHandle<Object> SetPropertyWithAccessor(
|
| - Handle<Object> receiver, Handle<Name> name, Handle<Object> value,
|
| - Handle<JSObject> holder, Handle<Object> structure,
|
| - LanguageMode language_mode);
|
| + LookupIterator* it, Handle<Object> value, LanguageMode language_mode);
|
|
|
| MUST_USE_RESULT static MaybeHandle<Object> GetPropertyWithDefinedGetter(
|
| Handle<Object> receiver,
|
| @@ -1216,10 +1214,6 @@ class Object {
|
| Handle<Object> object,
|
| uint32_t index);
|
|
|
| - MUST_USE_RESULT static MaybeHandle<Object> SetElementWithReceiver(
|
| - Isolate* isolate, Handle<Object> object, Handle<Object> receiver,
|
| - uint32_t index, Handle<Object> value, LanguageMode language_mode);
|
| -
|
| static inline Handle<Object> GetPrototypeSkipHiddenPrototypes(
|
| Isolate* isolate, Handle<Object> receiver);
|
|
|
| @@ -1649,16 +1643,6 @@ enum EnsureElementsMode {
|
| };
|
|
|
|
|
| -// Indicates whether a property should be set or (re)defined. Setting of a
|
| -// property causes attributes to remain unchanged, writability to be checked
|
| -// and callbacks to be called. Defining of a property causes attributes to
|
| -// be updated and callbacks to be overridden.
|
| -enum SetPropertyMode {
|
| - SET_PROPERTY,
|
| - DEFINE_PROPERTY
|
| -};
|
| -
|
| -
|
| // Indicator for one component of an AccessorPair.
|
| enum AccessorComponent {
|
| ACCESSOR_GETTER,
|
| @@ -1674,7 +1658,7 @@ class JSReceiver: public HeapObject {
|
|
|
| MUST_USE_RESULT static MaybeHandle<Object> SetElement(
|
| Handle<JSReceiver> object, uint32_t index, Handle<Object> value,
|
| - PropertyAttributes attributes, LanguageMode language_mode);
|
| + LanguageMode language_mode);
|
|
|
| // Implementation of [[HasProperty]], ECMA-262 5th edition, section 8.12.6.
|
| MUST_USE_RESULT static inline Maybe<bool> HasProperty(
|
| @@ -1857,21 +1841,24 @@ class JSObject: public JSReceiver {
|
| MUST_USE_RESULT static MaybeHandle<Object> SetPropertyWithInterceptor(
|
| LookupIterator* it, Handle<Object> value);
|
|
|
| - // SetLocalPropertyIgnoreAttributes converts callbacks to fields. We need to
|
| - // grant an exemption to ExecutableAccessor callbacks in some cases.
|
| - enum ExecutableAccessorInfoHandling {
|
| - DEFAULT_HANDLING,
|
| - DONT_FORCE_FIELD
|
| - };
|
| -
|
| MUST_USE_RESULT static MaybeHandle<Object> SetOwnPropertyIgnoreAttributes(
|
| Handle<JSObject> object, Handle<Name> name, Handle<Object> value,
|
| - PropertyAttributes attributes,
|
| - ExecutableAccessorInfoHandling handling = DEFAULT_HANDLING);
|
| + PropertyAttributes attributes);
|
| +
|
| + MUST_USE_RESULT static MaybeHandle<Object> SetOwnElementIgnoreAttributes(
|
| + Handle<JSObject> object, uint32_t index, Handle<Object> value,
|
| + PropertyAttributes attributes);
|
| +
|
| + MUST_USE_RESULT static MaybeHandle<Object> ReconfigureAsDataProperty(
|
| + LookupIterator* it, Handle<Object> value, PropertyAttributes attributes);
|
|
|
| static void AddProperty(Handle<JSObject> object, Handle<Name> name,
|
| Handle<Object> value, PropertyAttributes attributes);
|
|
|
| + MUST_USE_RESULT static MaybeHandle<Object> AddDataElement(
|
| + Handle<JSObject> receiver, uint32_t index, Handle<Object> value,
|
| + PropertyAttributes attributes);
|
| +
|
| // Extend the receiver with a single fast property appeared first in the
|
| // passed map. This also extends the property backing store if necessary.
|
| static void AllocateStorageForMap(Handle<JSObject> object, Handle<Map> map);
|
| @@ -1889,6 +1876,17 @@ class JSObject: public JSReceiver {
|
| static void SetNormalizedProperty(Handle<JSObject> object, Handle<Name> name,
|
| Handle<Object> value,
|
| PropertyDetails details);
|
| + static void SetDictionaryElement(Handle<JSObject> object, uint32_t index,
|
| + Handle<Object> value,
|
| + PropertyAttributes attributes);
|
| + static void SetSloppyArgumentsElement(Handle<JSObject> object, uint32_t index,
|
| + Handle<Object> value,
|
| + PropertyAttributes attributes);
|
| +
|
| + static void SetFastElement(Handle<JSObject> object, uint32_t index,
|
| + Handle<Object> value);
|
| + static void SetFastDoubleElement(Handle<JSObject> object, uint32_t index,
|
| + Handle<Object> value);
|
|
|
| static void OptimizeAsPrototype(Handle<JSObject> object,
|
| PrototypeOptimizationMode mode);
|
| @@ -2011,23 +2009,8 @@ class JSObject: public JSReceiver {
|
| MUST_USE_RESULT static MaybeHandle<AccessorPair> GetOwnElementAccessorPair(
|
| Handle<JSObject> object, uint32_t index);
|
|
|
| - MUST_USE_RESULT static MaybeHandle<Object> SetFastElement(
|
| - Handle<JSObject> object, uint32_t index, Handle<Object> value,
|
| - LanguageMode language_mode, bool check_prototype);
|
| -
|
| - MUST_USE_RESULT static inline MaybeHandle<Object> SetOwnElement(
|
| - Handle<JSObject> object, uint32_t index, Handle<Object> value,
|
| - LanguageMode language_mode);
|
| -
|
| - MUST_USE_RESULT static MaybeHandle<Object> SetOwnElement(
|
| - Handle<JSObject> object, uint32_t index, Handle<Object> value,
|
| - PropertyAttributes attributes, LanguageMode language_mode);
|
| -
|
| - // Empty handle is returned if the element cannot be set to the given value.
|
| - MUST_USE_RESULT static MaybeHandle<Object> SetElement(
|
| - Handle<JSObject> object, uint32_t index, Handle<Object> value,
|
| - PropertyAttributes attributes, LanguageMode language_mode,
|
| - bool check_prototype = true, SetPropertyMode set_mode = SET_PROPERTY);
|
| + static void UpdateAllocationSite(Handle<JSObject> object,
|
| + ElementsKind to_kind);
|
|
|
| enum SetFastElementsCapacitySmiMode {
|
| kAllowSmiElements,
|
| @@ -2319,37 +2302,10 @@ class JSObject: public JSReceiver {
|
| Handle<Map> new_map,
|
| int expected_additional_properties);
|
|
|
| - static void UpdateAllocationSite(Handle<JSObject> object,
|
| - ElementsKind to_kind);
|
| -
|
| // Used from Object::GetProperty().
|
| MUST_USE_RESULT static MaybeHandle<Object> GetPropertyWithFailedAccessCheck(
|
| LookupIterator* it);
|
|
|
| - MUST_USE_RESULT static MaybeHandle<Object> SetElementWithCallback(
|
| - Handle<Object> object, Handle<Object> structure, uint32_t index,
|
| - Handle<Object> value, Handle<JSObject> holder,
|
| - LanguageMode language_mode);
|
| - MUST_USE_RESULT static MaybeHandle<Object> SetElementWithInterceptor(
|
| - Handle<JSObject> object, uint32_t index, Handle<Object> value,
|
| - PropertyAttributes attributes, LanguageMode language_mode,
|
| - bool check_prototype, SetPropertyMode set_mode);
|
| - MUST_USE_RESULT static MaybeHandle<Object> SetElementWithoutInterceptor(
|
| - Handle<JSObject> object, uint32_t index, Handle<Object> value,
|
| - PropertyAttributes attributes, LanguageMode language_mode,
|
| - bool check_prototype, SetPropertyMode set_mode);
|
| - MUST_USE_RESULT
|
| - static MaybeHandle<Object> SetElementWithCallbackSetterInPrototypes(
|
| - Handle<JSObject> object, uint32_t index, Handle<Object> value,
|
| - bool* found, LanguageMode language_mode);
|
| - MUST_USE_RESULT static MaybeHandle<Object> SetDictionaryElement(
|
| - Handle<JSObject> object, uint32_t index, Handle<Object> value,
|
| - PropertyAttributes attributes, LanguageMode language_mode,
|
| - bool check_prototype, SetPropertyMode set_mode = SET_PROPERTY);
|
| - MUST_USE_RESULT static MaybeHandle<Object> SetFastDoubleElement(
|
| - Handle<JSObject> object, uint32_t index, Handle<Object> value,
|
| - LanguageMode language_mode, bool check_prototype = true);
|
| -
|
| MUST_USE_RESULT static MaybeHandle<Object> SetPropertyWithFailedAccessCheck(
|
| LookupIterator* it, Handle<Object> value, LanguageMode language_mode);
|
|
|
| @@ -2453,6 +2409,9 @@ class FixedArray: public FixedArrayBase {
|
| public:
|
| // Setter and getter for elements.
|
| inline Object* get(int index) const;
|
| + static Handle<Object> SetValue(Handle<JSObject> holder,
|
| + Handle<FixedArray> array, uint32_t index,
|
| + Handle<Object> value);
|
| static inline Handle<Object> get(Handle<FixedArray> array, int index);
|
| // Setter that uses write barrier.
|
| inline void set(int index, Object* value);
|
| @@ -2574,6 +2533,10 @@ class FixedDoubleArray: public FixedArrayBase {
|
| inline double get_scalar(int index);
|
| inline uint64_t get_representation(int index);
|
| static inline Handle<Object> get(Handle<FixedDoubleArray> array, int index);
|
| + // This accessor has to get a Number as |value|.
|
| + static Handle<Object> SetValue(Handle<JSObject> holder,
|
| + Handle<FixedDoubleArray> array, uint32_t index,
|
| + Handle<Object> value);
|
| inline void set(int index, double value);
|
| inline void set_the_hole(int index);
|
|
|
| @@ -5854,6 +5817,8 @@ class Map: public HeapObject {
|
| static Handle<Map> PrepareForDataProperty(Handle<Map> old_map,
|
| int descriptor_number,
|
| Handle<Object> value);
|
| + static Handle<Map> PrepareForDataElement(Handle<Map> old_map,
|
| + Handle<Object> value);
|
|
|
| static Handle<Map> Normalize(Handle<Map> map, PropertyNormalizationMode mode,
|
| const char* reason);
|
| @@ -9757,10 +9722,6 @@ class JSProxy: public JSReceiver {
|
| private:
|
| friend class JSReceiver;
|
|
|
| - MUST_USE_RESULT static inline MaybeHandle<Object> SetElementWithHandler(
|
| - Handle<JSProxy> proxy, Handle<JSReceiver> receiver, uint32_t index,
|
| - Handle<Object> value, LanguageMode language_mode);
|
| -
|
| MUST_USE_RESULT static Maybe<bool> HasPropertyWithHandler(
|
| Handle<JSProxy> proxy, Handle<Name> name);
|
|
|
| @@ -10348,7 +10309,7 @@ class ExecutableAccessorInfo: public AccessorInfo {
|
| static const int kDataOffset = kSetterOffset + kPointerSize;
|
| static const int kSize = kDataOffset + kPointerSize;
|
|
|
| - static inline void ClearSetter(Handle<ExecutableAccessorInfo> info);
|
| + static void ClearSetter(Handle<ExecutableAccessorInfo> info);
|
|
|
| private:
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(ExecutableAccessorInfo);
|
|
|