| 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 "../../../core/include/fxcrt/fx_basic.h" | 7 #include "../../../core/include/fxcrt/fx_basic.h" |
| 8 #include "../../../core/include/fxcrt/fx_ext.h" | 8 #include "../../../core/include/fxcrt/fx_ext.h" |
| 9 #include "../../include/jsapi/fxjs_v8.h" | 9 #include "../../include/jsapi/fxjs_v8.h" |
| 10 #include "../../include/fsdk_define.h" | 10 #include "../../include/fsdk_define.h" |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 v8::Persistent<v8::ObjectTemplate> m_objTemplate; | 73 v8::Persistent<v8::ObjectTemplate> m_objTemplate; |
| 74 v8::Persistent<v8::Object> m_StaticObj; | 74 v8::Persistent<v8::Object> m_StaticObj; |
| 75 }; | 75 }; |
| 76 | 76 |
| 77 int JS_DefineObj(IJS_Runtime* pJSRuntime, const wchar_t* sObjName, FXJSOBJTYPE e
ObjType, LP_CONSTRUCTOR pConstructor, LP_DESTRUCTOR pDestructor, unsigned bApply
New) | 77 int JS_DefineObj(IJS_Runtime* pJSRuntime, const wchar_t* sObjName, FXJSOBJTYPE e
ObjType, LP_CONSTRUCTOR pConstructor, LP_DESTRUCTOR pDestructor, unsigned bApply
New) |
| 78 { | 78 { |
| 79 v8::Isolate* isolate = (v8::Isolate*)pJSRuntime; | 79 v8::Isolate* isolate = (v8::Isolate*)pJSRuntime; |
| 80 v8::Isolate::Scope isolate_scope(isolate); | 80 v8::Isolate::Scope isolate_scope(isolate); |
| 81 v8::HandleScope handle_scope(isolate); | 81 v8::HandleScope handle_scope(isolate); |
| 82 CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(0); | 82 CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(0); |
| 83 » if(!pArray) | 83 » if(!pArray) |
| 84 { | 84 { |
| 85 » » pArray = FX_NEW CFX_PtrArray(); | 85 » » pArray = new CFX_PtrArray(); |
| 86 isolate->SetData(0, pArray); | 86 isolate->SetData(0, pArray); |
| 87 } | 87 } |
| 88 » CJS_ObjDefintion* pObjDef = FX_NEW CJS_ObjDefintion(isolate, sObjName, e
ObjType, pConstructor, pDestructor, bApplyNew); | 88 » CJS_ObjDefintion* pObjDef = new CJS_ObjDefintion(isolate, sObjName, eObj
Type, pConstructor, pDestructor, bApplyNew); |
| 89 pArray->Add(pObjDef); | 89 pArray->Add(pObjDef); |
| 90 return pArray->GetSize()-1; | 90 return pArray->GetSize()-1; |
| 91 } | 91 } |
| 92 | 92 |
| 93 int JS_DefineObjMethod(IJS_Runtime* pJSRuntime, int nObjDefnID, const wchar_t* s
MethodName, v8::FunctionCallback pMethodCall, unsigned nParamNum) | 93 int JS_DefineObjMethod(IJS_Runtime* pJSRuntime, int nObjDefnID, const wchar_t* s
MethodName, v8::FunctionCallback pMethodCall, unsigned nParamNum) |
| 94 { | 94 { |
| 95 v8::Isolate* isolate = (v8::Isolate*)pJSRuntime; | 95 v8::Isolate* isolate = (v8::Isolate*)pJSRuntime; |
| 96 v8::Isolate::Scope isolate_scope(isolate); | 96 v8::Isolate::Scope isolate_scope(isolate); |
| 97 v8::HandleScope handle_scope(isolate); | 97 v8::HandleScope handle_scope(isolate); |
| 98 | 98 |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 CFX_ByteString bs = ws.UTF8Encode(); | 256 CFX_ByteString bs = ws.UTF8Encode(); |
| 257 v8::Handle<v8::String> objName = v8::String::NewFromUtf8(isolate
, bs.c_str(), v8::String::kNormalString, bs.GetLength()); | 257 v8::Handle<v8::String> objName = v8::String::NewFromUtf8(isolate
, bs.c_str(), v8::String::kNormalString, bs.GetLength()); |
| 258 | 258 |
| 259 | 259 |
| 260 if(pObjDef->objType == JS_DYNAMIC) | 260 if(pObjDef->objType == JS_DYNAMIC) |
| 261 { | 261 { |
| 262 //Document is set as global object, need to construct it
first. | 262 //Document is set as global object, need to construct it
first. |
| 263 if(ws.Equal(L"Document")) | 263 if(ws.Equal(L"Document")) |
| 264 { | 264 { |
| 265 | 265 |
| 266 » » » » CJS_PrivateData* pPrivateData = FX_NEW CJS_Priva
teData; | 266 » » » » CJS_PrivateData* pPrivateData = new CJS_PrivateD
ata; |
| 267 pPrivateData->ObjDefID = i; | 267 pPrivateData->ObjDefID = i; |
| 268 v8::Handle<v8::External> ptr = v8::External::New
(isolate, pPrivateData); | 268 v8::Handle<v8::External> ptr = v8::External::New
(isolate, pPrivateData); |
| 269 | 269 |
| 270 v8Context->Global()->GetPrototype()->ToObject()-
>SetInternalField(0, ptr); | 270 v8Context->Global()->GetPrototype()->ToObject()-
>SetInternalField(0, ptr); |
| 271 | 271 |
| 272 if(pObjDef->m_pConstructor) | 272 if(pObjDef->m_pConstructor) |
| 273 pObjDef->m_pConstructor(context, v8Conte
xt->Global()->GetPrototype()->ToObject(), v8Context->Global()->GetPrototype()->T
oObject()); | 273 pObjDef->m_pConstructor(context, v8Conte
xt->Global()->GetPrototype()->ToObject(), v8Context->Global()->GetPrototype()->T
oObject()); |
| 274 } | 274 } |
| 275 } | 275 } |
| 276 else | 276 else |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 370 | 370 |
| 371 CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(0); | 371 CFX_PtrArray* pArray = (CFX_PtrArray*)isolate->GetData(0); |
| 372 if(!pArray) return v8::Handle<v8::Object>(); | 372 if(!pArray) return v8::Handle<v8::Object>(); |
| 373 | 373 |
| 374 | 374 |
| 375 if(nObjDefnID<0 || nObjDefnID>= pArray->GetSize()) return v8::Handle<v8:
:Object>(); | 375 if(nObjDefnID<0 || nObjDefnID>= pArray->GetSize()) return v8::Handle<v8:
:Object>(); |
| 376 CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID)
; | 376 CJS_ObjDefintion* pObjDef = (CJS_ObjDefintion*)pArray->GetAt(nObjDefnID)
; |
| 377 | 377 |
| 378 v8::Local<v8::Context> context = isolate->GetCurrentContext(); | 378 v8::Local<v8::Context> context = isolate->GetCurrentContext(); |
| 379 v8::Local<v8::ObjectTemplate> objTemp = v8::Local<v8::ObjectTemplate>::N
ew(isolate, pObjDef->m_objTemplate); | 379 v8::Local<v8::ObjectTemplate> objTemp = v8::Local<v8::ObjectTemplate>::N
ew(isolate, pObjDef->m_objTemplate); |
| 380 v8::Local<v8::Object> obj = objTemp->NewInstance(); |
| 380 | 381 |
| 381 » v8::Local<v8::Object> obj = objTemp->NewInstance(); | 382 » CJS_PrivateData* pPrivateData = new CJS_PrivateData; |
| 382 » | |
| 383 » CJS_PrivateData* pPrivateData = FX_NEW CJS_PrivateData; | |
| 384 pPrivateData->ObjDefID = nObjDefnID; | 383 pPrivateData->ObjDefID = nObjDefnID; |
| 384 |
| 385 v8::Handle<v8::External> ptr = v8::External::New(isolate, pPrivateData); | 385 v8::Handle<v8::External> ptr = v8::External::New(isolate, pPrivateData); |
| 386 » obj->SetInternalField(0, ptr); | 386 » obj->SetInternalField(0, ptr); |
| 387 | |
| 388 if(pObjDef->m_pConstructor) | 387 if(pObjDef->m_pConstructor) |
| 389 pObjDef->m_pConstructor(pJSContext, obj, context->Global()->GetP
rototype()->ToObject()); | 388 pObjDef->m_pConstructor(pJSContext, obj, context->Global()->GetP
rototype()->ToObject()); |
| 390 | 389 |
| 391 return obj; | 390 return obj; |
| 392 } | 391 } |
| 393 | 392 |
| 394 v8::Handle<v8::Object> JS_GetStaticObj(IJS_Runtime* pJSRuntime, int nObjDefnID) | 393 v8::Handle<v8::Object> JS_GetStaticObj(IJS_Runtime* pJSRuntime, int nObjDefnID) |
| 395 { | 394 { |
| 396 v8::Isolate* isolate = (v8::Isolate*)pJSRuntime; | 395 v8::Isolate* isolate = (v8::Isolate*)pJSRuntime; |
| 397 v8::Isolate::Scope isolate_scope(isolate); | 396 v8::Isolate::Scope isolate_scope(isolate); |
| (...skipping 643 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1041 { | 1040 { |
| 1042 return d != d; | 1041 return d != d; |
| 1043 } | 1042 } |
| 1044 | 1043 |
| 1045 double JS_LocalTime(double d) | 1044 double JS_LocalTime(double d) |
| 1046 { | 1045 { |
| 1047 return JS_GetDateTime() + _getDaylightSavingTA(d); | 1046 return JS_GetDateTime() + _getDaylightSavingTA(d); |
| 1048 } | 1047 } |
| 1049 | 1048 |
| 1050 //JavaScript time implement End. | 1049 //JavaScript time implement End. |
| OLD | NEW |