| Index: fpdfsdk/javascript/JS_Value.cpp
|
| diff --git a/fpdfsdk/javascript/JS_Value.cpp b/fpdfsdk/javascript/JS_Value.cpp
|
| index 9d65c79a1b4bc5108d71c05f2c9e0923b08e04cc..ab81aa0b465bca5a2f385d34237555c1fc7b40df 100644
|
| --- a/fpdfsdk/javascript/JS_Value.cpp
|
| +++ b/fpdfsdk/javascript/JS_Value.cpp
|
| @@ -73,10 +73,9 @@ CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const FX_CHAR* pStr)
|
| operator=(pStr);
|
| }
|
|
|
| -CJS_Value::CJS_Value(CJS_Runtime* pRuntime, CJS_Array& array)
|
| - : m_pJSRuntime(pRuntime) {
|
| - operator=(array);
|
| -}
|
| +CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const CJS_Array& array)
|
| + : m_pValue(array.ToV8Array(pRuntime->GetIsolate())),
|
| + m_pJSRuntime(pRuntime) {}
|
|
|
| CJS_Value::~CJS_Value() {}
|
|
|
| @@ -192,11 +191,6 @@ void CJS_Value::operator=(const FX_CHAR* pStr) {
|
| operator=(CFX_WideString::FromLocal(pStr).c_str());
|
| }
|
|
|
| -void CJS_Value::operator=(const CJS_Array& array) {
|
| - ASSERT(m_pJSRuntime == array.GetJSRuntime());
|
| - m_pValue = array.ToV8Array();
|
| -}
|
| -
|
| void CJS_Value::operator=(const CJS_Date& date) {
|
| ASSERT(m_pJSRuntime == date.GetJSRuntime());
|
| m_pValue = FXJS_NewDate(m_pJSRuntime->GetIsolate(), date.ToDouble());
|
| @@ -360,7 +354,7 @@ void CJS_PropValue::operator>>(CJS_Array& array) const {
|
|
|
| void CJS_PropValue::operator<<(CJS_Array& array) {
|
| ASSERT(!m_bIsSetting);
|
| - CJS_Value::operator=(array);
|
| + m_pValue = array.ToV8Array(m_pJSRuntime->GetIsolate());
|
| }
|
|
|
| void CJS_PropValue::operator>>(CJS_Date& date) const {
|
| @@ -373,30 +367,30 @@ void CJS_PropValue::operator<<(CJS_Date& date) {
|
| CJS_Value::operator=(date);
|
| }
|
|
|
| -CJS_Array::CJS_Array(CJS_Runtime* pRuntime) : m_pJSRuntime(pRuntime) {}
|
| -
|
| -CJS_Array::~CJS_Array() {}
|
| +CJS_Array::CJS_Array() {}
|
|
|
| CJS_Array::CJS_Array(const CJS_Array& other) = default;
|
|
|
| +CJS_Array::~CJS_Array() {}
|
| +
|
| void CJS_Array::Attach(v8::Local<v8::Array> pArray) {
|
| m_pArray = pArray;
|
| }
|
|
|
| -void CJS_Array::GetElement(unsigned index, CJS_Value& value) const {
|
| - if (m_pArray.IsEmpty())
|
| - return;
|
| - v8::Local<v8::Value> p =
|
| - FXJS_GetArrayElement(m_pJSRuntime->GetIsolate(), m_pArray, index);
|
| - value.Attach(p);
|
| +void CJS_Array::GetElement(v8::Isolate* pIsolate,
|
| + unsigned index,
|
| + CJS_Value& value) const {
|
| + if (!m_pArray.IsEmpty())
|
| + value.Attach(FXJS_GetArrayElement(pIsolate, m_pArray, index));
|
| }
|
|
|
| -void CJS_Array::SetElement(unsigned index, CJS_Value value) {
|
| +void CJS_Array::SetElement(v8::Isolate* pIsolate,
|
| + unsigned index,
|
| + const CJS_Value& value) {
|
| if (m_pArray.IsEmpty())
|
| - m_pArray = FXJS_NewArray(m_pJSRuntime->GetIsolate());
|
| + m_pArray = FXJS_NewArray(pIsolate);
|
|
|
| - FXJS_PutArrayElement(m_pJSRuntime->GetIsolate(), m_pArray, index,
|
| - value.ToV8Value());
|
| + FXJS_PutArrayElement(pIsolate, m_pArray, index, value.ToV8Value());
|
| }
|
|
|
| int CJS_Array::GetLength() const {
|
| @@ -405,9 +399,9 @@ int CJS_Array::GetLength() const {
|
| return FXJS_GetArrayLength(m_pArray);
|
| }
|
|
|
| -v8::Local<v8::Array> CJS_Array::ToV8Array() const {
|
| +v8::Local<v8::Array> CJS_Array::ToV8Array(v8::Isolate* pIsolate) const {
|
| if (m_pArray.IsEmpty())
|
| - m_pArray = FXJS_NewArray(m_pJSRuntime->GetIsolate());
|
| + m_pArray = FXJS_NewArray(pIsolate);
|
|
|
| return m_pArray;
|
| }
|
|
|