aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/test-api-interceptors.cc
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2018-03-07 08:54:53 +0100
committerMichaël Zasso <targos@protonmail.com>2018-03-07 16:48:52 +0100
commit88786fecff336342a56e6f2e7ff3b286be716e47 (patch)
tree92e6ba5b8ac8dae1a058988d20c9d27bfa654390 /deps/v8/test/cctest/test-api-interceptors.cc
parent4e86f9b5ab83cbabf43839385bf383e6a7ef7d19 (diff)
downloadandroid-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.tar.gz
android-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.tar.bz2
android-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.zip
deps: update V8 to 6.5.254.31
PR-URL: https://github.com/nodejs/node/pull/18453 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Yang Guo <yangguo@chromium.org> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Diffstat (limited to 'deps/v8/test/cctest/test-api-interceptors.cc')
-rw-r--r--deps/v8/test/cctest/test-api-interceptors.cc46
1 files changed, 18 insertions, 28 deletions
diff --git a/deps/v8/test/cctest/test-api-interceptors.cc b/deps/v8/test/cctest/test-api-interceptors.cc
index 63f3bc42fb..fd811abffe 100644
--- a/deps/v8/test/cctest/test-api-interceptors.cc
+++ b/deps/v8/test/cctest/test-api-interceptors.cc
@@ -98,10 +98,10 @@ void SymbolAccessorSetter(Local<Name> name, Local<Value> value,
SimpleAccessorSetter(Local<String>::Cast(sym->Name()), value, info);
}
-void StringInterceptorGetter(
- Local<String> name,
- const v8::PropertyCallbackInfo<v8::Value>&
- info) { // Intercept names that start with 'interceptor_'.
+void InterceptorGetter(Local<Name> generic_name,
+ const v8::PropertyCallbackInfo<v8::Value>& info) {
+ if (generic_name->IsSymbol()) return;
+ Local<String> name = Local<String>::Cast(generic_name);
String::Utf8Value utf8(info.GetIsolate(), name);
char* name_str = *utf8;
char prefix[] = "interceptor_";
@@ -117,9 +117,10 @@ void StringInterceptorGetter(
.ToLocalChecked());
}
-
-void StringInterceptorSetter(Local<String> name, Local<Value> value,
- const v8::PropertyCallbackInfo<v8::Value>& info) {
+void InterceptorSetter(Local<Name> generic_name, Local<Value> value,
+ const v8::PropertyCallbackInfo<v8::Value>& info) {
+ if (generic_name->IsSymbol()) return;
+ Local<String> name = Local<String>::Cast(generic_name);
// Intercept accesses that set certain integer values, for which the name does
// not start with 'accessor_'.
String::Utf8Value utf8(info.GetIsolate(), name);
@@ -140,18 +141,6 @@ void StringInterceptorSetter(Local<String> name, Local<Value> value,
}
}
-void InterceptorGetter(Local<Name> generic_name,
- const v8::PropertyCallbackInfo<v8::Value>& info) {
- if (generic_name->IsSymbol()) return;
- StringInterceptorGetter(Local<String>::Cast(generic_name), info);
-}
-
-void InterceptorSetter(Local<Name> generic_name, Local<Value> value,
- const v8::PropertyCallbackInfo<v8::Value>& info) {
- if (generic_name->IsSymbol()) return;
- StringInterceptorSetter(Local<String>::Cast(generic_name), value, info);
-}
-
void GenericInterceptorGetter(Local<Name> generic_name,
const v8::PropertyCallbackInfo<v8::Value>& info) {
Local<String> str;
@@ -198,19 +187,20 @@ void AddAccessor(Local<FunctionTemplate> templ, Local<String> name,
templ->PrototypeTemplate()->SetAccessor(name, getter, setter);
}
-void AddInterceptor(Local<FunctionTemplate> templ,
- v8::NamedPropertyGetterCallback getter,
- v8::NamedPropertySetterCallback setter) {
- templ->InstanceTemplate()->SetNamedPropertyHandler(getter, setter);
-}
-
-
void AddAccessor(Local<FunctionTemplate> templ, Local<Name> name,
v8::AccessorNameGetterCallback getter,
v8::AccessorNameSetterCallback setter) {
templ->PrototypeTemplate()->SetAccessor(name, getter, setter);
}
+void AddStringOnlyInterceptor(Local<FunctionTemplate> templ,
+ v8::GenericNamedPropertyGetterCallback getter,
+ v8::GenericNamedPropertySetterCallback setter) {
+ templ->InstanceTemplate()->SetHandler(v8::NamedPropertyHandlerConfiguration(
+ getter, setter, nullptr, nullptr, nullptr, Local<v8::Value>(),
+ v8::PropertyHandlerFlags::kOnlyInterceptStrings));
+}
+
void AddInterceptor(Local<FunctionTemplate> templ,
v8::GenericNamedPropertyGetterCallback getter,
v8::GenericNamedPropertySetterCallback setter) {
@@ -1517,7 +1507,7 @@ THREADED_TEST(LegacyInterceptorDoesNotSeeSymbols) {
child->Inherit(parent);
AddAccessor(parent, age, SymbolAccessorGetter, SymbolAccessorSetter);
- AddInterceptor(child, StringInterceptorGetter, StringInterceptorSetter);
+ AddStringOnlyInterceptor(child, InterceptorGetter, InterceptorSetter);
env->Global()
->Set(env.local(), v8_str("Child"),
@@ -4387,7 +4377,7 @@ THREADED_TEST(Regress625155) {
CompileRun(
"Number.prototype.__proto__ = new Bug;"
"var x;"
- "x = 0xdead;"
+ "x = 0xDEAD;"
"x.boom = 0;"
"x = 's';"
"x.boom = 0;"