| 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 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 | 359 |
| 360 // Eternal handles are set-once handles that live for the life of the isolate. | 360 // Eternal handles are set-once handles that live for the life of the isolate. |
| 361 template <class T> class Eternal { | 361 template <class T> class Eternal { |
| 362 public: | 362 public: |
| 363 V8_INLINE Eternal() : index_(kInitialValue) { } | 363 V8_INLINE Eternal() : index_(kInitialValue) { } |
| 364 template<class S> | 364 template<class S> |
| 365 V8_INLINE Eternal(Isolate* isolate, Local<S> handle) : index_(kInitialValue) { | 365 V8_INLINE Eternal(Isolate* isolate, Local<S> handle) : index_(kInitialValue) { |
| 366 Set(isolate, handle); | 366 Set(isolate, handle); |
| 367 } | 367 } |
| 368 // Can only be safely called if already set. | 368 // Can only be safely called if already set. |
| 369 V8_INLINE Local<T> Get(Isolate* isolate); | 369 V8_INLINE Local<T> Get(Isolate* isolate) const; |
| 370 V8_INLINE bool IsEmpty() { return index_ == kInitialValue; } | 370 V8_INLINE bool IsEmpty() const { return index_ == kInitialValue; } |
| 371 template<class S> V8_INLINE void Set(Isolate* isolate, Local<S> handle); | 371 template<class S> V8_INLINE void Set(Isolate* isolate, Local<S> handle); |
| 372 | 372 |
| 373 private: | 373 private: |
| 374 static const int kInitialValue = -1; | 374 static const int kInitialValue = -1; |
| 375 int index_; | 375 int index_; |
| 376 }; | 376 }; |
| 377 | 377 |
| 378 | 378 |
| 379 static const int kInternalFieldsInWeakCallback = 2; | 379 static const int kInternalFieldsInWeakCallback = 2; |
| 380 | 380 |
| (...skipping 8249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8630 } | 8630 } |
| 8631 | 8631 |
| 8632 | 8632 |
| 8633 template<class T> | 8633 template<class T> |
| 8634 template<class S> | 8634 template<class S> |
| 8635 void Eternal<T>::Set(Isolate* isolate, Local<S> handle) { | 8635 void Eternal<T>::Set(Isolate* isolate, Local<S> handle) { |
| 8636 TYPE_CHECK(T, S); | 8636 TYPE_CHECK(T, S); |
| 8637 V8::Eternalize(isolate, reinterpret_cast<Value*>(*handle), &this->index_); | 8637 V8::Eternalize(isolate, reinterpret_cast<Value*>(*handle), &this->index_); |
| 8638 } | 8638 } |
| 8639 | 8639 |
| 8640 | 8640 template <class T> |
| 8641 template<class T> | 8641 Local<T> Eternal<T>::Get(Isolate* isolate) const { |
| 8642 Local<T> Eternal<T>::Get(Isolate* isolate) { | |
| 8643 return Local<T>(reinterpret_cast<T*>(*V8::GetEternal(isolate, index_))); | 8642 return Local<T>(reinterpret_cast<T*>(*V8::GetEternal(isolate, index_))); |
| 8644 } | 8643 } |
| 8645 | 8644 |
| 8646 | 8645 |
| 8647 template <class T> | 8646 template <class T> |
| 8648 Local<T> MaybeLocal<T>::ToLocalChecked() { | 8647 Local<T> MaybeLocal<T>::ToLocalChecked() { |
| 8649 if (V8_UNLIKELY(val_ == nullptr)) V8::ToLocalEmpty(); | 8648 if (V8_UNLIKELY(val_ == nullptr)) V8::ToLocalEmpty(); |
| 8650 return Local<T>(val_); | 8649 return Local<T>(val_); |
| 8651 } | 8650 } |
| 8652 | 8651 |
| (...skipping 1178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9831 */ | 9830 */ |
| 9832 | 9831 |
| 9833 | 9832 |
| 9834 } // namespace v8 | 9833 } // namespace v8 |
| 9835 | 9834 |
| 9836 | 9835 |
| 9837 #undef TYPE_CHECK | 9836 #undef TYPE_CHECK |
| 9838 | 9837 |
| 9839 | 9838 |
| 9840 #endif // INCLUDE_V8_H_ | 9839 #endif // INCLUDE_V8_H_ |
| OLD | NEW |