| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 9d5df62ce47eec37f2b6f0f10a438b80dae9d34d..18d3c480b408b65e5e02a7156a71606e3b42183c 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -1990,42 +1990,27 @@ class JSReceiver: public HeapObject {
|
| // Casting.
|
| static inline JSReceiver* cast(Object* obj);
|
|
|
| + // Implementation of [[Put]], ECMA-262 5th edition, section 8.12.5.
|
| static Handle<Object> SetProperty(Handle<JSReceiver> object,
|
| Handle<Name> key,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode);
|
| + StrictModeFlag strict_mode,
|
| + StoreFromKeyed store_mode =
|
| + MAY_BE_STORE_FROM_KEYED);
|
| static Handle<Object> SetElement(Handle<JSReceiver> object,
|
| uint32_t index,
|
| Handle<Object> value,
|
| PropertyAttributes attributes,
|
| StrictModeFlag strict_mode);
|
|
|
| - MUST_USE_RESULT static MaybeObject* SetPropertyOrFail(
|
| - Handle<JSReceiver> object,
|
| - Handle<Name> key,
|
| - Handle<Object> value,
|
| - PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| - StoreFromKeyed store_from_keyed = MAY_BE_STORE_FROM_KEYED);
|
| -
|
| - // Can cause GC.
|
| - MUST_USE_RESULT MaybeObject* SetProperty(
|
| - Name* key,
|
| - Object* value,
|
| - PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| - StoreFromKeyed store_from_keyed = MAY_BE_STORE_FROM_KEYED);
|
| - MUST_USE_RESULT MaybeObject* SetProperty(
|
| - LookupResult* result,
|
| - Name* key,
|
| - Object* value,
|
| - PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| - StoreFromKeyed store_from_keyed = MAY_BE_STORE_FROM_KEYED);
|
| - MUST_USE_RESULT MaybeObject* SetPropertyWithDefinedSetter(JSReceiver* setter,
|
| - Object* value);
|
| + // Implementation of [[HasProperty]], ECMA-262 5th edition, section 8.12.6.
|
| + static inline bool HasProperty(Handle<JSReceiver> object, Handle<Name> name);
|
| + static inline bool HasLocalProperty(Handle<JSReceiver>, Handle<Name> name);
|
| + static inline bool HasElement(Handle<JSReceiver> object, uint32_t index);
|
| + static inline bool HasLocalElement(Handle<JSReceiver> object, uint32_t index);
|
|
|
| + // Implementation of [[Delete]], ECMA-262 5th edition, section 8.12.7.
|
| static Handle<Object> DeleteProperty(Handle<JSReceiver> object,
|
| Handle<Name> name,
|
| DeleteMode mode = NORMAL_DELETION);
|
| @@ -2051,12 +2036,6 @@ class JSReceiver: public HeapObject {
|
| inline PropertyAttributes GetElementAttribute(uint32_t index);
|
| inline PropertyAttributes GetLocalElementAttribute(uint32_t index);
|
|
|
| - // Can cause a GC.
|
| - inline bool HasProperty(Name* name);
|
| - inline bool HasLocalProperty(Name* name);
|
| - inline bool HasElement(uint32_t index);
|
| - inline bool HasLocalElement(uint32_t index);
|
| -
|
| // Return the object's prototype (might be Heap::null_value()).
|
| inline Object* GetPrototype();
|
|
|
| @@ -2076,12 +2055,24 @@ class JSReceiver: public HeapObject {
|
| protected:
|
| Smi* GenerateIdentityHash();
|
|
|
| + static Handle<Object> SetPropertyWithDefinedSetter(Handle<JSReceiver> object,
|
| + Handle<JSReceiver> setter,
|
| + Handle<Object> value);
|
| +
|
| private:
|
| PropertyAttributes GetPropertyAttributeForResult(JSReceiver* receiver,
|
| LookupResult* result,
|
| Name* name,
|
| bool continue_search);
|
|
|
| + static Handle<Object> SetProperty(Handle<JSReceiver> receiver,
|
| + LookupResult* result,
|
| + Handle<Name> key,
|
| + Handle<Object> value,
|
| + PropertyAttributes attributes,
|
| + StrictModeFlag strict_mode,
|
| + StoreFromKeyed store_from_keyed);
|
| +
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(JSReceiver);
|
| };
|
|
|
| @@ -2175,36 +2166,29 @@ class JSObject: public JSReceiver {
|
| Object* structure,
|
| Name* name);
|
|
|
| - // Can cause GC.
|
| - MUST_USE_RESULT MaybeObject* SetPropertyForResult(LookupResult* result,
|
| - Name* key,
|
| - Object* value,
|
| - PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| - StoreFromKeyed store_mode);
|
| - MUST_USE_RESULT MaybeObject* SetPropertyWithFailedAccessCheck(
|
| - LookupResult* result,
|
| - Name* name,
|
| - Object* value,
|
| - bool check_prototype,
|
| - StrictModeFlag strict_mode);
|
| - MUST_USE_RESULT MaybeObject* SetPropertyWithCallback(
|
| - Object* structure,
|
| - Name* name,
|
| - Object* value,
|
| - JSObject* holder,
|
| + static Handle<Object> SetPropertyWithCallback(
|
| + Handle<JSObject> object,
|
| + Handle<Object> structure,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| + Handle<JSObject> holder,
|
| StrictModeFlag strict_mode);
|
| - MUST_USE_RESULT MaybeObject* SetPropertyWithInterceptor(
|
| - Name* name,
|
| - Object* value,
|
| +
|
| + static Handle<Object> SetPropertyWithInterceptor(
|
| + Handle<JSObject> object,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| PropertyAttributes attributes,
|
| StrictModeFlag strict_mode);
|
| - MUST_USE_RESULT MaybeObject* SetPropertyPostInterceptor(
|
| - Name* name,
|
| - Object* value,
|
| +
|
| + static Handle<Object> SetPropertyForResult(
|
| + Handle<JSObject> object,
|
| + LookupResult* result,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| PropertyAttributes attributes,
|
| StrictModeFlag strict_mode,
|
| - StoreMode mode = ALLOW_AS_CONSTANT);
|
| + StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED);
|
|
|
| static Handle<Object> SetLocalPropertyIgnoreAttributes(
|
| Handle<JSObject> object,
|
| @@ -2231,7 +2215,6 @@ class JSObject: public JSReceiver {
|
| inline MUST_USE_RESULT MaybeObject* AllocateStorageForMap(Map* map);
|
|
|
| static void MigrateInstance(Handle<JSObject> instance);
|
| - inline MUST_USE_RESULT MaybeObject* MigrateInstance();
|
|
|
| static Handle<Object> TryMigrateInstance(Handle<JSObject> instance);
|
| inline MUST_USE_RESULT MaybeObject* TryMigrateInstance();
|
| @@ -2249,27 +2232,18 @@ class JSObject: public JSReceiver {
|
| // Handles the special representation of JS global objects.
|
| Object* GetNormalizedProperty(LookupResult* result);
|
|
|
| - // Sets the property value in a normalized object given (key, value).
|
| - // Handles the special representation of JS global objects.
|
| - static Handle<Object> SetNormalizedProperty(Handle<JSObject> object,
|
| - LookupResult* result,
|
| - Handle<Object> value);
|
| -
|
| // Sets the property value in a normalized object given a lookup result.
|
| // Handles the special representation of JS global objects.
|
| - MUST_USE_RESULT MaybeObject* SetNormalizedProperty(LookupResult* result,
|
| - Object* value);
|
| + static void SetNormalizedProperty(Handle<JSObject> object,
|
| + LookupResult* result,
|
| + Handle<Object> value);
|
|
|
| // 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<Name> key,
|
| - Handle<Object> value,
|
| - PropertyDetails details);
|
| -
|
| - MUST_USE_RESULT MaybeObject* SetNormalizedProperty(Name* name,
|
| - Object* value,
|
| - PropertyDetails details);
|
| + static void SetNormalizedProperty(Handle<JSObject> object,
|
| + Handle<Name> key,
|
| + Handle<Object> value,
|
| + PropertyDetails details);
|
|
|
| static void OptimizeAsPrototype(Handle<JSObject> object);
|
|
|
| @@ -2496,8 +2470,6 @@ class JSObject: public JSReceiver {
|
| void LocalLookupRealNamedProperty(Name* name, LookupResult* result);
|
| void LookupRealNamedProperty(Name* name, LookupResult* result);
|
| void LookupRealNamedPropertyInPrototypes(Name* name, LookupResult* result);
|
| - MUST_USE_RESULT MaybeObject* SetElementWithCallbackSetterInPrototypes(
|
| - uint32_t index, Object* value, bool* found, StrictModeFlag strict_mode);
|
| void LookupCallbackProperty(Name* name, LookupResult* result);
|
|
|
| // Returns the number of properties on this object filtering out properties
|
| @@ -2523,32 +2495,6 @@ class JSObject: public JSReceiver {
|
| // Returns the number of enumerable elements.
|
| int GetEnumElementKeys(FixedArray* storage);
|
|
|
| - // Add a property to a fast-case object using a map transition to
|
| - // new_map.
|
| - MUST_USE_RESULT MaybeObject* AddFastPropertyUsingMap(
|
| - Map* new_map,
|
| - Name* name,
|
| - Object* value,
|
| - int field_index,
|
| - Representation representation);
|
| -
|
| - // Add a constant function property to a fast-case object.
|
| - // This leaves a CONSTANT_TRANSITION in the old map, and
|
| - // if it is called on a second object with this map, a
|
| - // normal property is added instead, with a map transition.
|
| - // This avoids the creation of many maps with the same constant
|
| - // function, all orphaned.
|
| - MUST_USE_RESULT MaybeObject* AddConstantProperty(
|
| - Name* name,
|
| - Object* constant,
|
| - PropertyAttributes attributes,
|
| - TransitionFlag flag);
|
| -
|
| - MUST_USE_RESULT MaybeObject* ReplaceSlowProperty(
|
| - Name* name,
|
| - Object* value,
|
| - PropertyAttributes attributes);
|
| -
|
| // Returns a new map with all transitions dropped from the object's current
|
| // map and the ElementsKind set.
|
| static Handle<Map> GetElementsTransitionMap(Handle<JSObject> object,
|
| @@ -2565,37 +2511,12 @@ class JSObject: public JSReceiver {
|
| MUST_USE_RESULT MaybeObject* TransitionElementsKind(ElementsKind to_kind);
|
| MUST_USE_RESULT MaybeObject* UpdateAllocationSite(ElementsKind to_kind);
|
|
|
| + static void MigrateToMap(Handle<JSObject> object, Handle<Map> new_map);
|
| MUST_USE_RESULT MaybeObject* MigrateToMap(Map* new_map);
|
| - MUST_USE_RESULT MaybeObject* GeneralizeFieldRepresentation(
|
| - int modify_index,
|
| - Representation new_representation,
|
| - StoreMode store_mode);
|
| -
|
| - // Add a property to a fast-case object.
|
| - MUST_USE_RESULT MaybeObject* AddFastProperty(
|
| - Name* name,
|
| - Object* value,
|
| - PropertyAttributes attributes,
|
| - StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED,
|
| - ValueType value_type = OPTIMAL_REPRESENTATION,
|
| - TransitionFlag flag = INSERT_TRANSITION);
|
| -
|
| - // Add a property to a slow-case object.
|
| - MUST_USE_RESULT MaybeObject* AddSlowProperty(Name* name,
|
| - Object* value,
|
| - PropertyAttributes attributes);
|
| -
|
| - // Add a property to an object. May cause GC.
|
| - MUST_USE_RESULT MaybeObject* AddProperty(
|
| - Name* name,
|
| - Object* value,
|
| - PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode,
|
| - StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED,
|
| - ExtensibilityCheck extensibility_check = PERFORM_EXTENSIBILITY_CHECK,
|
| - ValueType value_type = OPTIMAL_REPRESENTATION,
|
| - StoreMode mode = ALLOW_AS_CONSTANT,
|
| - TransitionFlag flag = INSERT_TRANSITION);
|
| + static void GeneralizeFieldRepresentation(Handle<JSObject> object,
|
| + int modify_index,
|
| + Representation new_representation,
|
| + StoreMode store_mode);
|
|
|
| // Convert the object to use the canonical dictionary
|
| // representation. If the object is expected to have additional properties
|
| @@ -2664,8 +2585,7 @@ class JSObject: public JSReceiver {
|
| MUST_USE_RESULT MaybeObject* PreventExtensions();
|
|
|
| // ES5 Object.freeze
|
| - MUST_USE_RESULT MaybeObject* Freeze(Isolate* isolate);
|
| -
|
| + static Handle<Object> Freeze(Handle<JSObject> object);
|
|
|
| // Called the first time an object is observed with ES7 Object.observe.
|
| MUST_USE_RESULT MaybeObject* SetObserved(Isolate* isolate);
|
| @@ -2775,15 +2695,6 @@ class JSObject: public JSReceiver {
|
| friend class DictionaryElementsAccessor;
|
| friend class JSReceiver;
|
|
|
| - // TODO(mstarzinger): Soon to be handlified.
|
| - MUST_USE_RESULT MaybeObject* SetLocalPropertyIgnoreAttributes(
|
| - Name* key,
|
| - Object* value,
|
| - PropertyAttributes attributes,
|
| - ValueType value_type = OPTIMAL_REPRESENTATION,
|
| - StoreMode mode = ALLOW_AS_CONSTANT,
|
| - ExtensibilityCheck extensibility_check = PERFORM_EXTENSIBILITY_CHECK);
|
| -
|
| MUST_USE_RESULT MaybeObject* GetElementWithCallback(Object* receiver,
|
| Object* structure,
|
| uint32_t index,
|
| @@ -2796,11 +2707,12 @@ class JSObject: public JSReceiver {
|
| JSReceiver* receiver,
|
| uint32_t index,
|
| bool continue_search);
|
| - MUST_USE_RESULT MaybeObject* SetElementWithCallback(
|
| - Object* structure,
|
| + static Handle<Object> SetElementWithCallback(
|
| + Handle<JSObject> object,
|
| + Handle<Object> structure,
|
| uint32_t index,
|
| - Object* value,
|
| - JSObject* holder,
|
| + Handle<Object> value,
|
| + Handle<JSObject> holder,
|
| StrictModeFlag strict_mode);
|
| MUST_USE_RESULT MaybeObject* SetElementWithInterceptor(
|
| uint32_t index,
|
| @@ -2816,17 +2728,91 @@ class JSObject: public JSReceiver {
|
| StrictModeFlag strict_mode,
|
| bool check_prototype,
|
| SetPropertyMode set_mode);
|
| + MUST_USE_RESULT MaybeObject* SetElementWithCallbackSetterInPrototypes(
|
| + uint32_t index,
|
| + Object* value,
|
| + bool* found,
|
| + StrictModeFlag strict_mode);
|
|
|
| // Searches the prototype chain for property 'name'. If it is found and
|
| // has a setter, invoke it and set '*done' to true. If it is found and is
|
| // read-only, reject and set '*done' to true. Otherwise, set '*done' to
|
| - // false. Can cause GC and can return a failure result with '*done==true'.
|
| - MUST_USE_RESULT MaybeObject* SetPropertyViaPrototypes(
|
| - Name* name,
|
| - Object* value,
|
| + // false. Can throw and return an empty handle with '*done==true'.
|
| + static Handle<Object> SetPropertyViaPrototypes(
|
| + Handle<JSObject> object,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| PropertyAttributes attributes,
|
| StrictModeFlag strict_mode,
|
| bool* done);
|
| + static Handle<Object> SetPropertyPostInterceptor(
|
| + Handle<JSObject> object,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| + PropertyAttributes attributes,
|
| + StrictModeFlag strict_mode);
|
| + static Handle<Object> SetPropertyUsingTransition(
|
| + Handle<JSObject> object,
|
| + LookupResult* lookup,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| + PropertyAttributes attributes);
|
| + static Handle<Object> SetPropertyWithFailedAccessCheck(
|
| + Handle<JSObject> object,
|
| + LookupResult* result,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| + bool check_prototype,
|
| + StrictModeFlag strict_mode);
|
| +
|
| + // Add a property to an object.
|
| + static Handle<Object> AddProperty(
|
| + Handle<JSObject> object,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| + PropertyAttributes attributes,
|
| + StrictModeFlag strict_mode,
|
| + StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED,
|
| + ExtensibilityCheck extensibility_check = PERFORM_EXTENSIBILITY_CHECK,
|
| + ValueType value_type = OPTIMAL_REPRESENTATION,
|
| + StoreMode mode = ALLOW_AS_CONSTANT,
|
| + TransitionFlag flag = INSERT_TRANSITION);
|
| +
|
| + // Add a constant function property to a fast-case object.
|
| + // This leaves a CONSTANT_TRANSITION in the old map, and
|
| + // if it is called on a second object with this map, a
|
| + // normal property is added instead, with a map transition.
|
| + // This avoids the creation of many maps with the same constant
|
| + // function, all orphaned.
|
| + static void AddConstantProperty(Handle<JSObject> object,
|
| + Handle<Name> name,
|
| + Handle<Object> constant,
|
| + PropertyAttributes attributes,
|
| + TransitionFlag flag);
|
| +
|
| + // Add a property to a fast-case object.
|
| + static void AddFastProperty(Handle<JSObject> object,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| + PropertyAttributes attributes,
|
| + StoreFromKeyed store_mode,
|
| + ValueType value_type,
|
| + TransitionFlag flag);
|
| +
|
| + // Add a property to a fast-case object using a map transition to
|
| + // new_map.
|
| + static void AddFastPropertyUsingMap(Handle<JSObject> object,
|
| + Handle<Map> new_map,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| + int field_index,
|
| + Representation representation);
|
| +
|
| + // Add a property to a slow-case object.
|
| + static void AddSlowProperty(Handle<JSObject> object,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| + PropertyAttributes attributes);
|
|
|
| static Handle<Object> DeleteProperty(Handle<JSObject> object,
|
| Handle<Name> name,
|
| @@ -3216,6 +3202,13 @@ class DescriptorArray: public FixedArray {
|
| DescriptorArray* src,
|
| int src_index,
|
| const WhitenessWitness&);
|
| + static Handle<DescriptorArray> Merge(Handle<DescriptorArray> desc,
|
| + int verbatim,
|
| + int valid,
|
| + int new_size,
|
| + int modify_index,
|
| + StoreMode store_mode,
|
| + Handle<DescriptorArray> other);
|
| MUST_USE_RESULT MaybeObject* Merge(int verbatim,
|
| int valid,
|
| int new_size,
|
| @@ -3232,6 +3225,10 @@ class DescriptorArray: public FixedArray {
|
| return CopyUpToAddAttributes(enumeration_index, NONE);
|
| }
|
|
|
| + static Handle<DescriptorArray> CopyUpToAddAttributes(
|
| + Handle<DescriptorArray> desc,
|
| + int enumeration_index,
|
| + PropertyAttributes attributes);
|
| MUST_USE_RESULT MaybeObject* CopyUpToAddAttributes(
|
| int enumeration_index,
|
| PropertyAttributes attributes);
|
| @@ -5658,11 +5655,8 @@ class Map: public HeapObject {
|
| int modify_index,
|
| Representation new_representation,
|
| StoreMode store_mode);
|
| - MUST_USE_RESULT MaybeObject* GeneralizeRepresentation(
|
| - int modify_index,
|
| - Representation representation,
|
| - StoreMode store_mode);
|
| - MUST_USE_RESULT MaybeObject* CopyGeneralizeAllRepresentations(
|
| + static Handle<Map> CopyGeneralizeAllRepresentations(
|
| + Handle<Map> map,
|
| int modify_index,
|
| StoreMode store_mode,
|
| PropertyAttributes attributes,
|
| @@ -5837,11 +5831,19 @@ class Map: public HeapObject {
|
| MUST_USE_RESULT MaybeObject* CopyWithPreallocatedFieldDescriptors();
|
| static Handle<Map> CopyDropDescriptors(Handle<Map> map);
|
| MUST_USE_RESULT MaybeObject* CopyDropDescriptors();
|
| + static Handle<Map> CopyReplaceDescriptors(Handle<Map> map,
|
| + Handle<DescriptorArray> descriptors,
|
| + TransitionFlag flag,
|
| + Handle<Name> name);
|
| MUST_USE_RESULT MaybeObject* CopyReplaceDescriptors(
|
| DescriptorArray* descriptors,
|
| TransitionFlag flag,
|
| Name* name = NULL,
|
| SimpleTransitionFlag simple_flag = FULL_TRANSITION);
|
| + static Handle<Map> CopyInstallDescriptors(
|
| + Handle<Map> map,
|
| + int new_descriptor,
|
| + Handle<DescriptorArray> descriptors);
|
| MUST_USE_RESULT MaybeObject* CopyInstallDescriptors(
|
| int new_descriptor,
|
| DescriptorArray* descriptors);
|
| @@ -7883,11 +7885,10 @@ class AllocationSite: public Struct {
|
| static const uint32_t kMaximumArrayBytesToPretransition = 8 * 1024;
|
|
|
| DECL_ACCESSORS(transition_info, Object)
|
| + DECL_ACCESSORS(dependent_code, DependentCode)
|
| DECL_ACCESSORS(weak_next, Object)
|
|
|
| - void Initialize() {
|
| - SetElementsKind(GetInitialFastElementsKind());
|
| - }
|
| + inline void Initialize();
|
|
|
| ElementsKind GetElementsKind() {
|
| ASSERT(!IsLiteralSite());
|
| @@ -7915,11 +7916,12 @@ class AllocationSite: public Struct {
|
| static inline bool CanTrack(InstanceType type);
|
|
|
| static const int kTransitionInfoOffset = HeapObject::kHeaderSize;
|
| - static const int kWeakNextOffset = kTransitionInfoOffset + kPointerSize;
|
| + static const int kDependentCodeOffset = kTransitionInfoOffset + kPointerSize;
|
| + static const int kWeakNextOffset = kDependentCodeOffset + kPointerSize;
|
| static const int kSize = kWeakNextOffset + kPointerSize;
|
|
|
| typedef FixedBodyDescriptor<HeapObject::kHeaderSize,
|
| - kTransitionInfoOffset + kPointerSize,
|
| + kDependentCodeOffset + kPointerSize,
|
| kSize> BodyDescriptor;
|
|
|
| private:
|
| @@ -9060,6 +9062,9 @@ class PropertyCell: public Cell {
|
| // of the cell's current type and the value's type. If the change causes
|
| // a change of the type of the cell's contents, code dependent on the cell
|
| // will be deoptimized.
|
| + static void SetValueInferType(Handle<PropertyCell> cell,
|
| + Handle<Object> value,
|
| + WriteBarrierMode mode = UPDATE_WRITE_BARRIER);
|
| MUST_USE_RESULT MaybeObject* SetValueInferType(
|
| Object* value,
|
| WriteBarrierMode mode = UPDATE_WRITE_BARRIER);
|
| @@ -9112,9 +9117,6 @@ class JSProxy: public JSReceiver {
|
| // Casting.
|
| static inline JSProxy* cast(Object* obj);
|
|
|
| - bool HasPropertyWithHandler(Name* name);
|
| - bool HasElementWithHandler(uint32_t index);
|
| -
|
| MUST_USE_RESULT MaybeObject* GetPropertyWithHandler(
|
| Object* receiver,
|
| Name* name);
|
| @@ -9122,21 +9124,15 @@ class JSProxy: public JSReceiver {
|
| Object* receiver,
|
| uint32_t index);
|
|
|
| - MUST_USE_RESULT MaybeObject* SetPropertyWithHandler(
|
| - JSReceiver* receiver,
|
| - Name* name,
|
| - Object* value,
|
| - PropertyAttributes attributes,
|
| - StrictModeFlag strict_mode);
|
| -
|
| // If the handler defines an accessor property with a setter, invoke it.
|
| // If it defines an accessor property without a setter, or a data property
|
| // that is read-only, throw. In all these cases set '*done' to true,
|
| // otherwise set it to false.
|
| - MUST_USE_RESULT MaybeObject* SetPropertyViaPrototypesWithHandler(
|
| - JSReceiver* receiver,
|
| - Name* name,
|
| - Object* value,
|
| + static Handle<Object> SetPropertyViaPrototypesWithHandler(
|
| + Handle<JSProxy> proxy,
|
| + Handle<JSReceiver> receiver,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| PropertyAttributes attributes,
|
| StrictModeFlag strict_mode,
|
| bool* done);
|
| @@ -9184,12 +9180,21 @@ class JSProxy: public JSReceiver {
|
| private:
|
| friend class JSReceiver;
|
|
|
| + static Handle<Object> SetPropertyWithHandler(Handle<JSProxy> proxy,
|
| + Handle<JSReceiver> receiver,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| + PropertyAttributes attributes,
|
| + StrictModeFlag strict_mode);
|
| static Handle<Object> SetElementWithHandler(Handle<JSProxy> proxy,
|
| Handle<JSReceiver> receiver,
|
| uint32_t index,
|
| Handle<Object> value,
|
| StrictModeFlag strict_mode);
|
|
|
| + static bool HasPropertyWithHandler(Handle<JSProxy> proxy, Handle<Name> name);
|
| + static bool HasElementWithHandler(Handle<JSProxy> proxy, uint32_t index);
|
| +
|
| static Handle<Object> DeletePropertyWithHandler(Handle<JSProxy> proxy,
|
| Handle<Name> name,
|
| DeleteMode mode);
|
|
|