Index: fpdfsdk/javascript/JS_Value.cpp |
diff --git a/fpdfsdk/javascript/JS_Value.cpp b/fpdfsdk/javascript/JS_Value.cpp |
index 6bc45c555d0808790abfa0fd14f71644bb0858dc..5c1ba2a432281035ca3675d1540512aa69ea262c 100644 |
--- a/fpdfsdk/javascript/JS_Value.cpp |
+++ b/fpdfsdk/javascript/JS_Value.cpp |
@@ -22,11 +22,10 @@ static double GetNan() { |
return *(double*)g_nan; |
} |
-CJS_Value::CJS_Value(CJS_Runtime* pRuntime) |
- : m_eType(VT_unknown), m_pJSRuntime(pRuntime) {} |
+CJS_Value::CJS_Value(CJS_Runtime* pRuntime) : m_pJSRuntime(pRuntime) {} |
-CJS_Value::CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Value> pValue, Type t) |
- : m_eType(t), m_pValue(pValue), m_pJSRuntime(pRuntime) {} |
+CJS_Value::CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Value> pValue) |
+ : m_pValue(pValue), m_pJSRuntime(pRuntime) {} |
CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const int& iValue) |
: m_pJSRuntime(pRuntime) { |
@@ -48,23 +47,11 @@ CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const double& dValue) |
operator=(dValue); |
} |
-CJS_Value::CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Object> pJsObj) |
- : m_pJSRuntime(pRuntime) { |
- operator=(pJsObj); |
-} |
- |
CJS_Value::CJS_Value(CJS_Runtime* pRuntime, CJS_Object* pJsObj) |
: m_pJSRuntime(pRuntime) { |
operator=(pJsObj); |
} |
-CJS_Value::CJS_Value(CJS_Runtime* pRuntime, CJS_Document* pJsDoc) |
- : m_pJSRuntime(pRuntime) { |
- m_eType = VT_object; |
- if (pJsDoc) |
- m_pValue = pJsDoc->ToV8Object(); |
-} |
- |
CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const FX_WCHAR* pWstr) |
: m_pJSRuntime(pRuntime) { |
operator=(pWstr); |
@@ -84,19 +71,17 @@ CJS_Value::~CJS_Value() {} |
CJS_Value::CJS_Value(const CJS_Value& other) = default; |
-void CJS_Value::Attach(v8::Local<v8::Value> pValue, Type t) { |
+void CJS_Value::Attach(v8::Local<v8::Value> pValue) { |
m_pValue = pValue; |
- m_eType = t; |
} |
void CJS_Value::Attach(CJS_Value* pValue) { |
if (pValue) |
- Attach(pValue->ToV8Value(), pValue->GetType()); |
+ Attach(pValue->ToV8Value()); |
} |
void CJS_Value::Detach() { |
m_pValue = v8::Local<v8::Value>(); |
- m_eType = VT_unknown; |
} |
int CJS_Value::ToInt() const { |
@@ -146,7 +131,7 @@ v8::Local<v8::Array> CJS_Value::ToV8Array() const { |
void CJS_Value::MaybeCoerceToNumber() { |
bool bAllowNaN = false; |
- if (m_eType == VT_string) { |
+ if (GetType() == VT_string) { |
CFX_ByteString bstr = ToCFXByteString(); |
if (bstr.GetLength() == 0) |
return; |
@@ -162,32 +147,26 @@ void CJS_Value::MaybeCoerceToNumber() { |
if (std::isnan(num->Value()) && !bAllowNaN) |
return; |
m_pValue = num; |
- m_eType = VT_number; |
} |
void CJS_Value::operator=(int iValue) { |
m_pValue = FXJS_NewNumber(m_pJSRuntime->GetIsolate(), iValue); |
- m_eType = VT_number; |
} |
void CJS_Value::operator=(bool bValue) { |
m_pValue = FXJS_NewBoolean(m_pJSRuntime->GetIsolate(), bValue); |
- m_eType = VT_boolean; |
} |
void CJS_Value::operator=(double dValue) { |
m_pValue = FXJS_NewNumber(m_pJSRuntime->GetIsolate(), dValue); |
- m_eType = VT_number; |
} |
void CJS_Value::operator=(float fValue) { |
m_pValue = FXJS_NewNumber(m_pJSRuntime->GetIsolate(), fValue); |
- m_eType = VT_number; |
} |
void CJS_Value::operator=(v8::Local<v8::Object> pObj) { |
m_pValue = pObj; |
- m_eType = VT_fxobject; |
} |
void CJS_Value::operator=(CJS_Object* pObj) { |
@@ -195,21 +174,12 @@ void CJS_Value::operator=(CJS_Object* pObj) { |
operator=(pObj->ToV8Object()); |
} |
-void CJS_Value::operator=(CJS_Document* pJsDoc) { |
- m_eType = VT_object; |
- if (pJsDoc) { |
- m_pValue = pJsDoc->ToV8Object(); |
- } |
-} |
- |
void CJS_Value::operator=(const FX_WCHAR* pWstr) { |
m_pValue = FXJS_NewString(m_pJSRuntime->GetIsolate(), (wchar_t*)pWstr); |
- m_eType = VT_string; |
} |
void CJS_Value::SetNull() { |
m_pValue = FXJS_NewNull(m_pJSRuntime->GetIsolate()); |
- m_eType = VT_null; |
} |
void CJS_Value::operator=(const FX_CHAR* pStr) { |
@@ -218,36 +188,34 @@ void CJS_Value::operator=(const FX_CHAR* pStr) { |
void CJS_Value::operator=(CJS_Array& array) { |
m_pValue = static_cast<v8::Local<v8::Array>>(array); |
- m_eType = VT_object; |
} |
void CJS_Value::operator=(CJS_Date& date) { |
m_pValue = FXJS_NewDate(m_pJSRuntime->GetIsolate(), (double)date); |
- m_eType = VT_date; |
} |
void CJS_Value::operator=(CJS_Value value) { |
m_pValue = value.ToV8Value(); |
- m_eType = value.m_eType; |
m_pJSRuntime = value.m_pJSRuntime; |
} |
-CJS_Value::Type CJS_Value::GetType() const { |
- if (m_pValue.IsEmpty()) |
+// static |
+CJS_Value::Type CJS_Value::GetValueType(v8::Local<v8::Value> value) { |
+ if (value.IsEmpty()) |
return VT_unknown; |
- if (m_pValue->IsString()) |
+ if (value->IsString()) |
return VT_string; |
- if (m_pValue->IsNumber()) |
+ if (value->IsNumber()) |
return VT_number; |
- if (m_pValue->IsBoolean()) |
+ if (value->IsBoolean()) |
return VT_boolean; |
- if (m_pValue->IsDate()) |
+ if (value->IsDate()) |
return VT_date; |
- if (m_pValue->IsObject()) |
+ if (value->IsObject()) |
return VT_object; |
- if (m_pValue->IsNull()) |
+ if (value->IsNull()) |
return VT_null; |
- if (m_pValue->IsUndefined()) |
+ if (value->IsUndefined()) |
return VT_undefined; |
return VT_unknown; |
} |
@@ -426,7 +394,7 @@ void CJS_Array::GetElement(unsigned index, CJS_Value& value) { |
return; |
v8::Local<v8::Value> p = |
FXJS_GetArrayElement(m_pJSRuntime->GetIsolate(), m_pArray, index); |
- value.Attach(p, CJS_Value::VT_object); |
+ value.Attach(p); |
} |
void CJS_Array::SetElement(unsigned index, CJS_Value value) { |
@@ -898,7 +866,7 @@ std::vector<CJS_Value> JS_ExpandKeywordParams( |
v8::Local<v8::Value> v8Value = |
FXJS_GetObjectElement(pRuntime->GetIsolate(), pObj, property); |
if (!v8Value->IsUndefined()) |
- result[i] = CJS_Value(pRuntime, v8Value, CJS_Value::VT_unknown); |
+ result[i] = CJS_Value(pRuntime, v8Value); |
} |
va_end(ap); |
return result; |