| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 12f2ee0e5ce980e9009a80d944bb30a92a2b3828..43f2d6e2d975634aac49caeba8e956a7658c2061 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -2129,14 +2129,6 @@ class JSObject: public JSReceiver {
|
| Handle<Object> structure,
|
| Handle<Name> name);
|
|
|
| - MUST_USE_RESULT static MaybeHandle<Object> SetPropertyWithCallback(
|
| - Handle<JSObject> object,
|
| - Handle<Object> structure,
|
| - Handle<Name> name,
|
| - Handle<Object> value,
|
| - Handle<JSObject> holder,
|
| - StrictMode strict_mode);
|
| -
|
| MUST_USE_RESULT static MaybeHandle<Object> SetPropertyWithInterceptor(
|
| Handle<JSObject> object,
|
| Handle<Name> name,
|
| @@ -2153,6 +2145,13 @@ class JSObject: public JSReceiver {
|
| StrictMode strict_mode,
|
| StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED);
|
|
|
| + // 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> SetLocalPropertyIgnoreAttributes(
|
| Handle<JSObject> object,
|
| Handle<Name> key,
|
| @@ -2161,7 +2160,8 @@ class JSObject: public JSReceiver {
|
| ValueType value_type = OPTIMAL_REPRESENTATION,
|
| StoreMode mode = ALLOW_AS_CONSTANT,
|
| ExtensibilityCheck extensibility_check = PERFORM_EXTENSIBILITY_CHECK,
|
| - StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED);
|
| + StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED,
|
| + ExecutableAccessorInfoHandling handling = DEFAULT_HANDLING);
|
|
|
| static inline Handle<String> ExpectedTransitionKey(Handle<Map> map);
|
| static inline Handle<Map> ExpectedTransitionTarget(Handle<Map> map);
|
| @@ -2667,6 +2667,14 @@ class JSObject: public JSReceiver {
|
| static void UpdateAllocationSite(Handle<JSObject> object,
|
| ElementsKind to_kind);
|
|
|
| + MUST_USE_RESULT static MaybeHandle<Object> SetPropertyWithCallback(
|
| + Handle<JSObject> object,
|
| + Handle<Object> structure,
|
| + Handle<Name> name,
|
| + Handle<Object> value,
|
| + Handle<JSObject> holder,
|
| + StrictMode strict_mode);
|
| +
|
| // Used from Object::GetProperty().
|
| MUST_USE_RESULT static MaybeHandle<Object> GetPropertyWithFailedAccessCheck(
|
| Handle<JSObject> object,
|
| @@ -10591,6 +10599,8 @@ class ExecutableAccessorInfo: public AccessorInfo {
|
| static const int kDataOffset = kSetterOffset + kPointerSize;
|
| static const int kSize = kDataOffset + kPointerSize;
|
|
|
| + inline void clear_setter();
|
| +
|
| private:
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(ExecutableAccessorInfo);
|
| };
|
|
|