Index: fxjs/fxjs_v8.cpp |
diff --git a/fxjs/fxjs_v8.cpp b/fxjs/fxjs_v8.cpp |
index 5ce8c475698b2e831223d84f76e170cc8bec7ee6..c96cc1f0e0c25fab7ab6092cf47f2b9f8c258395 100644 |
--- a/fxjs/fxjs_v8.cpp |
+++ b/fxjs/fxjs_v8.cpp |
@@ -596,79 +596,21 @@ std::vector<CFX_WideString> CFXJS_Engine::GetObjectPropertyNames( |
std::vector<CFX_WideString> result; |
for (uint32_t i = 0; i < val->Length(); ++i) { |
- result.push_back(ToString(val->Get(context, i).ToLocalChecked())); |
+ result.push_back(ToWideString(val->Get(context, i).ToLocalChecked())); |
} |
return result; |
} |
-void CFXJS_Engine::PutObjectString(v8::Local<v8::Object> pObj, |
- const CFX_WideString& wsPropertyName, |
- const CFX_WideString& wsValue) { |
- if (pObj.IsEmpty()) |
- return; |
- pObj->Set(m_isolate->GetCurrentContext(), WSToJSString(wsPropertyName), |
- WSToJSString(wsValue)) |
- .FromJust(); |
-} |
- |
-void CFXJS_Engine::PutObjectNumber(v8::Local<v8::Object> pObj, |
- const CFX_WideString& wsPropertyName, |
- int nValue) { |
- if (pObj.IsEmpty()) |
- return; |
- pObj->Set(m_isolate->GetCurrentContext(), WSToJSString(wsPropertyName), |
- v8::Int32::New(m_isolate, nValue)) |
- .FromJust(); |
-} |
- |
-void CFXJS_Engine::PutObjectNumber(v8::Local<v8::Object> pObj, |
- const CFX_WideString& wsPropertyName, |
- float fValue) { |
- if (pObj.IsEmpty()) |
- return; |
- pObj->Set(m_isolate->GetCurrentContext(), WSToJSString(wsPropertyName), |
- v8::Number::New(m_isolate, (double)fValue)) |
- .FromJust(); |
-} |
- |
-void CFXJS_Engine::PutObjectNumber(v8::Local<v8::Object> pObj, |
- const CFX_WideString& wsPropertyName, |
- double dValue) { |
- if (pObj.IsEmpty()) |
- return; |
- pObj->Set(m_isolate->GetCurrentContext(), WSToJSString(wsPropertyName), |
- v8::Number::New(m_isolate, (double)dValue)) |
- .FromJust(); |
-} |
- |
-void CFXJS_Engine::PutObjectBoolean(v8::Local<v8::Object> pObj, |
- const CFX_WideString& wsPropertyName, |
- bool bValue) { |
- if (pObj.IsEmpty()) |
- return; |
- pObj->Set(m_isolate->GetCurrentContext(), WSToJSString(wsPropertyName), |
- v8::Boolean::New(m_isolate, bValue)) |
- .FromJust(); |
-} |
- |
-void CFXJS_Engine::PutObjectObject(v8::Local<v8::Object> pObj, |
- const CFX_WideString& wsPropertyName, |
- v8::Local<v8::Object> pPut) { |
+void CFXJS_Engine::PutObjectProperty(v8::Local<v8::Object> pObj, |
+ const CFX_WideString& wsPropertyName, |
+ v8::Local<v8::Value> pPut) { |
if (pObj.IsEmpty()) |
return; |
pObj->Set(m_isolate->GetCurrentContext(), WSToJSString(wsPropertyName), pPut) |
.FromJust(); |
} |
-void CFXJS_Engine::PutObjectNull(v8::Local<v8::Object> pObj, |
- const CFX_WideString& wsPropertyName) { |
- if (pObj.IsEmpty()) |
- return; |
- pObj->Set(m_isolate->GetCurrentContext(), WSToJSString(wsPropertyName), |
- v8::Local<v8::Object>()) |
- .FromJust(); |
-} |
v8::Local<v8::Array> CFXJS_Engine::NewArray() { |
return v8::Array::New(m_isolate); |
@@ -724,8 +666,8 @@ v8::Local<v8::Value> CFXJS_Engine::NewBoolean(bool b) { |
return v8::Boolean::New(m_isolate, b); |
} |
-v8::Local<v8::Value> CFXJS_Engine::NewString(const wchar_t* str) { |
- return WSToJSString(str); |
+v8::Local<v8::Value> CFXJS_Engine::NewString(const CFX_WideString& str) { |
+ return WSToJSString(str.c_str()); |
} |
v8::Local<v8::Value> CFXJS_Engine::NewNull() { |
@@ -752,30 +694,30 @@ bool CFXJS_Engine::ToBoolean(v8::Local<v8::Value> pValue) { |
return pValue->ToBoolean(context).ToLocalChecked()->Value(); |
} |
-double CFXJS_Engine::ToNumber(v8::Local<v8::Value> pValue) { |
+double CFXJS_Engine::ToDouble(v8::Local<v8::Value> pValue) { |
if (pValue.IsEmpty()) |
return 0.0; |
v8::Local<v8::Context> context = m_isolate->GetCurrentContext(); |
return pValue->ToNumber(context).ToLocalChecked()->Value(); |
} |
-v8::Local<v8::Object> CFXJS_Engine::ToObject(v8::Local<v8::Value> pValue) { |
+CFX_WideString CFXJS_Engine::ToWideString(v8::Local<v8::Value> pValue) { |
if (pValue.IsEmpty()) |
- return v8::Local<v8::Object>(); |
+ return CFX_WideString(); |
v8::Local<v8::Context> context = m_isolate->GetCurrentContext(); |
- return pValue->ToObject(context).ToLocalChecked(); |
+ v8::String::Utf8Value s(pValue->ToString(context).ToLocalChecked()); |
+ return CFX_WideString::FromUTF8(CFX_ByteStringC(*s, s.length())); |
} |
-CFX_WideString CFXJS_Engine::ToString(v8::Local<v8::Value> pValue) { |
- if (pValue.IsEmpty()) |
- return L""; |
+v8::Local<v8::Object> CFXJS_Engine::ToObject(v8::Local<v8::Value> pValue) { |
+ if (pValue.IsEmpty() || !pValue->IsObject()) |
+ return v8::Local<v8::Object>(); |
v8::Local<v8::Context> context = m_isolate->GetCurrentContext(); |
- v8::String::Utf8Value s(pValue->ToString(context).ToLocalChecked()); |
- return CFX_WideString::FromUTF8(CFX_ByteStringC(*s, s.length())); |
+ return pValue->ToObject(context).ToLocalChecked(); |
} |
v8::Local<v8::Array> CFXJS_Engine::ToArray(v8::Local<v8::Value> pValue) { |
- if (pValue.IsEmpty()) |
+ if (pValue.IsEmpty() || !pValue->IsArray()) |
return v8::Local<v8::Array>(); |
v8::Local<v8::Context> context = m_isolate->GetCurrentContext(); |
return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked()); |