Index: fpdfsdk/src/jsapi/fxjs_v8.cpp |
diff --git a/fpdfsdk/src/jsapi/fxjs_v8.cpp b/fpdfsdk/src/jsapi/fxjs_v8.cpp |
index 8a5447591058a87bd9df55189fc6d4961fe383ff..2fb3e13064e6641a3d1d227bd34074ca0df048ae 100644 |
--- a/fpdfsdk/src/jsapi/fxjs_v8.cpp |
+++ b/fpdfsdk/src/jsapi/fxjs_v8.cpp |
@@ -335,9 +335,15 @@ void FXJS_ReleaseRuntime(v8::Isolate* pIsolate, |
int maxID = CFXJS_ObjDefinition::MaxID(pIsolate); |
for (int i = 0; i < maxID; ++i) { |
CFXJS_ObjDefinition* pObjDef = CFXJS_ObjDefinition::ForID(pIsolate, i); |
- if (!pObjDef->m_StaticObj.IsEmpty()) { |
- v8::Local<v8::Object> pObj = |
- v8::Local<v8::Object>::New(pIsolate, pObjDef->m_StaticObj); |
+ v8::Local<v8::Object> pObj; |
+ if (pObjDef->m_ObjType == FXJSOBJTYPE_GLOBAL) { |
+ pObj = |
+ context->Global()->GetPrototype()->ToObject(context).ToLocalChecked(); |
+ } else if (!pObjDef->m_StaticObj.IsEmpty()) { |
+ pObj = v8::Local<v8::Object>::New(pIsolate, pObjDef->m_StaticObj); |
+ } |
+ |
+ if (!pObj.IsEmpty()) { |
if (pObjDef->m_pDestructor) |
pObjDef->m_pDestructor(pObj); |
FXJS_FreePrivate(pObj); |