diff --git a/DEPS b/DEPS
index 917514d..97d92cd 100644
--- a/DEPS
+++ b/DEPS
@@ -13,12 +13,12 @@
   'gen_library_loader_revision': '916d4acd8b2cde67a390737dfba90b3c37de23a1',
   'gmock_revision': '29763965ab52f24565299976b936d1265cb6a271',
   'gtest_revision': '8245545b6dc9c4703e6496d1efd19e975ad2b038',
-  'icu_revision': 'c291cde264469b20ca969ce8832088acb21e0c48',
+  'icu_revision': 'ffa4b6704cf5cc9fec9485731f24a05b2ba94bca',
   'pdfium_tests_revision': '6c769320872e6ca82da4adaec1a497237f71b543',
   'skia_revision': '7942f22c607caf826a6a609b89338a569d0a30e7',
   'tools_memory_revision': '427f10475e1a8d72424c29d00bf689122b738e5d',
   'trace_event_revision': '54b8455be9505c2cb0cf5c26bb86739c236471aa',
-  'v8_revision': 'cec0ed0f77e91bfd49bbd298ab58f77375eecead',
+  'v8_revision': '820a23aade5e74a92d794e05a0c2b3597f0da4b5',
 }
 
 deps = {
diff --git a/build_gyp/standalone.gypi b/build_gyp/standalone.gypi
index 1affc3c..cab5b1a 100644
--- a/build_gyp/standalone.gypi
+++ b/build_gyp/standalone.gypi
@@ -52,6 +52,7 @@
     'werror%': '-Werror',
     'v8_optimized_debug%': 0,
     'v8_use_external_startup_data%': 0,
+    'icu_use_data_file_flag%': 1,
     'icu_gyp_path': '../third_party/icu/icu.gyp',
     'libjpeg_gyp_path': '../third_party/third_party.gyp',
     'conditions': [
diff --git a/fpdfsdk/jsapi/fxjs_v8.cpp b/fpdfsdk/jsapi/fxjs_v8.cpp
index 3297b4b..ddeb28f 100644
--- a/fpdfsdk/jsapi/fxjs_v8.cpp
+++ b/fpdfsdk/jsapi/fxjs_v8.cpp
@@ -65,6 +65,12 @@
 
     v8::Local<v8::FunctionTemplate> fun = v8::FunctionTemplate::New(isolate);
     fun->InstanceTemplate()->SetInternalFieldCount(2);
+    if (eObjType == FXJSOBJTYPE_GLOBAL) {
+      fun->InstanceTemplate()->Set(
+          v8::Symbol::GetToStringTag(isolate),
+          v8::String::NewFromUtf8(isolate, "global", v8::NewStringType::kNormal)
+              .ToLocalChecked());
+    }
     m_FunctionTemplate.Reset(isolate, fun);
 
     v8::Local<v8::Signature> sig = v8::Signature::New(isolate, fun);
@@ -108,9 +114,14 @@
       return pObjDef->GetInstanceTemplate();
   }
   if (!g_DefaultGlobalObjectTemplate) {
-    g_DefaultGlobalObjectTemplate = new v8::Global<v8::ObjectTemplate>;
-    g_DefaultGlobalObjectTemplate->Reset(pIsolate,
-                                         v8::ObjectTemplate::New(pIsolate));
+    v8::Local<v8::ObjectTemplate> hGlobalTemplate =
+        v8::ObjectTemplate::New(pIsolate);
+    hGlobalTemplate->Set(
+        v8::Symbol::GetToStringTag(pIsolate),
+        v8::String::NewFromUtf8(pIsolate, "global", v8::NewStringType::kNormal)
+            .ToLocalChecked());
+    g_DefaultGlobalObjectTemplate =
+        new v8::Global<v8::ObjectTemplate>(pIsolate, hGlobalTemplate);
   }
   return g_DefaultGlobalObjectTemplate->Get(pIsolate);
 }
diff --git a/fxjse/context.cpp b/fxjse/context.cpp
index 3ecc3e2..9c43830 100644
--- a/fxjse/context.cpp
+++ b/fxjse/context.cpp
@@ -141,6 +141,10 @@
     hObjectTemplate = v8::ObjectTemplate::New(pIsolate);
     hObjectTemplate->SetInternalFieldCount(1);
   }
+  hObjectTemplate->Set(
+      v8::Symbol::GetToStringTag(pIsolate),
+      v8::String::NewFromUtf8(pIsolate, "global", v8::NewStringType::kNormal)
+          .ToLocalChecked());
   v8::Local<v8::Context> hNewContext =
       v8::Context::New(pIsolate, NULL, hObjectTemplate);
   v8::Local<v8::Context> hRootContext = v8::Local<v8::Context>::New(
diff --git a/fxjse/runtime.cpp b/fxjse/runtime.cpp
index 29814bd..b5f2f33 100644
--- a/fxjse/runtime.cpp
+++ b/fxjse/runtime.cpp
@@ -79,8 +79,14 @@
   CFXJSE_ScopeUtil_IsolateHandle scope(pIsolate);
   v8::Local<v8::FunctionTemplate> hFuncTemplate =
       v8::FunctionTemplate::New(pIsolate);
+  v8::Local<v8::ObjectTemplate> hGlobalTemplate =
+      hFuncTemplate->InstanceTemplate();
+  hGlobalTemplate->Set(
+      v8::Symbol::GetToStringTag(pIsolate),
+      v8::String::NewFromUtf8(pIsolate, "global", v8::NewStringType::kNormal)
+          .ToLocalChecked());
   v8::Local<v8::Context> hContext =
-      v8::Context::New(pIsolate, 0, hFuncTemplate->InstanceTemplate());
+      v8::Context::New(pIsolate, 0, hGlobalTemplate);
   hContext->SetSecurityToken(v8::External::New(pIsolate, pIsolate));
   pRuntimeData->m_hRootContextGlobalTemplate.Reset(pIsolate, hFuncTemplate);
   pRuntimeData->m_hRootContext.Reset(pIsolate, hContext);
