Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index d0b9dc2832ed855bd70b0bd1377919f72da0eb15..340dc38ed616d3f7fb3eed4206586a0d167f2e5b 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -1964,6 +1964,11 @@ class JSReceiver: public HeapObject { |
Handle<Object> object, |
Handle<Object> name, |
Handle<Object> attributes); |
+ |
+ MUST_USE_RESULT static Object* DefinePropertyWithoutInterceptors( |
+ Isolate* isolate, Handle<Object> object, Handle<Object> name, |
+ Handle<Object> attributes); |
+ |
MUST_USE_RESULT static MaybeHandle<Object> DefineProperties( |
Isolate* isolate, Handle<Object> object, Handle<Object> properties); |
@@ -1972,6 +1977,12 @@ class JSReceiver: public HeapObject { |
Isolate* isolate, Handle<JSReceiver> object, Handle<Object> key, |
PropertyDescriptor* desc, ShouldThrow should_throw); |
+ // "virtual" dispatcher to the correct [[DefineOwnPropertyWithoutIntercept]] |
+ // implementation. |
+ MUST_USE_RESULT static Maybe<bool> DefineOwnPropertyWithoutIntercept( |
+ Isolate* isolate, Handle<JSReceiver> object, Handle<Object> key, |
+ PropertyDescriptor* desc, ShouldThrow should_throw); |
Franzi
2017/04/12 08:58:17
I think you call this function only with dont_thro
|
+ |
// ES6 7.3.4 (when passed DONT_THROW) |
MUST_USE_RESULT static Maybe<bool> CreateDataProperty( |
LookupIterator* it, Handle<Object> value, ShouldThrow should_throw); |
@@ -1982,6 +1993,11 @@ class JSReceiver: public HeapObject { |
PropertyDescriptor* desc, ShouldThrow should_throw); |
MUST_USE_RESULT static Maybe<bool> OrdinaryDefineOwnProperty( |
LookupIterator* it, PropertyDescriptor* desc, ShouldThrow should_throw); |
+ |
+ MUST_USE_RESULT static Maybe<bool> OrdinaryDefineOwnPropertyWithoutIntercept( |
+ Isolate* isolate, Handle<JSObject> object, Handle<Object> key, |
+ PropertyDescriptor* desc, ShouldThrow should_throw); |
+ |
// ES6 9.1.6.2 |
MUST_USE_RESULT static Maybe<bool> IsCompatiblePropertyDescriptor( |
Isolate* isolate, bool extensible, PropertyDescriptor* desc, |
@@ -10148,6 +10164,10 @@ class JSProxy: public JSReceiver { |
Isolate* isolate, Handle<JSProxy> object, Handle<Object> key, |
PropertyDescriptor* desc, ShouldThrow should_throw); |
+ MUST_USE_RESULT static Maybe<bool> DefineOwnPropertyWithoutIntercept( |
+ 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, |
Handle<JSProxy> proxy, |
@@ -10629,6 +10649,10 @@ class JSTypedArray: public JSArrayBufferView { |
Isolate* isolate, Handle<JSTypedArray> o, Handle<Object> key, |
PropertyDescriptor* desc, ShouldThrow should_throw); |
+ MUST_USE_RESULT static Maybe<bool> DefineOwnPropertyWithoutIntercept( |
+ Isolate* isolate, Handle<JSTypedArray> o, Handle<Object> key, |
+ PropertyDescriptor* desc, ShouldThrow should_throw); |
+ |
DECLARE_CAST(JSTypedArray) |
ExternalArrayType type(); |
@@ -10747,6 +10771,10 @@ class JSArray: public JSObject { |
Isolate* isolate, Handle<JSArray> o, Handle<Object> name, |
PropertyDescriptor* desc, ShouldThrow should_throw); |
+ MUST_USE_RESULT static Maybe<bool> DefineOwnPropertyWithoutIntercept( |
+ 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); |