| Index: src/objects.h | 
| diff --git a/src/objects.h b/src/objects.h | 
| index f860eb7e20055f686eb39cb39ad7b0d39208b452..8960f92b7f9d0cd9b68339b9bf878f309ecc908e 100644 | 
| --- a/src/objects.h | 
| +++ b/src/objects.h | 
| @@ -1830,42 +1830,37 @@ class JSReceiver: public HeapObject { | 
| Handle<Object> properties); | 
|  | 
| // "virtual" dispatcher to the correct [[DefineOwnProperty]] implementation. | 
| -  static bool DefineOwnProperty(Isolate* isolate, Handle<JSReceiver> object, | 
| -                                Handle<Object> key, PropertyDescriptor* desc, | 
| -                                ShouldThrow should_throw); | 
| +  MUST_USE_RESULT static Maybe<bool> DefineOwnProperty( | 
| +      Isolate* isolate, Handle<JSReceiver> object, Handle<Object> key, | 
| +      PropertyDescriptor* desc, ShouldThrow should_throw); | 
|  | 
| // ES6 7.3.4 (when passed DONT_THROW) | 
| MUST_USE_RESULT static Maybe<bool> CreateDataProperty( | 
| LookupIterator* it, Handle<Object> value, ShouldThrow should_throw); | 
|  | 
| // ES6 9.1.6.1 | 
| -  static bool OrdinaryDefineOwnProperty(Isolate* isolate, | 
| -                                        Handle<JSObject> object, | 
| -                                        Handle<Object> key, | 
| -                                        PropertyDescriptor* desc, | 
| -                                        ShouldThrow should_throw); | 
| -  static bool OrdinaryDefineOwnProperty(LookupIterator* it, | 
| -                                        PropertyDescriptor* desc, | 
| -                                        ShouldThrow should_throw); | 
| +  MUST_USE_RESULT static Maybe<bool> OrdinaryDefineOwnProperty( | 
| +      Isolate* isolate, Handle<JSObject> object, Handle<Object> key, | 
| +      PropertyDescriptor* desc, ShouldThrow should_throw); | 
| +  MUST_USE_RESULT static Maybe<bool> OrdinaryDefineOwnProperty( | 
| +      LookupIterator* it, PropertyDescriptor* desc, ShouldThrow should_throw); | 
| // ES6 9.1.6.2 | 
| -  static bool IsCompatiblePropertyDescriptor(Isolate* isolate, bool extensible, | 
| -                                             PropertyDescriptor* desc, | 
| -                                             PropertyDescriptor* current, | 
| -                                             Handle<Name> property_name); | 
| +  MUST_USE_RESULT static Maybe<bool> IsCompatiblePropertyDescriptor( | 
| +      Isolate* isolate, bool extensible, PropertyDescriptor* desc, | 
| +      PropertyDescriptor* current, Handle<Name> property_name); | 
| // ES6 9.1.6.3 | 
| // |it| can be NULL in cases where the ES spec passes |undefined| as the | 
| // receiver. Exactly one of |it| and |property_name| must be provided. | 
| -  static bool ValidateAndApplyPropertyDescriptor( | 
| +  MUST_USE_RESULT static Maybe<bool> ValidateAndApplyPropertyDescriptor( | 
| Isolate* isolate, LookupIterator* it, bool extensible, | 
| PropertyDescriptor* desc, PropertyDescriptor* current, | 
| ShouldThrow should_throw, Handle<Name> property_name = Handle<Name>()); | 
|  | 
| -  static bool GetOwnPropertyDescriptor(Isolate* isolate, | 
| -                                       Handle<JSReceiver> object, | 
| -                                       Handle<Object> key, | 
| -                                       PropertyDescriptor* desc); | 
| -  static bool GetOwnPropertyDescriptor(LookupIterator* it, | 
| -                                       PropertyDescriptor* desc); | 
| +  MUST_USE_RESULT static Maybe<bool> GetOwnPropertyDescriptor( | 
| +      Isolate* isolate, Handle<JSReceiver> object, Handle<Object> key, | 
| +      PropertyDescriptor* desc); | 
| +  MUST_USE_RESULT static Maybe<bool> GetOwnPropertyDescriptor( | 
| +      LookupIterator* it, PropertyDescriptor* desc); | 
|  | 
| typedef PropertyAttributes IntegrityLevel; | 
|  | 
| @@ -9519,14 +9514,14 @@ class JSProxy: public JSReceiver { | 
| Handle<JSProxy> proxy, ShouldThrow should_throw); | 
|  | 
| // ES6 9.5.5 | 
| -  static bool GetOwnPropertyDescriptor(Isolate* isolate, Handle<JSProxy> proxy, | 
| -                                       Handle<Name> name, | 
| -                                       PropertyDescriptor* desc); | 
| +  MUST_USE_RESULT static Maybe<bool> GetOwnPropertyDescriptor( | 
| +      Isolate* isolate, Handle<JSProxy> proxy, Handle<Name> name, | 
| +      PropertyDescriptor* desc); | 
|  | 
| // ES6 9.5.6 | 
| -  static bool DefineOwnProperty(Isolate* isolate, Handle<JSProxy> object, | 
| -                                Handle<Object> key, PropertyDescriptor* desc, | 
| -                                ShouldThrow should_throw); | 
| +  MUST_USE_RESULT static Maybe<bool> DefineOwnProperty( | 
| +      Isolate* isolate, Handle<JSProxy> object, Handle<Object> key, | 
| +      PropertyDescriptor* desc, ShouldThrow should_throw); | 
|  | 
| // ES6 9.5.7 | 
| MUST_USE_RESULT static Maybe<bool> HasProperty(Isolate* isolate, | 
| @@ -9550,13 +9545,15 @@ class JSProxy: public JSReceiver { | 
| Handle<JSProxy> proxy, Handle<Name> name, LanguageMode language_mode); | 
|  | 
| // ES6 9.5.11 | 
| -  static bool Enumerate(Isolate* isolate, Handle<JSReceiver> receiver, | 
| -                        Handle<JSProxy> proxy, KeyAccumulator* accumulator); | 
| +  MUST_USE_RESULT static Maybe<bool> Enumerate(Isolate* isolate, | 
| +                                               Handle<JSReceiver> receiver, | 
| +                                               Handle<JSProxy> proxy, | 
| +                                               KeyAccumulator* accumulator); | 
|  | 
| // ES6 9.5.12 | 
| -  static bool OwnPropertyKeys(Isolate* isolate, Handle<JSReceiver> receiver, | 
| -                              Handle<JSProxy> proxy, PropertyFilter filter, | 
| -                              KeyAccumulator* accumulator); | 
| +  MUST_USE_RESULT static Maybe<bool> OwnPropertyKeys( | 
| +      Isolate* isolate, Handle<JSReceiver> receiver, Handle<JSProxy> proxy, | 
| +      PropertyFilter filter, KeyAccumulator* accumulator); | 
|  | 
| MUST_USE_RESULT static Maybe<PropertyAttributes> GetPropertyAttributes( | 
| LookupIterator* it); | 
| @@ -9580,11 +9577,6 @@ class JSProxy: public JSReceiver { | 
| static Handle<Smi> GetOrCreateIdentityHash(Handle<JSProxy> proxy); | 
|  | 
| private: | 
| -  friend class JSReceiver; | 
| - | 
| -  MUST_USE_RESULT static MaybeHandle<Object> GetTrap(Handle<JSProxy> proxy, | 
| -                                                     Handle<String> trap); | 
| - | 
| DISALLOW_IMPLICIT_CONSTRUCTORS(JSProxy); | 
| }; | 
|  | 
| @@ -10063,16 +10055,18 @@ class JSArray: public JSObject { | 
| static inline void SetContent(Handle<JSArray> array, | 
| Handle<FixedArrayBase> storage); | 
|  | 
| -  static bool DefineOwnProperty(Isolate* isolate, Handle<JSArray> o, | 
| -                                Handle<Object> name, PropertyDescriptor* desc, | 
| -                                ShouldThrow should_throw); | 
| +  // ES6 9.4.2.1 | 
| +  MUST_USE_RESULT static Maybe<bool> DefineOwnProperty( | 
| +      Isolate* isolate, Handle<JSArray> o, Handle<Object> name, | 
| +      PropertyDescriptor* desc, ShouldThrow should_throw); | 
|  | 
| static bool AnythingToArrayLength(Isolate* isolate, | 
| Handle<Object> length_object, | 
| uint32_t* output); | 
| -  static bool ArraySetLength(Isolate* isolate, Handle<JSArray> a, | 
| -                             PropertyDescriptor* desc, | 
| -                             ShouldThrow should_throw); | 
| +  MUST_USE_RESULT static Maybe<bool> ArraySetLength(Isolate* isolate, | 
| +                                                    Handle<JSArray> a, | 
| +                                                    PropertyDescriptor* desc, | 
| +                                                    ShouldThrow should_throw); | 
|  | 
| DECLARE_CAST(JSArray) | 
|  | 
|  |