OLD | NEW |
---|---|
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "xfa/fxjse/value.h" | 7 #include "xfa/fxjse/value.h" |
8 | 8 |
9 #include <math.h> | 9 #include <math.h> |
10 | 10 |
11 #include "xfa/fxfa/fm2js/xfa_fm2jscontext.h" | |
Tom Sepez
2016/06/01 20:17:58
illegal include, in theory due to layering.
| |
11 #include "xfa/fxjse/class.h" | 12 #include "xfa/fxjse/class.h" |
12 #include "xfa/fxjse/context.h" | 13 #include "xfa/fxjse/context.h" |
13 | 14 |
14 FX_BOOL FXJSE_Value_IsUndefined(CFXJSE_Value* pValue) { | 15 FX_BOOL FXJSE_Value_IsUndefined(CFXJSE_Value* pValue) { |
15 return pValue && pValue->IsUndefined(); | 16 return pValue && pValue->IsUndefined(); |
16 } | 17 } |
17 | 18 |
18 FX_BOOL FXJSE_Value_IsNull(CFXJSE_Value* pValue) { | 19 FX_BOOL FXJSE_Value_IsNull(CFXJSE_Value* pValue) { |
19 return pValue && pValue->IsNull(); | 20 return pValue && pValue->IsNull(); |
20 } | 21 } |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
57 | 58 |
58 void FXJSE_Value_ToUTF8String(CFXJSE_Value* pValue, | 59 void FXJSE_Value_ToUTF8String(CFXJSE_Value* pValue, |
59 CFX_ByteString& szStrOutput) { | 60 CFX_ByteString& szStrOutput) { |
60 pValue->ToString(szStrOutput); | 61 pValue->ToString(szStrOutput); |
61 } | 62 } |
62 | 63 |
63 int32_t FXJSE_Value_ToInteger(CFXJSE_Value* pValue) { | 64 int32_t FXJSE_Value_ToInteger(CFXJSE_Value* pValue) { |
64 return pValue->ToInteger(); | 65 return pValue->ToInteger(); |
65 } | 66 } |
66 | 67 |
67 CFXJSE_HostObject* FXJSE_Value_ToObject(CFXJSE_Value* pValue, | |
68 CFXJSE_Class* pClass) { | |
69 return pValue->ToObject(pClass); | |
70 } | |
71 | |
72 void FXJSE_Value_SetUndefined(CFXJSE_Value* pValue) { | 68 void FXJSE_Value_SetUndefined(CFXJSE_Value* pValue) { |
73 pValue->SetUndefined(); | 69 pValue->SetUndefined(); |
74 } | 70 } |
75 | 71 |
76 void FXJSE_Value_SetNull(CFXJSE_Value* pValue) { | 72 void FXJSE_Value_SetNull(CFXJSE_Value* pValue) { |
77 pValue->SetNull(); | 73 pValue->SetNull(); |
78 } | 74 } |
79 | 75 |
80 void FXJSE_Value_SetBoolean(CFXJSE_Value* pValue, FX_BOOL bBoolean) { | 76 void FXJSE_Value_SetBoolean(CFXJSE_Value* pValue, FX_BOOL bBoolean) { |
81 pValue->SetBoolean(bBoolean); | 77 pValue->SetBoolean(bBoolean); |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
191 hError.As<v8::Object>()->Set( | 187 hError.As<v8::Object>()->Set( |
192 v8::String::NewFromUtf8(pIsolate, "name"), | 188 v8::String::NewFromUtf8(pIsolate, "name"), |
193 v8::String::NewFromUtf8(pIsolate, utf8Name.c_str(), | 189 v8::String::NewFromUtf8(pIsolate, utf8Name.c_str(), |
194 v8::String::kNormalString, | 190 v8::String::kNormalString, |
195 utf8Name.GetLength())); | 191 utf8Name.GetLength())); |
196 } | 192 } |
197 } | 193 } |
198 pIsolate->ThrowException(hError); | 194 pIsolate->ThrowException(hError); |
199 } | 195 } |
200 | 196 |
201 CFXJSE_HostObject* CFXJSE_Value::ToObject(CFXJSE_Class* lpClass) const { | 197 CFXJSE_HostObject* CFXJSE_Value::ToHostObject(CFXJSE_Class* lpClass) const { |
202 ASSERT(!m_hValue.IsEmpty()); | 198 ASSERT(!m_hValue.IsEmpty()); |
203 | 199 |
204 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); | 200 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); |
205 v8::Local<v8::Value> pValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); | 201 v8::Local<v8::Value> pValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); |
206 ASSERT(!pValue.IsEmpty()); | 202 ASSERT(!pValue.IsEmpty()); |
207 | 203 |
208 if (!pValue->IsObject()) | 204 if (!pValue->IsObject()) |
209 return nullptr; | 205 return nullptr; |
210 | 206 |
211 return FXJSE_RetrieveObjectBinding(pValue.As<v8::Object>(), lpClass); | 207 return FXJSE_RetrieveObjectBinding(pValue.As<v8::Object>(), lpClass); |
212 } | 208 } |
213 | 209 |
210 CXFA_Object* CFXJSE_Value::ToObject(CFXJSE_Class* lpClass) const { | |
211 return static_cast<CXFA_Object*>(ToHostObject(lpClass)); | |
212 } | |
213 | |
214 CXFA_Node* CFXJSE_Value::ToNode(CFXJSE_Class* lpClass) const { | |
215 return static_cast<CXFA_Node*>(ToHostObject(lpClass)); | |
216 } | |
217 | |
218 CXFA_FM2JSContext* CFXJSE_Value::ToJSContext(CFXJSE_Class* lpClass) const { | |
219 return static_cast<CXFA_FM2JSContext*>(ToHostObject(lpClass)); | |
220 } | |
221 | |
222 CXFA_ThisProxy* CFXJSE_Value::ToProxy(CFXJSE_Class* lpClass) const { | |
223 return static_cast<CXFA_ThisProxy*>(ToHostObject(lpClass)); | |
224 } | |
225 | |
214 V8_INLINE static double FXJSE_ftod(FX_FLOAT fNumber) { | 226 V8_INLINE static double FXJSE_ftod(FX_FLOAT fNumber) { |
215 if (sizeof(FX_FLOAT) != 4) { | 227 if (sizeof(FX_FLOAT) != 4) { |
216 ASSERT(FALSE); | 228 ASSERT(FALSE); |
217 return fNumber; | 229 return fNumber; |
218 } | 230 } |
219 | 231 |
220 uint32_t nFloatBits = (uint32_t&)fNumber; | 232 uint32_t nFloatBits = (uint32_t&)fNumber; |
221 uint8_t nExponent = (uint8_t)(nFloatBits >> 16 >> 7); | 233 uint8_t nExponent = (uint8_t)(nFloatBits >> 16 >> 7); |
222 if (nExponent == 0 || nExponent == 255) | 234 if (nExponent == 0 || nExponent == 255) |
223 return fNumber; | 235 return fNumber; |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
494 if (lpRetValue) | 506 if (lpRetValue) |
495 lpRetValue->ForceSetValue(hReturnValue); | 507 lpRetValue->ForceSetValue(hReturnValue); |
496 | 508 |
497 if (lpLocalArgs) { | 509 if (lpLocalArgs) { |
498 for (uint32_t i = 0; i < nArgCount; i++) | 510 for (uint32_t i = 0; i < nArgCount; i++) |
499 lpLocalArgs[i].~Local(); | 511 lpLocalArgs[i].~Local(); |
500 FX_Free(lpLocalArgs); | 512 FX_Free(lpLocalArgs); |
501 } | 513 } |
502 return bRetValue; | 514 return bRetValue; |
503 } | 515 } |
OLD | NEW |