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 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
506 // intermediate format. | 506 // intermediate format. |
507 CFX_ByteString utf8_message = message.UTF8Encode(); | 507 CFX_ByteString utf8_message = message.UTF8Encode(); |
508 pIsolate->ThrowException(v8::String::NewFromUtf8(pIsolate, | 508 pIsolate->ThrowException(v8::String::NewFromUtf8(pIsolate, |
509 utf8_message.c_str(), | 509 utf8_message.c_str(), |
510 v8::NewStringType::kNormal) | 510 v8::NewStringType::kNormal) |
511 .ToLocalChecked()); | 511 .ToLocalChecked()); |
512 } | 512 } |
513 | 513 |
514 const wchar_t* FXJS_GetTypeof(v8::Local<v8::Value> pObj) { | 514 const wchar_t* FXJS_GetTypeof(v8::Local<v8::Value> pObj) { |
515 if (pObj.IsEmpty()) | 515 if (pObj.IsEmpty()) |
516 return NULL; | 516 return nullptr; |
517 if (pObj->IsString()) | 517 if (pObj->IsString()) |
518 return kFXJSValueNameString; | 518 return kFXJSValueNameString; |
519 if (pObj->IsNumber()) | 519 if (pObj->IsNumber()) |
520 return kFXJSValueNameNumber; | 520 return kFXJSValueNameNumber; |
521 if (pObj->IsBoolean()) | 521 if (pObj->IsBoolean()) |
522 return kFXJSValueNameBoolean; | 522 return kFXJSValueNameBoolean; |
523 if (pObj->IsDate()) | 523 if (pObj->IsDate()) |
524 return kFXJSValueNameDate; | 524 return kFXJSValueNameDate; |
525 if (pObj->IsObject()) | 525 if (pObj->IsObject()) |
526 return kFXJSValueNameObject; | 526 return kFXJSValueNameObject; |
527 if (pObj->IsNull()) | 527 if (pObj->IsNull()) |
528 return kFXJSValueNameNull; | 528 return kFXJSValueNameNull; |
529 if (pObj->IsUndefined()) | 529 if (pObj->IsUndefined()) |
530 return kFXJSValueNameUndefined; | 530 return kFXJSValueNameUndefined; |
531 return NULL; | 531 return nullptr; |
532 } | 532 } |
533 | 533 |
534 void FXJS_SetPrivate(v8::Isolate* pIsolate, | 534 void FXJS_SetPrivate(v8::Isolate* pIsolate, |
535 v8::Local<v8::Object> pObj, | 535 v8::Local<v8::Object> pObj, |
536 void* p) { | 536 void* p) { |
537 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) | 537 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) |
538 return; | 538 return; |
539 CFXJS_PerObjectData* pPerObjectData = static_cast<CFXJS_PerObjectData*>( | 539 CFXJS_PerObjectData* pPerObjectData = static_cast<CFXJS_PerObjectData*>( |
540 pObj->GetAlignedPointerFromInternalField(0)); | 540 pObj->GetAlignedPointerFromInternalField(0)); |
541 if (!pPerObjectData) | 541 if (!pPerObjectData) |
(...skipping 23 matching lines...) Expand all Loading... |
565 } | 565 } |
566 | 566 |
567 void FXJS_FreePrivate(void* pPerObjectData) { | 567 void FXJS_FreePrivate(void* pPerObjectData) { |
568 delete static_cast<CFXJS_PerObjectData*>(pPerObjectData); | 568 delete static_cast<CFXJS_PerObjectData*>(pPerObjectData); |
569 } | 569 } |
570 | 570 |
571 void FXJS_FreePrivate(v8::Local<v8::Object> pObj) { | 571 void FXJS_FreePrivate(v8::Local<v8::Object> pObj) { |
572 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) | 572 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) |
573 return; | 573 return; |
574 FXJS_FreePrivate(pObj->GetAlignedPointerFromInternalField(0)); | 574 FXJS_FreePrivate(pObj->GetAlignedPointerFromInternalField(0)); |
575 pObj->SetAlignedPointerInInternalField(0, NULL); | 575 pObj->SetAlignedPointerInInternalField(0, nullptr); |
576 } | 576 } |
577 | 577 |
578 v8::Local<v8::String> FXJS_WSToJSString(v8::Isolate* pIsolate, | 578 v8::Local<v8::String> FXJS_WSToJSString(v8::Isolate* pIsolate, |
579 const CFX_WideString& wsPropertyName) { | 579 const CFX_WideString& wsPropertyName) { |
580 CFX_ByteString bs = wsPropertyName.UTF8Encode(); | 580 CFX_ByteString bs = wsPropertyName.UTF8Encode(); |
581 if (!pIsolate) | 581 if (!pIsolate) |
582 pIsolate = v8::Isolate::GetCurrent(); | 582 pIsolate = v8::Isolate::GetCurrent(); |
583 return v8::String::NewFromUtf8(pIsolate, bs.c_str(), | 583 return v8::String::NewFromUtf8(pIsolate, bs.c_str(), |
584 v8::NewStringType::kNormal, bs.GetLength()) | 584 v8::NewStringType::kNormal, bs.GetLength()) |
585 .ToLocalChecked(); | 585 .ToLocalChecked(); |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
807 v8::Local<v8::Value> pValue) { | 807 v8::Local<v8::Value> pValue) { |
808 if (pValue.IsEmpty()) | 808 if (pValue.IsEmpty()) |
809 return v8::Local<v8::Array>(); | 809 return v8::Local<v8::Array>(); |
810 v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); | 810 v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); |
811 return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked()); | 811 return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked()); |
812 } | 812 } |
813 | 813 |
814 void FXJS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom) { | 814 void FXJS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom) { |
815 pTo = pFrom; | 815 pTo = pFrom; |
816 } | 816 } |
OLD | NEW |