| 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 "../../include/jsapi/fxjs_v8.h" | 8 #include "../../include/jsapi/fxjs_v8.h" |
| 9 | 9 |
| 10 const wchar_t kFXJSValueNameString[] = L"string"; | 10 const wchar_t kFXJSValueNameString[] = L"string"; |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 286 v8Context->Global() | 286 v8Context->Global() |
| 287 ->GetPrototype() | 287 ->GetPrototype() |
| 288 ->ToObject(v8Context) | 288 ->ToObject(v8Context) |
| 289 .ToLocalChecked() | 289 .ToLocalChecked() |
| 290 ->SetAlignedPointerInInternalField(0, new CFXJS_PrivateData(i)); | 290 ->SetAlignedPointerInInternalField(0, new CFXJS_PrivateData(i)); |
| 291 | 291 |
| 292 if (pObjDef->m_pConstructor) | 292 if (pObjDef->m_pConstructor) |
| 293 pObjDef->m_pConstructor(context, v8Context->Global() | 293 pObjDef->m_pConstructor(context, v8Context->Global() |
| 294 ->GetPrototype() | 294 ->GetPrototype() |
| 295 ->ToObject(v8Context) | 295 ->ToObject(v8Context) |
| 296 .ToLocalChecked(), | 296 .ToLocalChecked()); |
| 297 v8Context->Global() | |
| 298 ->GetPrototype() | |
| 299 ->ToObject(v8Context) | |
| 300 .ToLocalChecked()); | |
| 301 } else if (pObjDef->m_ObjType == FXJSOBJTYPE_STATIC) { | 297 } else if (pObjDef->m_ObjType == FXJSOBJTYPE_STATIC) { |
| 302 v8::Local<v8::Object> obj = FXJS_NewFxDynamicObj(pIsolate, context, i); | 298 v8::Local<v8::Object> obj = FXJS_NewFxDynamicObj(pIsolate, context, i); |
| 303 v8Context->Global()->Set(v8Context, m_ObjName, obj).FromJust(); | 299 v8Context->Global()->Set(v8Context, m_ObjName, obj).FromJust(); |
| 304 pObjDef->m_StaticObj.Reset(pIsolate, obj); | 300 pObjDef->m_StaticObj.Reset(pIsolate, obj); |
| 305 } | 301 } |
| 306 } | 302 } |
| 307 v8PersistentContext.Reset(pIsolate, v8Context); | 303 v8PersistentContext.Reset(pIsolate, v8Context); |
| 308 } | 304 } |
| 309 | 305 |
| 310 void FXJS_ReleaseRuntime(v8::Isolate* pIsolate, | 306 void FXJS_ReleaseRuntime(v8::Isolate* pIsolate, |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 return v8::Local<v8::Object>(); | 392 return v8::Local<v8::Object>(); |
| 397 | 393 |
| 398 CFXJS_ObjDefinition* pObjDef = | 394 CFXJS_ObjDefinition* pObjDef = |
| 399 CFXJS_ObjDefinition::ForID(pIsolate, nObjDefnID); | 395 CFXJS_ObjDefinition::ForID(pIsolate, nObjDefnID); |
| 400 v8::Local<v8::Object> obj; | 396 v8::Local<v8::Object> obj; |
| 401 if (!pObjDef->GetInstanceTemplate()->NewInstance(context).ToLocal(&obj)) | 397 if (!pObjDef->GetInstanceTemplate()->NewInstance(context).ToLocal(&obj)) |
| 402 return v8::Local<v8::Object>(); | 398 return v8::Local<v8::Object>(); |
| 403 | 399 |
| 404 obj->SetAlignedPointerInInternalField(0, new CFXJS_PrivateData(nObjDefnID)); | 400 obj->SetAlignedPointerInInternalField(0, new CFXJS_PrivateData(nObjDefnID)); |
| 405 if (pObjDef->m_pConstructor) | 401 if (pObjDef->m_pConstructor) |
| 406 pObjDef->m_pConstructor( | 402 pObjDef->m_pConstructor(pJSContext, obj); |
| 407 pJSContext, obj, | |
| 408 context->Global()->GetPrototype()->ToObject(context).ToLocalChecked()); | |
| 409 | 403 |
| 410 return obj; | 404 return obj; |
| 411 } | 405 } |
| 412 | 406 |
| 413 v8::Local<v8::Object> FXJS_GetThisObj(v8::Isolate* pIsolate) { | 407 v8::Local<v8::Object> FXJS_GetThisObj(v8::Isolate* pIsolate) { |
| 414 v8::Isolate::Scope isolate_scope(pIsolate); | 408 v8::Isolate::Scope isolate_scope(pIsolate); |
| 415 if (!FXJS_PerIsolateData::Get(pIsolate)) | 409 if (!FXJS_PerIsolateData::Get(pIsolate)) |
| 416 return v8::Local<v8::Object>(); | 410 return v8::Local<v8::Object>(); |
| 417 | 411 |
| 418 // Return the global object. | 412 // Return the global object. |
| (...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 739 return v8::Local<v8::Array>(); | 733 return v8::Local<v8::Array>(); |
| 740 v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); | 734 v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); |
| 741 return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked()); | 735 return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked()); |
| 742 } | 736 } |
| 743 | 737 |
| 744 void FXJS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom) { | 738 void FXJS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom) { |
| 745 pTo = pFrom; | 739 pTo = pFrom; |
| 746 } | 740 } |
| 747 | 741 |
| 748 | 742 |
| OLD | NEW |