Replace deprecated SetNamedPropertyHandler

Replace v8::SetNamedPropertyHandler() with SetHandler() and
the appropriate flag set.

Change-Id: Ia06311cbea4ab21903d4ac4fe115eab6f0983c0d
Reviewed-on: https://pdfium-review.googlesource.com/28930
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
diff --git a/fxjs/cfxjs_engine.cpp b/fxjs/cfxjs_engine.cpp
index 927d4a7..561a0a3 100644
--- a/fxjs/cfxjs_engine.cpp
+++ b/fxjs/cfxjs_engine.cpp
@@ -377,16 +377,19 @@
 
 void CFXJS_Engine::DefineObjAllProperties(
     int nObjDefnID,
-    v8::NamedPropertyQueryCallback pPropQurey,
-    v8::NamedPropertyGetterCallback pPropGet,
-    v8::NamedPropertySetterCallback pPropPut,
-    v8::NamedPropertyDeleterCallback pPropDel) {
+    v8::GenericNamedPropertyQueryCallback pPropQurey,
+    v8::GenericNamedPropertyGetterCallback pPropGet,
+    v8::GenericNamedPropertySetterCallback pPropPut,
+    v8::GenericNamedPropertyDeleterCallback pPropDel) {
   v8::Isolate::Scope isolate_scope(GetIsolate());
   v8::HandleScope handle_scope(GetIsolate());
   CFXJS_ObjDefinition* pObjDef =
       CFXJS_ObjDefinition::ForID(GetIsolate(), nObjDefnID);
-  pObjDef->GetInstanceTemplate()->SetNamedPropertyHandler(pPropGet, pPropPut,
-                                                          pPropQurey, pPropDel);
+  pObjDef->GetInstanceTemplate()->SetHandler(
+      v8::NamedPropertyHandlerConfiguration(
+          pPropGet, pPropPut, pPropQurey, pPropDel, nullptr,
+          v8::Local<v8::Value>(),
+          v8::PropertyHandlerFlags::kOnlyInterceptStrings));
 }
 
 void CFXJS_Engine::DefineObjConst(int nObjDefnID,
diff --git a/fxjs/cfxjs_engine.h b/fxjs/cfxjs_engine.h
index 5f883f7..4f903bd 100644
--- a/fxjs/cfxjs_engine.h
+++ b/fxjs/cfxjs_engine.h
@@ -111,10 +111,10 @@
                          v8::AccessorGetterCallback pPropGet,
                          v8::AccessorSetterCallback pPropPut);
   void DefineObjAllProperties(int nObjDefnID,
-                              v8::NamedPropertyQueryCallback pPropQurey,
-                              v8::NamedPropertyGetterCallback pPropGet,
-                              v8::NamedPropertySetterCallback pPropPut,
-                              v8::NamedPropertyDeleterCallback pPropDel);
+                              v8::GenericNamedPropertyQueryCallback pPropQurey,
+                              v8::GenericNamedPropertyGetterCallback pPropGet,
+                              v8::GenericNamedPropertySetterCallback pPropPut,
+                              v8::GenericNamedPropertyDeleterCallback pPropDel);
   void DefineObjConst(int nObjDefnID,
                       const char* sConstName,
                       v8::Local<v8::Value> pDefault);
diff --git a/fxjs/cjs_global.cpp b/fxjs/cjs_global.cpp
index 729190f..c8deadf 100644
--- a/fxjs/cjs_global.cpp
+++ b/fxjs/cjs_global.cpp
@@ -147,31 +147,47 @@
 
 // static
 void CJS_Global::queryprop_static(
-    v8::Local<v8::String> property,
+    v8::Local<v8::Name> property,
     const v8::PropertyCallbackInfo<v8::Integer>& info) {
-  JSSpecialPropQuery<CJS_Global>("global", property, info);
+  DCHECK(property->IsString());
+  JSSpecialPropQuery<CJS_Global>(
+      "global",
+      v8::Local<v8::String>::New(info.GetIsolate(), property->ToString()),
+      info);
 }
 
 // static
 void CJS_Global::getprop_static(
-    v8::Local<v8::String> property,
+    v8::Local<v8::Name> property,
     const v8::PropertyCallbackInfo<v8::Value>& info) {
-  JSSpecialPropGet<CJS_Global>("global", property, info);
+  DCHECK(property->IsString());
+  JSSpecialPropGet<CJS_Global>(
+      "global",
+      v8::Local<v8::String>::New(info.GetIsolate(), property->ToString()),
+      info);
 }
 
 // static
 void CJS_Global::putprop_static(
-    v8::Local<v8::String> property,
+    v8::Local<v8::Name> property,
     v8::Local<v8::Value> value,
     const v8::PropertyCallbackInfo<v8::Value>& info) {
-  JSSpecialPropPut<CJS_Global>("global", property, value, info);
+  DCHECK(property->IsString());
+  JSSpecialPropPut<CJS_Global>(
+      "global",
+      v8::Local<v8::String>::New(info.GetIsolate(), property->ToString()),
+      value, info);
 }
 
 // static
 void CJS_Global::delprop_static(
-    v8::Local<v8::String> property,
+    v8::Local<v8::Name> property,
     const v8::PropertyCallbackInfo<v8::Boolean>& info) {
-  JSSpecialPropDel<CJS_Global>("global", property, info);
+  DCHECK(property->IsString());
+  JSSpecialPropDel<CJS_Global>(
+      "global",
+      v8::Local<v8::String>::New(info.GetIsolate(), property->ToString()),
+      info);
 }
 
 // static
diff --git a/fxjs/cjs_global.h b/fxjs/cjs_global.h
index ab905bc..15ef603 100644
--- a/fxjs/cjs_global.h
+++ b/fxjs/cjs_global.h
@@ -22,14 +22,14 @@
   static void DefineAllProperties(CFXJS_Engine* pEngine);
 
   static void queryprop_static(
-      v8::Local<v8::String> property,
+      v8::Local<v8::Name> property,
       const v8::PropertyCallbackInfo<v8::Integer>& info);
-  static void getprop_static(v8::Local<v8::String> property,
+  static void getprop_static(v8::Local<v8::Name> property,
                              const v8::PropertyCallbackInfo<v8::Value>& info);
-  static void putprop_static(v8::Local<v8::String> property,
+  static void putprop_static(v8::Local<v8::Name> property,
                              v8::Local<v8::Value> value,
                              const v8::PropertyCallbackInfo<v8::Value>& info);
-  static void delprop_static(v8::Local<v8::String> property,
+  static void delprop_static(v8::Local<v8::Name> property,
                              const v8::PropertyCallbackInfo<v8::Boolean>& info);
 
   static void setPersistent_static(