| 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 817 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 828 * Pass allows returning uniques from functions, etc. | 828 * Pass allows returning uniques from functions, etc. |
| 829 */ | 829 */ |
| 830 Global Pass() { return static_cast<Global&&>(*this); } | 830 Global Pass() { return static_cast<Global&&>(*this); } |
| 831 | 831 |
| 832 /* | 832 /* |
| 833 * For compatibility with Chromium's base::Bind (base::Passed). | 833 * For compatibility with Chromium's base::Bind (base::Passed). |
| 834 */ | 834 */ |
| 835 typedef void MoveOnlyTypeForCPP03; | 835 typedef void MoveOnlyTypeForCPP03; |
| 836 | 836 |
| 837 private: | 837 private: |
| 838 template <class F> |
| 839 friend class ReturnValue; |
| 838 Global(Global&) = delete; | 840 Global(Global&) = delete; |
| 839 void operator=(Global&) = delete; | 841 void operator=(Global&) = delete; |
| 842 V8_INLINE T* operator*() const { return this->val_; } |
| 840 }; | 843 }; |
| 841 | 844 |
| 842 | 845 |
| 843 // UniquePersistent is an alias for Global for historical reason. | 846 // UniquePersistent is an alias for Global for historical reason. |
| 844 template <class T> | 847 template <class T> |
| 845 using UniquePersistent = Global<T>; | 848 using UniquePersistent = Global<T>; |
| 846 | 849 |
| 847 | 850 |
| 848 /** | 851 /** |
| 849 * A stack-allocated class that governs a number of local handles. | 852 * A stack-allocated class that governs a number of local handles. |
| (...skipping 2116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2966 | 2969 |
| 2967 | 2970 |
| 2968 template<typename T> | 2971 template<typename T> |
| 2969 class ReturnValue { | 2972 class ReturnValue { |
| 2970 public: | 2973 public: |
| 2971 template <class S> V8_INLINE ReturnValue(const ReturnValue<S>& that) | 2974 template <class S> V8_INLINE ReturnValue(const ReturnValue<S>& that) |
| 2972 : value_(that.value_) { | 2975 : value_(that.value_) { |
| 2973 TYPE_CHECK(T, S); | 2976 TYPE_CHECK(T, S); |
| 2974 } | 2977 } |
| 2975 // Handle setters | 2978 // Handle setters |
| 2976 template <typename S> V8_INLINE void Set(const Persistent<S>& handle); | 2979 template <typename S> |
| 2977 template <typename S> V8_INLINE void Set(const Handle<S> handle); | 2980 V8_INLINE V8_DEPRECATE_SOON("Use Global<> instead", |
| 2981 void Set(const Persistent<S>& handle)); |
| 2982 template <typename S> |
| 2983 V8_INLINE void Set(const Global<S>& handle); |
| 2984 template <typename S> |
| 2985 V8_INLINE void Set(const Local<S> handle); |
| 2978 // Fast primitive setters | 2986 // Fast primitive setters |
| 2979 V8_INLINE void Set(bool value); | 2987 V8_INLINE void Set(bool value); |
| 2980 V8_INLINE void Set(double i); | 2988 V8_INLINE void Set(double i); |
| 2981 V8_INLINE void Set(int32_t i); | 2989 V8_INLINE void Set(int32_t i); |
| 2982 V8_INLINE void Set(uint32_t i); | 2990 V8_INLINE void Set(uint32_t i); |
| 2983 // Fast JS primitive setters | 2991 // Fast JS primitive setters |
| 2984 V8_INLINE void SetNull(); | 2992 V8_INLINE void SetNull(); |
| 2985 V8_INLINE void SetUndefined(); | 2993 V8_INLINE void SetUndefined(); |
| 2986 V8_INLINE void SetEmptyString(); | 2994 V8_INLINE void SetEmptyString(); |
| 2987 // Convenience getter for Isolate | 2995 // Convenience getter for Isolate |
| (...skipping 4135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7123 template<typename S> | 7131 template<typename S> |
| 7124 void ReturnValue<T>::Set(const Persistent<S>& handle) { | 7132 void ReturnValue<T>::Set(const Persistent<S>& handle) { |
| 7125 TYPE_CHECK(T, S); | 7133 TYPE_CHECK(T, S); |
| 7126 if (V8_UNLIKELY(handle.IsEmpty())) { | 7134 if (V8_UNLIKELY(handle.IsEmpty())) { |
| 7127 *value_ = GetDefaultValue(); | 7135 *value_ = GetDefaultValue(); |
| 7128 } else { | 7136 } else { |
| 7129 *value_ = *reinterpret_cast<internal::Object**>(*handle); | 7137 *value_ = *reinterpret_cast<internal::Object**>(*handle); |
| 7130 } | 7138 } |
| 7131 } | 7139 } |
| 7132 | 7140 |
| 7133 template<typename T> | 7141 template <typename T> |
| 7134 template<typename S> | 7142 template <typename S> |
| 7135 void ReturnValue<T>::Set(const Handle<S> handle) { | 7143 void ReturnValue<T>::Set(const Global<S>& handle) { |
| 7136 TYPE_CHECK(T, S); | 7144 TYPE_CHECK(T, S); |
| 7137 if (V8_UNLIKELY(handle.IsEmpty())) { | 7145 if (V8_UNLIKELY(handle.IsEmpty())) { |
| 7138 *value_ = GetDefaultValue(); | 7146 *value_ = GetDefaultValue(); |
| 7147 } else { |
| 7148 *value_ = *reinterpret_cast<internal::Object**>(*handle); |
| 7149 } |
| 7150 } |
| 7151 |
| 7152 template <typename T> |
| 7153 template <typename S> |
| 7154 void ReturnValue<T>::Set(const Local<S> handle) { |
| 7155 TYPE_CHECK(T, S); |
| 7156 if (V8_UNLIKELY(handle.IsEmpty())) { |
| 7157 *value_ = GetDefaultValue(); |
| 7139 } else { | 7158 } else { |
| 7140 *value_ = *reinterpret_cast<internal::Object**>(*handle); | 7159 *value_ = *reinterpret_cast<internal::Object**>(*handle); |
| 7141 } | 7160 } |
| 7142 } | 7161 } |
| 7143 | 7162 |
| 7144 template<typename T> | 7163 template<typename T> |
| 7145 void ReturnValue<T>::Set(double i) { | 7164 void ReturnValue<T>::Set(double i) { |
| 7146 TYPE_CHECK(T, Number); | 7165 TYPE_CHECK(T, Number); |
| 7147 Set(Number::New(GetIsolate(), i)); | 7166 Set(Number::New(GetIsolate(), i)); |
| 7148 } | 7167 } |
| (...skipping 947 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8096 */ | 8115 */ |
| 8097 | 8116 |
| 8098 | 8117 |
| 8099 } // namespace v8 | 8118 } // namespace v8 |
| 8100 | 8119 |
| 8101 | 8120 |
| 8102 #undef TYPE_CHECK | 8121 #undef TYPE_CHECK |
| 8103 | 8122 |
| 8104 | 8123 |
| 8105 #endif // V8_H_ | 8124 #endif // V8_H_ |
| OLD | NEW |