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 #ifndef _JS_DEFINE_H_ | 7 #ifndef _JS_DEFINE_H_ |
8 #define _JS_DEFINE_H_ | 8 #define _JS_DEFINE_H_ |
9 | 9 |
10 #include "../jsapi/fxjs_v8.h" | 10 #include "../jsapi/fxjs_v8.h" |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 IFXJS_Context* pRuntimeContext = pRuntime->GetCurrentContext(); | 62 IFXJS_Context* pRuntimeContext = pRuntime->GetCurrentContext(); |
63 CJS_PropValue value(isolate); | 63 CJS_PropValue value(isolate); |
64 value.StartGetting(); | 64 value.StartGetting(); |
65 CJS_Object* pJSObj = (CJS_Object*)JS_GetPrivate(isolate,info.Holder()); | 65 CJS_Object* pJSObj = (CJS_Object*)JS_GetPrivate(isolate,info.Holder()); |
66 C* pObj = reinterpret_cast<C*>(pJSObj->GetEmbedObject()); | 66 C* pObj = reinterpret_cast<C*>(pJSObj->GetEmbedObject()); |
67 CFX_WideString sError; | 67 CFX_WideString sError; |
68 if (!(pObj->*M)(pRuntimeContext, value, sError)) { | 68 if (!(pObj->*M)(pRuntimeContext, value, sError)) { |
69 JS_Error(isolate, JSFormatErrorString(class_name_string, prop_name_string, s
Error)); | 69 JS_Error(isolate, JSFormatErrorString(class_name_string, prop_name_string, s
Error)); |
70 return; | 70 return; |
71 } | 71 } |
72 info.GetReturnValue().Set((v8::Handle<v8::Value>)value); | 72 info.GetReturnValue().Set((v8::Local<v8::Value>)value); |
73 } | 73 } |
74 | 74 |
75 template <class C, FX_BOOL (C::*M)(IFXJS_Context*, CJS_PropValue&, CFX_WideStrin
g&)> | 75 template <class C, FX_BOOL (C::*M)(IFXJS_Context*, CJS_PropValue&, CFX_WideStrin
g&)> |
76 void JSPropSetter(const char* prop_name_string, | 76 void JSPropSetter(const char* prop_name_string, |
77 const char* class_name_string, | 77 const char* class_name_string, |
78 v8::Local<v8::String> property, | 78 v8::Local<v8::String> property, |
79 v8::Local<v8::Value> value, | 79 v8::Local<v8::Value> value, |
80 const v8::PropertyCallbackInfo<void>& info) { | 80 const v8::PropertyCallbackInfo<void>& info) { |
81 v8::Isolate* isolate = info.GetIsolate(); | 81 v8::Isolate* isolate = info.GetIsolate(); |
82 IFXJS_Runtime* pRuntime = (IFXJS_Runtime*)isolate->GetData(2); | 82 IFXJS_Runtime* pRuntime = (IFXJS_Runtime*)isolate->GetData(2); |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 Alt* pObj = reinterpret_cast<Alt*>(pJSObj->GetEmbedObject()); | 248 Alt* pObj = reinterpret_cast<Alt*>(pJSObj->GetEmbedObject()); |
249 v8::String::Utf8Value utf8_value(property); | 249 v8::String::Utf8Value utf8_value(property); |
250 CFX_WideString propname = CFX_WideString::FromUTF8(*utf8_value, utf8_value.len
gth()); | 250 CFX_WideString propname = CFX_WideString::FromUTF8(*utf8_value, utf8_value.len
gth()); |
251 CFX_WideString sError; | 251 CFX_WideString sError; |
252 CJS_PropValue value(isolate); | 252 CJS_PropValue value(isolate); |
253 value.StartGetting(); | 253 value.StartGetting(); |
254 if (!pObj->DoProperty(pRuntimeContext, propname.c_str(), value, sError)) { | 254 if (!pObj->DoProperty(pRuntimeContext, propname.c_str(), value, sError)) { |
255 JS_Error(isolate, JSFormatErrorString(class_name, "GetProperty", sError)); | 255 JS_Error(isolate, JSFormatErrorString(class_name, "GetProperty", sError)); |
256 return; | 256 return; |
257 } | 257 } |
258 info.GetReturnValue().Set((v8::Handle<v8::Value>)value); | 258 info.GetReturnValue().Set((v8::Local<v8::Value>)value); |
259 } | 259 } |
260 | 260 |
261 template <class Alt> | 261 template <class Alt> |
262 void JSSpecialPropPut(const char* class_name, | 262 void JSSpecialPropPut(const char* class_name, |
263 v8::Local<v8::String> property, | 263 v8::Local<v8::String> property, |
264 v8::Local<v8::Value> value, | 264 v8::Local<v8::Value> value, |
265 const v8::PropertyCallbackInfo<v8::Value>& info) { | 265 const v8::PropertyCallbackInfo<v8::Value>& info) { |
266 v8::Isolate* isolate = info.GetIsolate(); | 266 v8::Isolate* isolate = info.GetIsolate(); |
267 v8::Local<v8::Context> context = isolate->GetCurrentContext(); | 267 v8::Local<v8::Context> context = isolate->GetCurrentContext(); |
268 IFXJS_Runtime* pRuntime = (IFXJS_Runtime*)isolate->GetData(2); | 268 IFXJS_Runtime* pRuntime = (IFXJS_Runtime*)isolate->GetData(2); |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
438 | 438 |
439 #define VALUE_NAME_STRING L"string" | 439 #define VALUE_NAME_STRING L"string" |
440 #define VALUE_NAME_NUMBER L"number" | 440 #define VALUE_NAME_NUMBER L"number" |
441 #define VALUE_NAME_BOOLEAN L"boolean" | 441 #define VALUE_NAME_BOOLEAN L"boolean" |
442 #define VALUE_NAME_DATE L"date" | 442 #define VALUE_NAME_DATE L"date" |
443 #define VALUE_NAME_OBJECT L"object" | 443 #define VALUE_NAME_OBJECT L"object" |
444 #define VALUE_NAME_FXOBJ L"fxobj" | 444 #define VALUE_NAME_FXOBJ L"fxobj" |
445 #define VALUE_NAME_NULL L"null" | 445 #define VALUE_NAME_NULL L"null" |
446 #define VALUE_NAME_UNDEFINED L"undefined" | 446 #define VALUE_NAME_UNDEFINED L"undefined" |
447 | 447 |
448 FXJSVALUETYPE GET_VALUE_TYPE(v8::Handle<v8::Value> p); | 448 FXJSVALUETYPE GET_VALUE_TYPE(v8::Local<v8::Value> p); |
449 | 449 |
450 #endif //_JS_DEFINE_H_ | 450 #endif //_JS_DEFINE_H_ |
OLD | NEW |