Chromium Code Reviews| Index: src/objects.cc |
| diff --git a/src/objects.cc b/src/objects.cc |
| index 1e5315b978e67fb8e9314cd993a5184f60ff3269..80bfd29fb9a7b778212e660056aba1cff1c8f5bc 100644 |
| --- a/src/objects.cc |
| +++ b/src/objects.cc |
| @@ -5995,7 +5995,7 @@ Object* JSReceiver::DefineProperties(Isolate* isolate, Handle<Object> object, |
| // static |
| -bool JSReceiver::DefineOwnProperty(Isolate* isolate, Handle<JSObject> object, |
| +bool JSReceiver::DefineOwnProperty(Isolate* isolate, Handle<JSReceiver> object, |
| Handle<Object> key, PropertyDescriptor* desc, |
| ShouldThrow should_throw) { |
| if (object->IsJSArray()) { |
| @@ -6004,12 +6004,14 @@ bool JSReceiver::DefineOwnProperty(Isolate* isolate, Handle<JSObject> object, |
| } |
| // TODO(jkummerow): Support Modules (ES6 9.4.6.6) |
| // TODO(jkummerow): Support Proxies (ES6 9.5.6) |
| + if (!object->IsJSObject()) return true; |
|
Jakob Kummerow
2015/10/23 12:03:42
nit: wouldn't "return false" be more appropriate?
neis
2015/10/29 15:17:25
I don't want to return false without also checking
|
| // OrdinaryDefineOwnProperty, by virtue of calling |
| // DefineOwnPropertyIgnoreAttributes, can handle arguments (ES6 9.4.4.2) |
| // and IntegerIndexedExotics (ES6 9.4.5.3), with one exception: |
| // TODO(jkummerow): Setting an indexed accessor on a typed array should throw. |
| - return OrdinaryDefineOwnProperty(isolate, object, key, desc, should_throw); |
| + return OrdinaryDefineOwnProperty(isolate, Handle<JSObject>::cast(object), key, |
| + desc, should_throw); |
| } |