| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project 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 /** \mainpage V8 API Reference Guide | 5 /** \mainpage V8 API Reference Guide |
| 6 * | 6 * |
| 7 * V8 is Google's open source JavaScript engine. | 7 * V8 is Google's open source JavaScript engine. |
| 8 * | 8 * |
| 9 * This set of documents provides reference material generated from the | 9 * This set of documents provides reference material generated from the |
| 10 * V8 header file, include/v8.h. | 10 * V8 header file, include/v8.h. |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 464 V8_INLINE Local<T> Get(Isolate* isolate); | 464 V8_INLINE Local<T> Get(Isolate* isolate); |
| 465 V8_INLINE bool IsEmpty() { return index_ == kInitialValue; } | 465 V8_INLINE bool IsEmpty() { return index_ == kInitialValue; } |
| 466 template<class S> V8_INLINE void Set(Isolate* isolate, Local<S> handle); | 466 template<class S> V8_INLINE void Set(Isolate* isolate, Local<S> handle); |
| 467 | 467 |
| 468 private: | 468 private: |
| 469 static const int kInitialValue = -1; | 469 static const int kInitialValue = -1; |
| 470 int index_; | 470 int index_; |
| 471 }; | 471 }; |
| 472 | 472 |
| 473 | 473 |
| 474 static const int kInternalFieldsInWeakCallback = 2; |
| 475 |
| 476 |
| 474 template <typename T> | 477 template <typename T> |
| 475 class WeakCallbackInfo { | 478 class WeakCallbackInfo { |
| 476 public: | 479 public: |
| 477 typedef void (*Callback)(const WeakCallbackInfo<T>& data); | 480 typedef void (*Callback)(const WeakCallbackInfo<T>& data); |
| 478 | 481 |
| 479 WeakCallbackInfo(Isolate* isolate, T* parameter, void* internal_field1, | 482 WeakCallbackInfo(Isolate* isolate, T* parameter, void* internal_field1, |
| 480 void* internal_field2) | 483 void* internal_field2) |
| 481 : isolate_(isolate), | 484 : isolate_(isolate), parameter_(parameter) { |
| 482 parameter_(parameter), | 485 internal_fields_[0] = internal_field1; |
| 483 internal_field1_(internal_field1), | 486 internal_fields_[1] = internal_field2; |
| 484 internal_field2_(internal_field2) {} | 487 } |
| 485 | 488 |
| 486 V8_INLINE Isolate* GetIsolate() const { return isolate_; } | 489 V8_INLINE Isolate* GetIsolate() const { return isolate_; } |
| 487 V8_INLINE T* GetParameter() const { return parameter_; } | 490 V8_INLINE T* GetParameter() const { return parameter_; } |
| 488 V8_INLINE void* GetInternalField1() const { return internal_field1_; } | 491 V8_INLINE void* GetInternalField(int index) const; |
| 489 V8_INLINE void* GetInternalField2() const { return internal_field2_; } | 492 |
| 493 V8_INLINE V8_DEPRECATE_SOON("use indexed version", |
| 494 void* GetInternalField1()) const { |
| 495 return internal_fields_[0]; |
| 496 } |
| 497 V8_INLINE V8_DEPRECATE_SOON("use indexed version", |
| 498 void* GetInternalField2()) const { |
| 499 return internal_fields_[1]; |
| 500 } |
| 490 | 501 |
| 491 private: | 502 private: |
| 492 Isolate* isolate_; | 503 Isolate* isolate_; |
| 493 T* parameter_; | 504 T* parameter_; |
| 494 void* internal_field1_; | 505 void* internal_fields_[2]; |
| 495 void* internal_field2_; | |
| 496 }; | 506 }; |
| 497 | 507 |
| 498 | 508 |
| 499 template <class T, class P> | 509 template <class T, class P> |
| 500 class WeakCallbackData { | 510 class WeakCallbackData { |
| 501 public: | 511 public: |
| 502 typedef void (*Callback)(const WeakCallbackData<T, P>& data); | 512 typedef void (*Callback)(const WeakCallbackData<T, P>& data); |
| 503 | 513 |
| 504 WeakCallbackData(Isolate* isolate, P* parameter, Local<T> handle) | 514 WeakCallbackData(Isolate* isolate, P* parameter, Local<T> handle) |
| 505 : isolate_(isolate), parameter_(parameter), handle_(handle) {} | 515 : isolate_(isolate), parameter_(parameter), handle_(handle) {} |
| (...skipping 5461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5967 int internal_field_index2, | 5977 int internal_field_index2, |
| 5968 WeakCallbackInfo<void>::Callback weak_callback); | 5978 WeakCallbackInfo<void>::Callback weak_callback); |
| 5969 static void* ClearWeak(internal::Object** global_handle); | 5979 static void* ClearWeak(internal::Object** global_handle); |
| 5970 static void Eternalize(Isolate* isolate, | 5980 static void Eternalize(Isolate* isolate, |
| 5971 Value* handle, | 5981 Value* handle, |
| 5972 int* index); | 5982 int* index); |
| 5973 static Local<Value> GetEternal(Isolate* isolate, int index); | 5983 static Local<Value> GetEternal(Isolate* isolate, int index); |
| 5974 | 5984 |
| 5975 static void CheckIsJust(bool is_just); | 5985 static void CheckIsJust(bool is_just); |
| 5976 static void ToLocalEmpty(); | 5986 static void ToLocalEmpty(); |
| 5987 static void InternalFieldOutOfBounds(int index); |
| 5977 | 5988 |
| 5978 template <class T> friend class Handle; | 5989 template <class T> friend class Handle; |
| 5979 template <class T> friend class Local; | 5990 template <class T> friend class Local; |
| 5980 template <class T> | 5991 template <class T> |
| 5981 friend class MaybeLocal; | 5992 friend class MaybeLocal; |
| 5982 template <class T> | 5993 template <class T> |
| 5983 friend class Maybe; | 5994 friend class Maybe; |
| 5984 template <class T> friend class Eternal; | 5995 template <class T> friend class Eternal; |
| 5985 template <class T> friend class PersistentBase; | 5996 template <class T> friend class PersistentBase; |
| 5986 template <class T, class M> friend class Persistent; | 5997 template <class T, class M> friend class Persistent; |
| (...skipping 839 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6826 template <class T> | 6837 template <class T> |
| 6827 Local<T> MaybeLocal<T>::ToLocalChecked() { | 6838 Local<T> MaybeLocal<T>::ToLocalChecked() { |
| 6828 #ifdef V8_ENABLE_CHECKS | 6839 #ifdef V8_ENABLE_CHECKS |
| 6829 if (val_ == nullptr) V8::ToLocalEmpty(); | 6840 if (val_ == nullptr) V8::ToLocalEmpty(); |
| 6830 #endif | 6841 #endif |
| 6831 return Local<T>(val_); | 6842 return Local<T>(val_); |
| 6832 } | 6843 } |
| 6833 | 6844 |
| 6834 | 6845 |
| 6835 template <class T> | 6846 template <class T> |
| 6847 void* WeakCallbackInfo<T>::GetInternalField(int index) const { |
| 6848 #ifdef V8_ENABLE_CHECKS |
| 6849 if (index < 0 || index >= kInternalFieldsInWeakCallback) { |
| 6850 V8::InternalFieldOutOfBounds(index); |
| 6851 } |
| 6852 #endif |
| 6853 return internal_fields_[index]; |
| 6854 } |
| 6855 |
| 6856 |
| 6857 template <class T> |
| 6836 T* PersistentBase<T>::New(Isolate* isolate, T* that) { | 6858 T* PersistentBase<T>::New(Isolate* isolate, T* that) { |
| 6837 if (that == NULL) return NULL; | 6859 if (that == NULL) return NULL; |
| 6838 internal::Object** p = reinterpret_cast<internal::Object**>(that); | 6860 internal::Object** p = reinterpret_cast<internal::Object**>(that); |
| 6839 return reinterpret_cast<T*>( | 6861 return reinterpret_cast<T*>( |
| 6840 V8::GlobalizeReference(reinterpret_cast<internal::Isolate*>(isolate), | 6862 V8::GlobalizeReference(reinterpret_cast<internal::Isolate*>(isolate), |
| 6841 p)); | 6863 p)); |
| 6842 } | 6864 } |
| 6843 | 6865 |
| 6844 | 6866 |
| 6845 template <class T, class M> | 6867 template <class T, class M> |
| (...skipping 1129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7975 */ | 7997 */ |
| 7976 | 7998 |
| 7977 | 7999 |
| 7978 } // namespace v8 | 8000 } // namespace v8 |
| 7979 | 8001 |
| 7980 | 8002 |
| 7981 #undef TYPE_CHECK | 8003 #undef TYPE_CHECK |
| 7982 | 8004 |
| 7983 | 8005 |
| 7984 #endif // V8_H_ | 8006 #endif // V8_H_ |
| OLD | NEW |