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 471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
482 if (pObj->IsDate()) | 482 if (pObj->IsDate()) |
483 return kFXJSValueNameDate; | 483 return kFXJSValueNameDate; |
484 if (pObj->IsObject()) | 484 if (pObj->IsObject()) |
485 return kFXJSValueNameObject; | 485 return kFXJSValueNameObject; |
486 if (pObj->IsNull()) | 486 if (pObj->IsNull()) |
487 return kFXJSValueNameNull; | 487 return kFXJSValueNameNull; |
488 if (pObj->IsUndefined()) | 488 if (pObj->IsUndefined()) |
489 return kFXJSValueNameUndefined; | 489 return kFXJSValueNameUndefined; |
490 return NULL; | 490 return NULL; |
491 } | 491 } |
492 void FXJS_SetPrivate(v8::Local<v8::Object> pObj, void* p) { | |
493 FXJS_SetPrivate(NULL, pObj, p); | |
494 } | |
495 | |
496 void* FXJS_GetPrivate(v8::Local<v8::Object> pObj) { | |
497 return FXJS_GetPrivate(NULL, pObj); | |
498 } | |
499 | 492 |
500 void FXJS_SetPrivate(v8::Isolate* pIsolate, | 493 void FXJS_SetPrivate(v8::Isolate* pIsolate, |
501 v8::Local<v8::Object> pObj, | 494 v8::Local<v8::Object> pObj, |
502 void* p) { | 495 void* p) { |
503 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) | 496 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) |
504 return; | 497 return; |
505 CFXJS_PrivateData* pPrivateData = | 498 CFXJS_PrivateData* pPrivateData = |
506 (CFXJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0); | 499 (CFXJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0); |
507 if (!pPrivateData) | 500 if (!pPrivateData) |
508 return; | 501 return; |
509 pPrivateData->pPrivate = p; | 502 pPrivateData->pPrivate = p; |
510 } | 503 } |
511 | 504 |
512 void* FXJS_GetPrivate(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj) { | 505 void* FXJS_GetPrivate(v8::Isolate* pIsolate, v8::Local<v8::Object> pObj) { |
513 if (pObj.IsEmpty()) | 506 if (pObj.IsEmpty()) |
514 return NULL; | 507 return nullptr; |
515 CFXJS_PrivateData* pPrivateData = NULL; | 508 CFXJS_PrivateData* pPrivateData = nullptr; |
516 if (pObj->InternalFieldCount()) | 509 if (pObj->InternalFieldCount()) { |
517 pPrivateData = | 510 pPrivateData = |
518 (CFXJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0); | 511 (CFXJS_PrivateData*)pObj->GetAlignedPointerFromInternalField(0); |
519 else { | 512 } else { |
520 // It could be a global proxy object. | 513 // It could be a global proxy object. |
521 v8::Local<v8::Value> v = pObj->GetPrototype(); | 514 v8::Local<v8::Value> v = pObj->GetPrototype(); |
522 v8::Isolate* isolate = (v8::Isolate*)pIsolate; | 515 v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); |
523 v8::Local<v8::Context> context = isolate->GetCurrentContext(); | |
524 if (v->IsObject()) | 516 if (v->IsObject()) |
525 pPrivateData = (CFXJS_PrivateData*)v->ToObject(context) | 517 pPrivateData = (CFXJS_PrivateData*)v->ToObject(context) |
526 .ToLocalChecked() | 518 .ToLocalChecked() |
527 ->GetAlignedPointerFromInternalField(0); | 519 ->GetAlignedPointerFromInternalField(0); |
528 } | 520 } |
529 if (!pPrivateData) | 521 return pPrivateData ? pPrivateData->pPrivate : nullptr; |
530 return NULL; | |
531 return pPrivateData->pPrivate; | |
532 } | 522 } |
533 | 523 |
534 void FXJS_FreePrivate(void* pPrivateData) { | 524 void FXJS_FreePrivate(void* pPrivateData) { |
535 delete (CFXJS_PrivateData*)pPrivateData; | 525 delete (CFXJS_PrivateData*)pPrivateData; |
536 } | 526 } |
537 | 527 |
538 void FXJS_FreePrivate(v8::Local<v8::Object> pObj) { | 528 void FXJS_FreePrivate(v8::Local<v8::Object> pObj) { |
539 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) | 529 if (pObj.IsEmpty() || !pObj->InternalFieldCount()) |
540 return; | 530 return; |
541 FXJS_FreePrivate(pObj->GetAlignedPointerFromInternalField(0)); | 531 FXJS_FreePrivate(pObj->GetAlignedPointerFromInternalField(0)); |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
770 return v8::Local<v8::Array>(); | 760 return v8::Local<v8::Array>(); |
771 v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); | 761 v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); |
772 return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked()); | 762 return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked()); |
773 } | 763 } |
774 | 764 |
775 void FXJS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom) { | 765 void FXJS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom) { |
776 pTo = pFrom; | 766 pTo = pFrom; |
777 } | 767 } |
778 | 768 |
779 | 769 |
OLD | NEW |