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

Unified Diff: src/api.cc

Issue 765883003: new api for adding indexed interceptors (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « include/v8.h ('k') | test/cctest/test-api.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/api.cc
diff --git a/src/api.cc b/src/api.cc
index cc0f70bf318c5f57fca3e49c5d5c9d7daaf9a3ff..c28cec41854d5bf613d58c4748d33cb0117d492e 100644
--- a/src/api.cc
+++ b/src/api.cc
@@ -1335,13 +1335,8 @@ void ObjectTemplate::SetAccessCheckCallbacks(
}
-void ObjectTemplate::SetIndexedPropertyHandler(
- IndexedPropertyGetterCallback getter,
- IndexedPropertySetterCallback setter,
- IndexedPropertyQueryCallback query,
- IndexedPropertyDeleterCallback remover,
- IndexedPropertyEnumeratorCallback enumerator,
- Handle<Value> data) {
+void ObjectTemplate::SetHandler(
+ const IndexedPropertyHandlerConfiguration& config) {
i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
ENTER_V8(isolate);
i::HandleScope scope(isolate);
@@ -1354,13 +1349,16 @@ void ObjectTemplate::SetIndexedPropertyHandler(
i::Handle<i::InterceptorInfo> obj =
i::Handle<i::InterceptorInfo>::cast(struct_obj);
- if (getter != 0) SET_FIELD_WRAPPED(obj, set_getter, getter);
- if (setter != 0) SET_FIELD_WRAPPED(obj, set_setter, setter);
- if (query != 0) SET_FIELD_WRAPPED(obj, set_query, query);
- if (remover != 0) SET_FIELD_WRAPPED(obj, set_deleter, remover);
- if (enumerator != 0) SET_FIELD_WRAPPED(obj, set_enumerator, enumerator);
+ if (config.getter != 0) SET_FIELD_WRAPPED(obj, set_getter, config.getter);
+ if (config.setter != 0) SET_FIELD_WRAPPED(obj, set_setter, config.setter);
+ if (config.query != 0) SET_FIELD_WRAPPED(obj, set_query, config.query);
+ if (config.deleter != 0) SET_FIELD_WRAPPED(obj, set_deleter, config.deleter);
+ if (config.enumerator != 0) {
+ SET_FIELD_WRAPPED(obj, set_enumerator, config.enumerator);
+ }
obj->set_flags(0);
+ v8::Local<v8::Value> data = config.data;
if (data.IsEmpty()) {
data = v8::Undefined(reinterpret_cast<v8::Isolate*>(isolate));
}
« no previous file with comments | « include/v8.h ('k') | test/cctest/test-api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698