| 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/fsdk_define.h" | 8 #include "../../include/fsdk_define.h" |
| 9 #include "../../include/jsapi/fxjs_v8.h" | 9 #include "../../include/jsapi/fxjs_v8.h" |
| 10 | 10 |
| (...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 490 if (pObj->IsDate()) | 490 if (pObj->IsDate()) |
| 491 return kFXJSValueNameDate; | 491 return kFXJSValueNameDate; |
| 492 if (pObj->IsObject()) | 492 if (pObj->IsObject()) |
| 493 return kFXJSValueNameObject; | 493 return kFXJSValueNameObject; |
| 494 if (pObj->IsNull()) | 494 if (pObj->IsNull()) |
| 495 return kFXJSValueNameNull; | 495 return kFXJSValueNameNull; |
| 496 if (pObj->IsUndefined()) | 496 if (pObj->IsUndefined()) |
| 497 return kFXJSValueNameUndefined; | 497 return kFXJSValueNameUndefined; |
| 498 return NULL; | 498 return NULL; |
| 499 } | 499 } |
| 500 void FXJS_SetPrivate(v8::Local<v8::Object> pObj, void* p) { | |
| 501 FXJS_SetPrivate(NULL, pObj, p); | |
| 502 } | |
| 503 | |
| 504 void* FXJS_GetPrivate(v8::Local<v8::Object> pObj) { | |
| 505 return FXJS_GetPrivate(NULL, pObj); | |
| 506 } | |
| 507 | 500 |
| 508 void FXJS_SetPrivate(v8::Isolate* pIsolate, | 501 void FXJS_SetPrivate(v8::Isolate* pIsolate, |
| 509 v8::Local<v8::Object> pObj, | 502 v8::Local<v8::Object> pObj, |
| 510 void* p) { | 503 void* p) { |
| 511 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) | 504 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) |
| 512 return; | 505 return; |
| 513 CFXJS_PrivateData* pPrivateData = | 506 CFXJS_PrivateData* pPrivateData = |
| 514 (CFXJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0); | 507 (CFXJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0); |
| 515 if (!pPrivateData) | 508 if (!pPrivateData) |
| 516 return; | 509 return; |
| 517 pPrivateData->pPrivate = p; | 510 pPrivateData->pPrivate = p; |
| 518 } | 511 } |
| 519 | 512 |
| 520 void* FXJS_GetPrivate(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj) { | 513 void* FXJS_GetPrivate(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj) { |
| 521 if (pObj.IsEmpty()) | 514 if (pObj.IsEmpty()) |
| 522 return NULL; | 515 return nullptr; |
| 523 CFXJS_PrivateData* pPrivateData = NULL; | 516 CFXJS_PrivateData* pPrivateData = nullptr; |
| 524 if (pObj->InternalFieldCount()) | 517 if (pObj->InternalFieldCount()) { |
| 525 pPrivateData = | 518 pPrivateData = |
| 526 (CFXJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0); | 519 (CFXJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0); |
| 527 else { | 520 } else { |
| 528 // It could be a global proxy object. | 521 // It could be a global proxy object. |
| 529 v8::Local<v8::Value> v = pObj->GetPrototype(); | 522 v8::Local<v8::Value> v = pObj->GetPrototype(); |
| 530 v8::Isolate* isolate = (v8::Isolate*)pIsolate; | 523 v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); |
| 531 v8::Local<v8::Context> context = isolate->GetCurrentContext(); | |
| 532 if (v->IsObject()) | 524 if (v->IsObject()) |
| 533 pPrivateData = (CFXJS_PrivateData*)v->ToObject(context) | 525 pPrivateData = (CFXJS_PrivateData*)v->ToObject(context) |
| 534 .ToLocalChecked() | 526 .ToLocalChecked() |
| 535 ->GetAlignedPointerFromInternalField(0); | 527 ->GetAlignedPointerFromInternalField(0); |
| 536 } | 528 } |
| 537 if (!pPrivateData) | 529 return pPrivateData ? pPrivateData->pPrivate : nullptr; |
| 538 return NULL; | |
| 539 return pPrivateData->pPrivate; | |
| 540 } | 530 } |
| 541 | 531 |
| 542 void FXJS_FreePrivate(void* pPrivateData) { | 532 void FXJS_FreePrivate(void* pPrivateData) { |
| 543 delete (CFXJS_PrivateData*)pPrivateData; | 533 delete (CFXJS_PrivateData*)pPrivateData; |
| 544 } | 534 } |
| 545 | 535 |
| 546 void FXJS_FreePrivate(v8::Local<v8::Object> pObj) { | 536 void FXJS_FreePrivate(v8::Local<v8::Object> pObj) { |
| 547 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) | 537 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) |
| 548 return; | 538 return; |
| 549 FXJS_FreePrivate(pObj->GetAlignedPointerFromInternalField(0)); | 539 FXJS_FreePrivate(pObj->GetAlignedPointerFromInternalField(0)); |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 778 return v8::Local<v8::Array>(); | 768 return v8::Local<v8::Array>(); |
| 779 v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); | 769 v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); |
| 780 return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked()); | 770 return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked()); |
| 781 } | 771 } |
| 782 | 772 |
| 783 void FXJS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom) { | 773 void FXJS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom) { |
| 784 pTo = pFrom; | 774 pTo = pFrom; |
| 785 } | 775 } |
| 786 | 776 |
| 787 | 777 |
| OLD | NEW |