Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(829)

Unified Diff: src/objects.h

Issue 2807333003: [api] Add DefineProperty() method that skips interceptors.
Patch Set: Extend DefineProperty API Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/objects.h
diff --git a/src/objects.h b/src/objects.h
index d0b9dc2832ed855bd70b0bd1377919f72da0eb15..1cb3b47e1bc43604994c6b775b49daf2fde6b437 100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -1960,17 +1960,18 @@ class JSReceiver: public HeapObject {
Handle<JSReceiver> object, uint32_t index,
LanguageMode language_mode = SLOPPY);
- MUST_USE_RESULT static Object* DefineProperty(Isolate* isolate,
- Handle<Object> object,
- Handle<Object> name,
- Handle<Object> attributes);
+ MUST_USE_RESULT static Object* DefineProperty(
+ Isolate* isolate, Handle<Object> object, Handle<Object> name,
+ Handle<Object> attributes, bool bypass_interceptor = false);
+
MUST_USE_RESULT static MaybeHandle<Object> DefineProperties(
Isolate* isolate, Handle<Object> object, Handle<Object> properties);
// "virtual" dispatcher to the correct [[DefineOwnProperty]] implementation.
MUST_USE_RESULT static Maybe<bool> DefineOwnProperty(
Isolate* isolate, Handle<JSReceiver> object, Handle<Object> key,
- PropertyDescriptor* desc, ShouldThrow should_throw);
+ PropertyDescriptor* desc, ShouldThrow should_throw,
+ bool bypass_interceptor = false);
// ES6 7.3.4 (when passed DONT_THROW)
MUST_USE_RESULT static Maybe<bool> CreateDataProperty(
@@ -1979,9 +1980,11 @@ class JSReceiver: public HeapObject {
// ES6 9.1.6.1
MUST_USE_RESULT static Maybe<bool> OrdinaryDefineOwnProperty(
Isolate* isolate, Handle<JSObject> object, Handle<Object> key,
- PropertyDescriptor* desc, ShouldThrow should_throw);
+ PropertyDescriptor* desc, ShouldThrow should_throw,
+ bool bypass_interceptor = false);
MUST_USE_RESULT static Maybe<bool> OrdinaryDefineOwnProperty(
LookupIterator* it, PropertyDescriptor* desc, ShouldThrow should_throw);
+
// ES6 9.1.6.2
MUST_USE_RESULT static Maybe<bool> IsCompatiblePropertyDescriptor(
Isolate* isolate, bool extensible, PropertyDescriptor* desc,
@@ -10146,7 +10149,8 @@ class JSProxy: public JSReceiver {
// ES6 9.5.6
MUST_USE_RESULT static Maybe<bool> DefineOwnProperty(
Isolate* isolate, Handle<JSProxy> object, Handle<Object> key,
- PropertyDescriptor* desc, ShouldThrow should_throw);
+ PropertyDescriptor* desc, ShouldThrow should_throw,
+ bool bypass_interceptor = false);
// ES6 9.5.7
MUST_USE_RESULT static Maybe<bool> HasProperty(Isolate* isolate,
@@ -10627,7 +10631,8 @@ class JSTypedArray: public JSArrayBufferView {
// ES6 9.4.5.3
MUST_USE_RESULT static Maybe<bool> DefineOwnProperty(
Isolate* isolate, Handle<JSTypedArray> o, Handle<Object> key,
- PropertyDescriptor* desc, ShouldThrow should_throw);
+ PropertyDescriptor* desc, ShouldThrow should_throw,
+ bool bypass_interceptor = false);
DECLARE_CAST(JSTypedArray)
@@ -10745,7 +10750,8 @@ class JSArray: public JSObject {
// 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);
+ PropertyDescriptor* desc, ShouldThrow should_throw,
+ bool bypass_interceptor = false);
static bool AnythingToArrayLength(Isolate* isolate,
Handle<Object> length_object,
@@ -10753,7 +10759,8 @@ class JSArray: public JSObject {
MUST_USE_RESULT static Maybe<bool> ArraySetLength(Isolate* isolate,
Handle<JSArray> a,
PropertyDescriptor* desc,
- ShouldThrow should_throw);
+ ShouldThrow should_throw,
+ bool bypass_interceptor);
// Checks whether the Array has the current realm's Array.prototype as its
// prototype. This function is best-effort and only gives a conservative

Powered by Google App Engine
This is Rietveld 408576698