Index: fxjs/fxjs_v8.cpp |
diff --git a/fxjs/fxjs_v8.cpp b/fxjs/fxjs_v8.cpp |
index d161af62819c68fe5b69d556c8e9457dfb6afa25..92207fdd47010962b85b08c2e21b9d028d9181e6 100644 |
--- a/fxjs/fxjs_v8.cpp |
+++ b/fxjs/fxjs_v8.cpp |
@@ -596,7 +596,7 @@ v8::Local<v8::String> FXJS_WSToJSString(v8::Isolate* pIsolate, |
.ToLocalChecked(); |
} |
-v8::Local<v8::Value> FXJS_GetObjectElement( |
+v8::Local<v8::Value> FXJS_GetObjectProperty( |
v8::Isolate* pIsolate, |
v8::Local<v8::Object> pObj, |
const CFX_WideString& wsPropertyName) { |
@@ -610,14 +610,23 @@ v8::Local<v8::Value> FXJS_GetObjectElement( |
return val; |
} |
-v8::Local<v8::Array> FXJS_GetObjectElementNames(v8::Isolate* pIsolate, |
- v8::Local<v8::Object> pObj) { |
+std::vector<CFX_WideString> FXJS_GetObjectPropertyNames( |
+ v8::Isolate* pIsolate, |
+ v8::Local<v8::Object> pObj) { |
if (pObj.IsEmpty()) |
- return v8::Local<v8::Array>(); |
+ return std::vector<CFX_WideString>(); |
+ |
v8::Local<v8::Array> val; |
if (!pObj->GetPropertyNames(pIsolate->GetCurrentContext()).ToLocal(&val)) |
- return v8::Local<v8::Array>(); |
- return val; |
+ return std::vector<CFX_WideString>(); |
+ |
+ std::vector<CFX_WideString> result; |
+ for (uint32_t i = 0; i < val->Length(); ++i) { |
+ result.push_back(FXJS_ToString( |
+ pIsolate, val->Get(pIsolate->GetCurrentContext(), i).ToLocalChecked())); |
+ } |
+ |
+ return result; |
} |
void FXJS_PutObjectString(v8::Isolate* pIsolate, |