diff --git a/fxjs/cjs_global.cpp b/fxjs/cjs_global.cpp
index ea8694f..d9338ab 100644
--- a/fxjs/cjs_global.cpp
+++ b/fxjs/cjs_global.cpp
@@ -113,6 +113,13 @@
   }
 }
 
+template <class T>
+v8::Local<v8::String> GetV8StringFromProperty(v8::Local<v8::Name> property,
+                                              const T& info) {
+  return property->ToString(info.GetIsolate()->GetCurrentContext())
+      .ToLocalChecked();
+}
+
 }  // namespace
 
 CJS_Global::JSGlobalData::JSGlobalData()
@@ -147,7 +154,7 @@
   JSSpecialPropQuery<CJS_Global>(
       "global",
       v8::Local<v8::String>::New(info.GetIsolate(),
-                                 property->ToString(info.GetIsolate())),
+                                 GetV8StringFromProperty(property, info)),
       info);
 }
 
@@ -159,7 +166,7 @@
   JSSpecialPropGet<CJS_Global>(
       "global",
       v8::Local<v8::String>::New(info.GetIsolate(),
-                                 property->ToString(info.GetIsolate())),
+                                 GetV8StringFromProperty(property, info)),
       info);
 }
 
@@ -172,7 +179,7 @@
   JSSpecialPropPut<CJS_Global>(
       "global",
       v8::Local<v8::String>::New(info.GetIsolate(),
-                                 property->ToString(info.GetIsolate())),
+                                 GetV8StringFromProperty(property, info)),
       value, info);
 }
 
@@ -184,7 +191,7 @@
   JSSpecialPropDel<CJS_Global>(
       "global",
       v8::Local<v8::String>::New(info.GetIsolate(),
-                                 property->ToString(info.GetIsolate())),
+                                 GetV8StringFromProperty(property, info)),
       info);
 }
 
@@ -210,7 +217,10 @@
 
 CJS_Global::CJS_Global(v8::Local<v8::Object> pObject, CJS_Runtime* pRuntime)
     : CJS_Object(pObject, pRuntime) {
-  Initial(GetRuntime()->GetFormFillEnv());
+  CPDFSDK_FormFillEnvironment* pFormFillEnv = GetRuntime()->GetFormFillEnv();
+  m_pFormFillEnv.Reset(pFormFillEnv);
+  m_pGlobalData = CJS_GlobalData::GetRetainedInstance(pFormFillEnv);
+  UpdateGlobalPersistentVariables();
 }
 
 CJS_Global::~CJS_Global() {
@@ -218,12 +228,6 @@
   m_pGlobalData->Release();
 }
 
-void CJS_Global::Initial(CPDFSDK_FormFillEnvironment* pFormFillEnv) {
-  m_pFormFillEnv.Reset(pFormFillEnv);
-  m_pGlobalData = CJS_GlobalData::GetRetainedInstance(pFormFillEnv);
-  UpdateGlobalPersistentVariables();
-}
-
 CJS_Result CJS_Global::QueryProperty(const wchar_t* propname) {
   if (WideString(propname) != L"setPersistent")
     return CJS_Result::Failure(JSMessage::kUnknownProperty);
diff --git a/fxjs/cjs_global.h b/fxjs/cjs_global.h
index 6ecd6c0..454ddf9 100644
--- a/fxjs/cjs_global.h
+++ b/fxjs/cjs_global.h
@@ -40,7 +40,6 @@
   ~CJS_Global() override;
 
   CJS_Result DelProperty(CJS_Runtime* pRuntime, const wchar_t* propname);
-  void Initial(CPDFSDK_FormFillEnvironment* pFormFillEnv);
 
   CJS_Result setPersistent(CJS_Runtime* pRuntime,
                            const std::vector<v8::Local<v8::Value>>& params);
