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 "fpdfsdk/jsapi/include/fxjs_v8.h" | 7 #include "fpdfsdk/jsapi/include/fxjs_v8.h" |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 v8::Isolate* pIsolate, | 307 v8::Isolate* pIsolate, |
308 IJS_Runtime* pIRuntime, | 308 IJS_Runtime* pIRuntime, |
309 v8::Global<v8::Context>* pV8PersistentContext, | 309 v8::Global<v8::Context>* pV8PersistentContext, |
310 std::vector<v8::Global<v8::Object>*>* pStaticObjects) { | 310 std::vector<v8::Global<v8::Object>*>* pStaticObjects) { |
311 if (pIsolate == g_isolate) | 311 if (pIsolate == g_isolate) |
312 ++g_isolate_ref_count; | 312 ++g_isolate_ref_count; |
313 | 313 |
314 v8::Isolate::Scope isolate_scope(pIsolate); | 314 v8::Isolate::Scope isolate_scope(pIsolate); |
315 v8::HandleScope handle_scope(pIsolate); | 315 v8::HandleScope handle_scope(pIsolate); |
316 v8::Local<v8::Context> v8Context = | 316 v8::Local<v8::Context> v8Context = |
317 v8::Context::New(pIsolate, NULL, GetGlobalObjectTemplate(pIsolate)); | 317 v8::Context::New(pIsolate, nullptr, GetGlobalObjectTemplate(pIsolate)); |
318 v8::Context::Scope context_scope(v8Context); | 318 v8::Context::Scope context_scope(v8Context); |
319 | 319 |
320 FXJS_PerIsolateData::SetUp(pIsolate); | 320 FXJS_PerIsolateData::SetUp(pIsolate); |
321 FXJS_PerIsolateData* pData = FXJS_PerIsolateData::Get(pIsolate); | 321 FXJS_PerIsolateData* pData = FXJS_PerIsolateData::Get(pIsolate); |
322 if (!pData) | 322 if (!pData) |
323 return; | 323 return; |
324 pData->CreateDynamicObjsMap(pIsolate); | 324 pData->CreateDynamicObjsMap(pIsolate); |
325 v8Context->SetAlignedPointerInEmbedderData(kPerContextDataIndex, pIRuntime); | 325 v8Context->SetAlignedPointerInEmbedderData(kPerContextDataIndex, pIRuntime); |
326 | 326 |
327 int maxID = CFXJS_ObjDefinition::MaxID(pIsolate); | 327 int maxID = CFXJS_ObjDefinition::MaxID(pIsolate); |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 // intermediate format. | 507 // intermediate format. |
508 CFX_ByteString utf8_message = message.UTF8Encode(); | 508 CFX_ByteString utf8_message = message.UTF8Encode(); |
509 pIsolate->ThrowException(v8::String::NewFromUtf8(pIsolate, | 509 pIsolate->ThrowException(v8::String::NewFromUtf8(pIsolate, |
510 utf8_message.c_str(), | 510 utf8_message.c_str(), |
511 v8::NewStringType::kNormal) | 511 v8::NewStringType::kNormal) |
512 .ToLocalChecked()); | 512 .ToLocalChecked()); |
513 } | 513 } |
514 | 514 |
515 const wchar_t* FXJS_GetTypeof(v8::Local<v8::Value> pObj) { | 515 const wchar_t* FXJS_GetTypeof(v8::Local<v8::Value> pObj) { |
516 if (pObj.IsEmpty()) | 516 if (pObj.IsEmpty()) |
517 return NULL; | 517 return nullptr; |
518 if (pObj->IsString()) | 518 if (pObj->IsString()) |
519 return kFXJSValueNameString; | 519 return kFXJSValueNameString; |
520 if (pObj->IsNumber()) | 520 if (pObj->IsNumber()) |
521 return kFXJSValueNameNumber; | 521 return kFXJSValueNameNumber; |
522 if (pObj->IsBoolean()) | 522 if (pObj->IsBoolean()) |
523 return kFXJSValueNameBoolean; | 523 return kFXJSValueNameBoolean; |
524 if (pObj->IsDate()) | 524 if (pObj->IsDate()) |
525 return kFXJSValueNameDate; | 525 return kFXJSValueNameDate; |
526 if (pObj->IsObject()) | 526 if (pObj->IsObject()) |
527 return kFXJSValueNameObject; | 527 return kFXJSValueNameObject; |
528 if (pObj->IsNull()) | 528 if (pObj->IsNull()) |
529 return kFXJSValueNameNull; | 529 return kFXJSValueNameNull; |
530 if (pObj->IsUndefined()) | 530 if (pObj->IsUndefined()) |
531 return kFXJSValueNameUndefined; | 531 return kFXJSValueNameUndefined; |
532 return NULL; | 532 return nullptr; |
533 } | 533 } |
534 | 534 |
535 void FXJS_SetPrivate(v8::Isolate* pIsolate, | 535 void FXJS_SetPrivate(v8::Isolate* pIsolate, |
536 v8::Local<v8::Object> pObj, | 536 v8::Local<v8::Object> pObj, |
537 void* p) { | 537 void* p) { |
538 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) | 538 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) |
539 return; | 539 return; |
540 CFXJS_PerObjectData* pPerObjectData = static_cast<CFXJS_PerObjectData*>( | 540 CFXJS_PerObjectData* pPerObjectData = static_cast<CFXJS_PerObjectData*>( |
541 pObj->GetAlignedPointerFromInternalField(0)); | 541 pObj->GetAlignedPointerFromInternalField(0)); |
542 if (!pPerObjectData) | 542 if (!pPerObjectData) |
(...skipping 23 matching lines...) Expand all Loading... |
566 } | 566 } |
567 | 567 |
568 void FXJS_FreePrivate(void* pPerObjectData) { | 568 void FXJS_FreePrivate(void* pPerObjectData) { |
569 delete static_cast<CFXJS_PerObjectData*>(pPerObjectData); | 569 delete static_cast<CFXJS_PerObjectData*>(pPerObjectData); |
570 } | 570 } |
571 | 571 |
572 void FXJS_FreePrivate(v8::Local<v8::Object> pObj) { | 572 void FXJS_FreePrivate(v8::Local<v8::Object> pObj) { |
573 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) | 573 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) |
574 return; | 574 return; |
575 FXJS_FreePrivate(pObj->GetAlignedPointerFromInternalField(0)); | 575 FXJS_FreePrivate(pObj->GetAlignedPointerFromInternalField(0)); |
576 pObj->SetAlignedPointerInInternalField(0, NULL); | 576 pObj->SetAlignedPointerInInternalField(0, nullptr); |
577 } | 577 } |
578 | 578 |
579 v8::Local<v8::String> FXJS_WSToJSString(v8::Isolate* pIsolate, | 579 v8::Local<v8::String> FXJS_WSToJSString(v8::Isolate* pIsolate, |
580 const CFX_WideString& wsPropertyName) { | 580 const CFX_WideString& wsPropertyName) { |
581 CFX_ByteString bs = wsPropertyName.UTF8Encode(); | 581 CFX_ByteString bs = wsPropertyName.UTF8Encode(); |
582 if (!pIsolate) | 582 if (!pIsolate) |
583 pIsolate = v8::Isolate::GetCurrent(); | 583 pIsolate = v8::Isolate::GetCurrent(); |
584 return v8::String::NewFromUtf8(pIsolate, bs.c_str(), | 584 return v8::String::NewFromUtf8(pIsolate, bs.c_str(), |
585 v8::NewStringType::kNormal, bs.GetLength()) | 585 v8::NewStringType::kNormal, bs.GetLength()) |
586 .ToLocalChecked(); | 586 .ToLocalChecked(); |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
808 v8::Local<v8::Value> pValue) { | 808 v8::Local<v8::Value> pValue) { |
809 if (pValue.IsEmpty()) | 809 if (pValue.IsEmpty()) |
810 return v8::Local<v8::Array>(); | 810 return v8::Local<v8::Array>(); |
811 v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); | 811 v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); |
812 return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked()); | 812 return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked()); |
813 } | 813 } |
814 | 814 |
815 void FXJS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom) { | 815 void FXJS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom) { |
816 pTo = pFrom; | 816 pTo = pFrom; |
817 } | 817 } |
OLD | NEW |