Index: fpdfsdk/javascript/global.cpp |
diff --git a/fpdfsdk/javascript/global.cpp b/fpdfsdk/javascript/global.cpp |
index b305c4104bb23658bc32900823da3a438a7158be..10bab26dd0b3397c75ad8c233870771635e84212 100644 |
--- a/fpdfsdk/javascript/global.cpp |
+++ b/fpdfsdk/javascript/global.cpp |
@@ -81,9 +81,10 @@ FX_BOOL JSGlobalAlternate::DoProperty(IJS_Context* cc, |
const FX_WCHAR* propname, |
CJS_PropValue& vp, |
CFX_WideString& sError) { |
+ CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); |
if (vp.IsSetting()) { |
CFX_ByteString sPropName = CFX_ByteString::FromUnicode(propname); |
- switch (vp.GetType()) { |
+ switch (vp.GetJSValue()->GetType()) { |
case CJS_Value::VT_number: { |
double dData; |
vp >> dData; |
@@ -122,12 +123,12 @@ FX_BOOL JSGlobalAlternate::DoProperty(IJS_Context* cc, |
} else { |
auto it = m_mapGlobal.find(CFX_ByteString::FromUnicode(propname)); |
if (it == m_mapGlobal.end()) { |
- vp.SetNull(); |
+ vp.GetJSValue()->SetNull(pRuntime); |
return TRUE; |
} |
JSGlobalData* pData = it->second; |
if (pData->bDeleted) { |
- vp.SetNull(); |
+ vp.GetJSValue()->SetNull(pRuntime); |
return TRUE; |
} |
switch (pData->nType) { |
@@ -147,7 +148,7 @@ FX_BOOL JSGlobalAlternate::DoProperty(IJS_Context* cc, |
return TRUE; |
} |
case JS_GlobalDataType::NULLOBJ: |
- vp.SetNull(); |
+ vp.GetJSValue()->SetNull(pRuntime); |
return TRUE; |
default: |
break; |
@@ -161,16 +162,17 @@ FX_BOOL JSGlobalAlternate::setPersistent(IJS_Context* cc, |
CJS_Value& vRet, |
CFX_WideString& sError) { |
CJS_Context* pContext = static_cast<CJS_Context*>(cc); |
+ CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); |
if (params.size() != 2) { |
sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); |
return FALSE; |
} |
- auto it = m_mapGlobal.find(params[0].ToCFXByteString()); |
+ auto it = m_mapGlobal.find(params[0].ToCFXByteString(pRuntime->GetIsolate())); |
if (it != m_mapGlobal.end()) { |
JSGlobalData* pData = it->second; |
if (!pData->bDeleted) { |
- pData->bPersistent = params[1].ToBool(); |
+ pData->bPersistent = params[1].ToBool(pRuntime->GetIsolate()); |
return TRUE; |
} |
} |
@@ -271,7 +273,6 @@ void JSGlobalAlternate::ObjectToArray(IJS_Context* cc, |
CJS_GlobalVariableArray& array) { |
v8::Isolate* isolate = pObj->GetIsolate(); |
CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); |
- |
v8::Local<v8::Array> pKeyList = FXJS_GetObjectElementNames(isolate, pObj); |
int nObjElements = pKeyList->Length(); |
for (int i = 0; i < nObjElements; i++) { |
@@ -295,7 +296,8 @@ void JSGlobalAlternate::ObjectToArray(IJS_Context* cc, |
array.Add(pObjElement); |
} break; |
case CJS_Value::VT_string: { |
- CFX_ByteString sValue = CJS_Value(pRuntime, v).ToCFXByteString(); |
+ CFX_ByteString sValue = |
+ CJS_Value(pRuntime, v).ToCFXByteString(pRuntime->GetIsolate()); |
CJS_KeyValue* pObjElement = new CJS_KeyValue; |
pObjElement->nType = JS_GlobalDataType::STRING; |
pObjElement->sKey = sKey; |