| 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 FPDFSDK_INCLUDE_JAVASCRIPT_JS_DEFINE_H_ | 7 #ifndef FPDFSDK_INCLUDE_JAVASCRIPT_JS_DEFINE_H_ |
| 8 #define FPDFSDK_INCLUDE_JAVASCRIPT_JS_DEFINE_H_ | 8 #define FPDFSDK_INCLUDE_JAVASCRIPT_JS_DEFINE_H_ |
| 9 | 9 |
| 10 #include "../jsapi/fxjs_v8.h" | 10 #include "../jsapi/fxjs_v8.h" |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 void js_class_name::JSDestructor(v8::Local<v8::Object> obj) { \ | 219 void js_class_name::JSDestructor(v8::Local<v8::Object> obj) { \ |
| 220 js_class_name* pObj = (js_class_name*)FXJS_GetPrivate(NULL, obj); \ | 220 js_class_name* pObj = (js_class_name*)FXJS_GetPrivate(NULL, obj); \ |
| 221 pObj->ExitInstance(); \ | 221 pObj->ExitInstance(); \ |
| 222 delete pObj; \ | 222 delete pObj; \ |
| 223 } \ | 223 } \ |
| 224 \ | 224 \ |
| 225 void js_class_name::DefineJSObjects(v8::Isolate* pIsolate, \ | 225 void js_class_name::DefineJSObjects(v8::Isolate* pIsolate, \ |
| 226 FXJSOBJTYPE eObjType) { \ | 226 FXJSOBJTYPE eObjType) { \ |
| 227 int nObjDefnID = FXJS_DefineObj(pIsolate, js_class_name::m_pClassName, \ | 227 int nObjDefnID = FXJS_DefineObj(pIsolate, js_class_name::m_pClassName, \ |
| 228 eObjType, JSConstructor, JSDestructor); \ | 228 eObjType, JSConstructor, JSDestructor); \ |
| 229 for (int i = 0; i < FX_ArraySize(JS_Class_Properties) - 1; ++i) { \ | 229 for (size_t i = 0; i < FX_ArraySize(JS_Class_Properties) - 1; ++i) { \ |
| 230 FXJS_DefineObjProperty( \ | 230 FXJS_DefineObjProperty( \ |
| 231 pIsolate, nObjDefnID, JS_Class_Properties[i].pName, \ | 231 pIsolate, nObjDefnID, JS_Class_Properties[i].pName, \ |
| 232 JS_Class_Properties[i].pPropGet, JS_Class_Properties[i].pPropPut); \ | 232 JS_Class_Properties[i].pPropGet, JS_Class_Properties[i].pPropPut); \ |
| 233 } \ | 233 } \ |
| 234 for (int i = 0; i < FX_ArraySize(JS_Class_Methods) - 1; ++i) { \ | 234 for (size_t i = 0; i < FX_ArraySize(JS_Class_Methods) - 1; ++i) { \ |
| 235 FXJS_DefineObjMethod(pIsolate, nObjDefnID, JS_Class_Methods[i].pName, \ | 235 FXJS_DefineObjMethod(pIsolate, nObjDefnID, JS_Class_Methods[i].pName, \ |
| 236 JS_Class_Methods[i].pMethodCall); \ | 236 JS_Class_Methods[i].pMethodCall); \ |
| 237 } \ | 237 } \ |
| 238 } | 238 } |
| 239 | 239 |
| 240 #define IMPLEMENT_JS_CLASS(js_class_name, class_name) \ | 240 #define IMPLEMENT_JS_CLASS(js_class_name, class_name) \ |
| 241 IMPLEMENT_JS_CLASS_RICH(js_class_name, class_name, class_name) | 241 IMPLEMENT_JS_CLASS_RICH(js_class_name, class_name, class_name) |
| 242 | 242 |
| 243 /* ======================================== CONST CLASS | 243 /* ======================================== CONST CLASS |
| 244 * ============================================ */ | 244 * ============================================ */ |
| 245 | 245 |
| 246 #define DECLARE_JS_CLASS_CONST() \ | 246 #define DECLARE_JS_CLASS_CONST() \ |
| 247 static void DefineJSObjects(v8::Isolate* pIsolate, FXJSOBJTYPE eObjType); \ | 247 static void DefineJSObjects(v8::Isolate* pIsolate, FXJSOBJTYPE eObjType); \ |
| 248 static JSConstSpec JS_Class_Consts[]; \ | 248 static JSConstSpec JS_Class_Consts[]; \ |
| 249 static const wchar_t* m_pClassName | 249 static const wchar_t* m_pClassName |
| 250 | 250 |
| 251 #define IMPLEMENT_JS_CLASS_CONST(js_class_name, class_name) \ | 251 #define IMPLEMENT_JS_CLASS_CONST(js_class_name, class_name) \ |
| 252 const wchar_t* js_class_name::m_pClassName = JS_WIDESTRING(class_name); \ | 252 const wchar_t* js_class_name::m_pClassName = JS_WIDESTRING(class_name); \ |
| 253 void js_class_name::DefineJSObjects(v8::Isolate* pIsolate, \ | 253 void js_class_name::DefineJSObjects(v8::Isolate* pIsolate, \ |
| 254 FXJSOBJTYPE eObjType) { \ | 254 FXJSOBJTYPE eObjType) { \ |
| 255 int nObjDefnID = FXJS_DefineObj(pIsolate, js_class_name::m_pClassName, \ | 255 int nObjDefnID = FXJS_DefineObj(pIsolate, js_class_name::m_pClassName, \ |
| 256 eObjType, NULL, NULL); \ | 256 eObjType, NULL, NULL); \ |
| 257 for (int i = 0; i < FX_ArraySize(JS_Class_Consts) - 1; ++i) { \ | 257 for (size_t i = 0; i < FX_ArraySize(JS_Class_Consts) - 1; ++i) { \ |
| 258 FXJS_DefineObjConst( \ | 258 FXJS_DefineObjConst( \ |
| 259 pIsolate, nObjDefnID, JS_Class_Consts[i].pName, \ | 259 pIsolate, nObjDefnID, JS_Class_Consts[i].pName, \ |
| 260 JS_Class_Consts[i].t == 0 \ | 260 JS_Class_Consts[i].t == 0 \ |
| 261 ? FXJS_NewNumber(pIsolate, JS_Class_Consts[i].number) \ | 261 ? FXJS_NewNumber(pIsolate, JS_Class_Consts[i].number) \ |
| 262 : FXJS_NewString(pIsolate, JS_Class_Consts[i].string)); \ | 262 : FXJS_NewString(pIsolate, JS_Class_Consts[i].string)); \ |
| 263 } \ | 263 } \ |
| 264 } | 264 } |
| 265 | 265 |
| 266 /* ===================================== SPECIAL JS CLASS | 266 /* ===================================== SPECIAL JS CLASS |
| 267 * =============================================== */ | 267 * =============================================== */ |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 419 js_class_name* pObj = (js_class_name*)FXJS_GetPrivate(NULL, obj); \ | 419 js_class_name* pObj = (js_class_name*)FXJS_GetPrivate(NULL, obj); \ |
| 420 ASSERT(pObj != NULL); \ | 420 ASSERT(pObj != NULL); \ |
| 421 pObj->ExitInstance(); \ | 421 pObj->ExitInstance(); \ |
| 422 delete pObj; \ | 422 delete pObj; \ |
| 423 } \ | 423 } \ |
| 424 \ | 424 \ |
| 425 void js_class_name::DefineJSObjects(v8::Isolate* pIsolate, \ | 425 void js_class_name::DefineJSObjects(v8::Isolate* pIsolate, \ |
| 426 FXJSOBJTYPE eObjType) { \ | 426 FXJSOBJTYPE eObjType) { \ |
| 427 int nObjDefnID = FXJS_DefineObj(pIsolate, js_class_name::m_pClassName, \ | 427 int nObjDefnID = FXJS_DefineObj(pIsolate, js_class_name::m_pClassName, \ |
| 428 eObjType, JSConstructor, JSDestructor); \ | 428 eObjType, JSConstructor, JSDestructor); \ |
| 429 for (int i = 0; i < FX_ArraySize(JS_Class_Properties) - 1; ++i) { \ | 429 for (size_t i = 0; i < FX_ArraySize(JS_Class_Properties) - 1; ++i) { \ |
| 430 FXJS_DefineObjProperty( \ | 430 FXJS_DefineObjProperty( \ |
| 431 pIsolate, nObjDefnID, JS_Class_Properties[i].pName, \ | 431 pIsolate, nObjDefnID, JS_Class_Properties[i].pName, \ |
| 432 JS_Class_Properties[i].pPropGet, JS_Class_Properties[i].pPropPut); \ | 432 JS_Class_Properties[i].pPropGet, JS_Class_Properties[i].pPropPut); \ |
| 433 } \ | 433 } \ |
| 434 \ | 434 \ |
| 435 for (int i = 0; i < FX_ArraySize(JS_Class_Methods) - 1; ++i) { \ | 435 for (size_t i = 0; i < FX_ArraySize(JS_Class_Methods) - 1; ++i) { \ |
| 436 FXJS_DefineObjMethod(pIsolate, nObjDefnID, JS_Class_Methods[i].pName, \ | 436 FXJS_DefineObjMethod(pIsolate, nObjDefnID, JS_Class_Methods[i].pName, \ |
| 437 JS_Class_Methods[i].pMethodCall); \ | 437 JS_Class_Methods[i].pMethodCall); \ |
| 438 } \ | 438 } \ |
| 439 FXJS_DefineObjAllProperties( \ | 439 FXJS_DefineObjAllProperties( \ |
| 440 pIsolate, nObjDefnID, \ | 440 pIsolate, nObjDefnID, \ |
| 441 js_class_name::queryprop_##js_class_name##_static, \ | 441 js_class_name::queryprop_##js_class_name##_static, \ |
| 442 js_class_name::getprop_##js_class_name##_static, \ | 442 js_class_name::getprop_##js_class_name##_static, \ |
| 443 js_class_name::putprop_##js_class_name##_static, \ | 443 js_class_name::putprop_##js_class_name##_static, \ |
| 444 js_class_name::delprop_##js_class_name##_static); \ | 444 js_class_name::delprop_##js_class_name##_static); \ |
| 445 } | 445 } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 486 | 486 |
| 487 #define BEGIN_JS_STATIC_GLOBAL_FUN(js_class_name) \ | 487 #define BEGIN_JS_STATIC_GLOBAL_FUN(js_class_name) \ |
| 488 JSMethodSpec js_class_name::global_methods[] = { | 488 JSMethodSpec js_class_name::global_methods[] = { |
| 489 #define JS_STATIC_GLOBAL_FUN_ENTRY(method_name) \ | 489 #define JS_STATIC_GLOBAL_FUN_ENTRY(method_name) \ |
| 490 JS_STATIC_METHOD_ENTRY(method_name) | 490 JS_STATIC_METHOD_ENTRY(method_name) |
| 491 | 491 |
| 492 #define END_JS_STATIC_GLOBAL_FUN() END_JS_STATIC_METHOD() | 492 #define END_JS_STATIC_GLOBAL_FUN() END_JS_STATIC_METHOD() |
| 493 | 493 |
| 494 #define IMPLEMENT_JS_STATIC_GLOBAL_FUN(js_class_name) \ | 494 #define IMPLEMENT_JS_STATIC_GLOBAL_FUN(js_class_name) \ |
| 495 void js_class_name::DefineJSObjects(v8::Isolate* pIsolate) { \ | 495 void js_class_name::DefineJSObjects(v8::Isolate* pIsolate) { \ |
| 496 for (int i = 0; i < FX_ArraySize(global_methods) - 1; ++i) { \ | 496 for (size_t i = 0; i < FX_ArraySize(global_methods) - 1; ++i) { \ |
| 497 FXJS_DefineGlobalMethod(pIsolate, \ | 497 FXJS_DefineGlobalMethod(pIsolate, \ |
| 498 js_class_name::global_methods[i].pName, \ | 498 js_class_name::global_methods[i].pName, \ |
| 499 js_class_name::global_methods[i].pMethodCall); \ | 499 js_class_name::global_methods[i].pMethodCall); \ |
| 500 } \ | 500 } \ |
| 501 } | 501 } |
| 502 | 502 |
| 503 CJS_Value::Type GET_VALUE_TYPE(v8::Local<v8::Value> p); | 503 CJS_Value::Type GET_VALUE_TYPE(v8::Local<v8::Value> p); |
| 504 | 504 |
| 505 #endif // FPDFSDK_INCLUDE_JAVASCRIPT_JS_DEFINE_H_ | 505 #endif // FPDFSDK_INCLUDE_JAVASCRIPT_JS_DEFINE_H_ |
| OLD | NEW |