| Index: fxjs/cfxjse_value.cpp
|
| diff --git a/fxjse/value.cpp b/fxjs/cfxjse_value.cpp
|
| similarity index 67%
|
| rename from fxjse/value.cpp
|
| rename to fxjs/cfxjse_value.cpp
|
| index aba640210a268769e518de7a859a585a81f36a1f..b1fc0784e8d23d770288ee61e397ea42eeea8dde 100644
|
| --- a/fxjse/value.cpp
|
| +++ b/fxjs/cfxjse_value.cpp
|
| @@ -4,16 +4,16 @@
|
|
|
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
|
|
| -#include "fxjse/include/cfxjse_value.h"
|
| +#include "fxjs/include/cfxjse_value.h"
|
|
|
| #include <math.h>
|
|
|
| -#include "fxjse/context.h"
|
| -#include "fxjse/include/cfxjse_class.h"
|
| +#include "fxjs/include/cfxjse_class.h"
|
| +#include "fxjs/include/cfxjse_context.h"
|
|
|
| namespace {
|
|
|
| -double FXJSE_ftod(FX_FLOAT fNumber) {
|
| +double ftod(FX_FLOAT fNumber) {
|
| static_assert(sizeof(FX_FLOAT) == 4, "FX_FLOAT of incorrect size");
|
|
|
| uint32_t nFloatBits = (uint32_t&)fNumber;
|
| @@ -124,7 +124,7 @@ void CFXJSE_Value::SetDate(double dDouble) {
|
|
|
| void CFXJSE_Value::SetFloat(FX_FLOAT fFloat) {
|
| CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| - v8::Local<v8::Value> pValue = v8::Number::New(m_pIsolate, FXJSE_ftod(fFloat));
|
| + v8::Local<v8::Value> pValue = v8::Number::New(m_pIsolate, ftod(fFloat));
|
| m_hValue.Reset(m_pIsolate, pValue);
|
| }
|
|
|
| @@ -346,3 +346,174 @@ FX_BOOL CFXJSE_Value::Call(CFXJSE_Value* lpReceiver,
|
| }
|
| return bRetValue;
|
| }
|
| +
|
| +FX_BOOL CFXJSE_Value::IsUndefined() const {
|
| + if (m_hValue.IsEmpty())
|
| + return FALSE;
|
| +
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return hValue->IsUndefined();
|
| +}
|
| +
|
| +FX_BOOL CFXJSE_Value::IsNull() const {
|
| + if (m_hValue.IsEmpty())
|
| + return FALSE;
|
| +
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return hValue->IsNull();
|
| +}
|
| +
|
| +FX_BOOL CFXJSE_Value::IsBoolean() const {
|
| + if (m_hValue.IsEmpty())
|
| + return FALSE;
|
| +
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return hValue->IsBoolean();
|
| +}
|
| +
|
| +FX_BOOL CFXJSE_Value::IsString() const {
|
| + if (m_hValue.IsEmpty())
|
| + return FALSE;
|
| +
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return hValue->IsString();
|
| +}
|
| +
|
| +FX_BOOL CFXJSE_Value::IsNumber() const {
|
| + if (m_hValue.IsEmpty())
|
| + return FALSE;
|
| +
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return hValue->IsNumber();
|
| +}
|
| +
|
| +FX_BOOL CFXJSE_Value::IsInteger() const {
|
| + if (m_hValue.IsEmpty())
|
| + return FALSE;
|
| +
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return hValue->IsInt32();
|
| +}
|
| +
|
| +FX_BOOL CFXJSE_Value::IsObject() const {
|
| + if (m_hValue.IsEmpty())
|
| + return FALSE;
|
| +
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return hValue->IsObject();
|
| +}
|
| +
|
| +FX_BOOL CFXJSE_Value::IsArray() const {
|
| + if (m_hValue.IsEmpty())
|
| + return FALSE;
|
| +
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return hValue->IsArray();
|
| +}
|
| +
|
| +FX_BOOL CFXJSE_Value::IsFunction() const {
|
| + if (m_hValue.IsEmpty())
|
| + return FALSE;
|
| +
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return hValue->IsFunction();
|
| +}
|
| +
|
| +FX_BOOL CFXJSE_Value::IsDate() const {
|
| + if (m_hValue.IsEmpty())
|
| + return FALSE;
|
| +
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return hValue->IsDate();
|
| +}
|
| +
|
| +FX_BOOL CFXJSE_Value::ToBoolean() const {
|
| + ASSERT(!m_hValue.IsEmpty());
|
| + CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return static_cast<FX_BOOL>(hValue->BooleanValue());
|
| +}
|
| +
|
| +FX_FLOAT CFXJSE_Value::ToFloat() const {
|
| + ASSERT(!m_hValue.IsEmpty());
|
| + CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return static_cast<FX_FLOAT>(hValue->NumberValue());
|
| +}
|
| +
|
| +double CFXJSE_Value::ToDouble() const {
|
| + ASSERT(!m_hValue.IsEmpty());
|
| + CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return static_cast<double>(hValue->NumberValue());
|
| +}
|
| +
|
| +int32_t CFXJSE_Value::ToInteger() const {
|
| + ASSERT(!m_hValue.IsEmpty());
|
| + CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + return static_cast<int32_t>(hValue->NumberValue());
|
| +}
|
| +
|
| +CFX_ByteString CFXJSE_Value::ToString() const {
|
| + ASSERT(!m_hValue.IsEmpty());
|
| + CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
|
| + v8::Local<v8::String> hString = hValue->ToString();
|
| + v8::String::Utf8Value hStringVal(hString);
|
| + return CFX_ByteString(*hStringVal);
|
| +}
|
| +
|
| +void CFXJSE_Value::SetUndefined() {
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Undefined(m_pIsolate);
|
| + m_hValue.Reset(m_pIsolate, hValue);
|
| +}
|
| +
|
| +void CFXJSE_Value::SetNull() {
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Null(m_pIsolate);
|
| + m_hValue.Reset(m_pIsolate, hValue);
|
| +}
|
| +
|
| +void CFXJSE_Value::SetBoolean(FX_BOOL bBoolean) {
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Boolean::New(m_pIsolate, bBoolean != FALSE);
|
| + m_hValue.Reset(m_pIsolate, hValue);
|
| +}
|
| +
|
| +void CFXJSE_Value::SetInteger(int32_t nInteger) {
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Integer::New(m_pIsolate, nInteger);
|
| + m_hValue.Reset(m_pIsolate, hValue);
|
| +}
|
| +
|
| +void CFXJSE_Value::SetDouble(double dDouble) {
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Number::New(m_pIsolate, dDouble);
|
| + m_hValue.Reset(m_pIsolate, hValue);
|
| +}
|
| +
|
| +void CFXJSE_Value::SetString(const CFX_ByteStringC& szString) {
|
| + CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::String::NewFromUtf8(
|
| + m_pIsolate, reinterpret_cast<const char*>(szString.raw_str()),
|
| + v8::String::kNormalString, szString.GetLength());
|
| + m_hValue.Reset(m_pIsolate, hValue);
|
| +}
|
| +
|
| +void CFXJSE_Value::SetJSObject() {
|
| + CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
|
| + v8::Local<v8::Value> hValue = v8::Object::New(m_pIsolate);
|
| + m_hValue.Reset(m_pIsolate, hValue);
|
| +}
|
|
|