Chromium Code Reviews| 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 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 74 class Data; | 74 class Data; |
| 75 class Date; | 75 class Date; |
| 76 class External; | 76 class External; |
| 77 class Function; | 77 class Function; |
| 78 class FunctionTemplate; | 78 class FunctionTemplate; |
| 79 class HeapProfiler; | 79 class HeapProfiler; |
| 80 class ImplementationUtilities; | 80 class ImplementationUtilities; |
| 81 class Int32; | 81 class Int32; |
| 82 class Integer; | 82 class Integer; |
| 83 class Isolate; | 83 class Isolate; |
| 84 template <class T> | |
| 85 class Maybe; | |
| 84 class Name; | 86 class Name; |
| 85 class Number; | 87 class Number; |
| 86 class NumberObject; | 88 class NumberObject; |
| 87 class Object; | 89 class Object; |
| 88 class ObjectOperationDescriptor; | 90 class ObjectOperationDescriptor; |
| 89 class ObjectTemplate; | 91 class ObjectTemplate; |
| 90 class Platform; | 92 class Platform; |
| 91 class Primitive; | 93 class Primitive; |
| 92 class Promise; | 94 class Promise; |
| 93 class RawOperationDescriptor; | 95 class RawOperationDescriptor; |
| (...skipping 872 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 966 // disallowing certain operations. | 968 // disallowing certain operations. |
| 967 EscapableHandleScope(const EscapableHandleScope&); | 969 EscapableHandleScope(const EscapableHandleScope&); |
| 968 void operator=(const EscapableHandleScope&); | 970 void operator=(const EscapableHandleScope&); |
| 969 void* operator new(size_t size); | 971 void* operator new(size_t size); |
| 970 void operator delete(void*, size_t); | 972 void operator delete(void*, size_t); |
| 971 | 973 |
| 972 internal::Object** escape_slot_; | 974 internal::Object** escape_slot_; |
| 973 }; | 975 }; |
| 974 | 976 |
| 975 | 977 |
| 976 /** | |
| 977 * A simple Maybe type, representing an object which may or may not have a | |
| 978 * value. | |
| 979 */ | |
| 980 template <class T> | |
| 981 class Maybe { | |
| 982 public: | |
| 983 Maybe() : has_value(false) {} | |
| 984 explicit Maybe(const T& t) : has_value(true), value(t) {} | |
| 985 // TODO(dcarney): remove this constructor, it makes no sense. | |
| 986 Maybe(bool has, const T& t) : has_value(has), value(t) {} | |
| 987 | |
| 988 V8_INLINE bool HasValue() const { return has_value; } | |
| 989 | |
| 990 V8_WARN_UNUSED_RESULT V8_INLINE bool ToValue(T* out) const { | |
| 991 *out = has_value ? value : T(); | |
| 992 return has_value; | |
| 993 } | |
| 994 | |
| 995 V8_INLINE T ToValueChecked() const { | |
| 996 // TODO(dcarney): add DCHECK. | |
| 997 return value; | |
| 998 } | |
| 999 | |
| 1000 V8_INLINE T From(const T& default_value) const { | |
| 1001 return has_value ? value : default_value; | |
| 1002 } | |
| 1003 | |
| 1004 // TODO(dcarney): make private. | |
| 1005 bool has_value; | |
| 1006 T value; | |
| 1007 }; | |
| 1008 | |
| 1009 | |
| 1010 // Convenience wrapper. | |
| 1011 template <class T> | |
| 1012 inline Maybe<T> maybe(T t) { | |
| 1013 return Maybe<T>(t); | |
| 1014 } | |
| 1015 | |
| 1016 | |
| 1017 // --- Special objects --- | 978 // --- Special objects --- |
| 1018 | 979 |
| 1019 | 980 |
| 1020 /** | 981 /** |
| 1021 * The superclass of values and API object templates. | 982 * The superclass of values and API object templates. |
| 1022 */ | 983 */ |
| 1023 class V8_EXPORT Data { | 984 class V8_EXPORT Data { |
| 1024 private: | 985 private: |
| 1025 Data(); | 986 Data(); |
| 1026 }; | 987 }; |
| (...skipping 4716 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5743 int internal_field_index1, | 5704 int internal_field_index1, |
| 5744 // Must be 1 or kNoInternalFieldIndex. | 5705 // Must be 1 or kNoInternalFieldIndex. |
| 5745 int internal_field_index2, | 5706 int internal_field_index2, |
| 5746 PhantomCallbackData<void>::Callback weak_callback); | 5707 PhantomCallbackData<void>::Callback weak_callback); |
| 5747 static void* ClearWeak(internal::Object** global_handle); | 5708 static void* ClearWeak(internal::Object** global_handle); |
| 5748 static void Eternalize(Isolate* isolate, | 5709 static void Eternalize(Isolate* isolate, |
| 5749 Value* handle, | 5710 Value* handle, |
| 5750 int* index); | 5711 int* index); |
| 5751 static Local<Value> GetEternal(Isolate* isolate, int index); | 5712 static Local<Value> GetEternal(Isolate* isolate, int index); |
| 5752 | 5713 |
| 5714 static void CheckIsJust(bool is_just); | |
| 5715 | |
| 5753 template <class T> friend class Handle; | 5716 template <class T> friend class Handle; |
| 5754 template <class T> friend class Local; | 5717 template <class T> friend class Local; |
| 5718 template <class T> | |
| 5719 friend class Maybe; | |
| 5755 template <class T> friend class Eternal; | 5720 template <class T> friend class Eternal; |
| 5756 template <class T> friend class PersistentBase; | 5721 template <class T> friend class PersistentBase; |
| 5757 template <class T, class M> friend class Persistent; | 5722 template <class T, class M> friend class Persistent; |
| 5758 friend class Context; | 5723 friend class Context; |
| 5759 }; | 5724 }; |
| 5760 | 5725 |
| 5761 | 5726 |
| 5762 /** | 5727 /** |
| 5728 * A simple Maybe type, representing an object which may or may not have a | |
| 5729 * value. | |
| 5730 */ | |
| 5731 template <class T> | |
| 5732 class Maybe { | |
| 5733 public: | |
| 5734 // TODO(dcarney): remove this constructor, it makes no sense. | |
| 5735 Maybe(bool has, const T& t) : has_value(has), value(t) {} | |
| 5736 | |
| 5737 V8_INLINE bool IsJust() const { return has_value; } | |
|
Nico
2016/02/26 19:18:26
I saw this since someone made a similar name chang
| |
| 5738 | |
| 5739 V8_INLINE T FromJust() const { | |
| 5740 #ifdef V8_ENABLE_CHECKS | |
| 5741 V8::CheckIsJust(IsJust()); | |
| 5742 #endif | |
| 5743 return value; | |
| 5744 } | |
| 5745 | |
| 5746 V8_INLINE T FromMaybe(const T& default_value) const { | |
| 5747 return has_value ? value : default_value; | |
| 5748 } | |
| 5749 | |
| 5750 // TODO(dcarney): make private. | |
| 5751 bool has_value; | |
| 5752 T value; | |
| 5753 | |
| 5754 private: | |
| 5755 template <class U> | |
| 5756 friend Maybe<U> Nothing(); | |
| 5757 template <class U> | |
| 5758 friend Maybe<U> Just(const U& u); | |
| 5759 | |
| 5760 Maybe() : has_value(false) {} | |
| 5761 explicit Maybe(const T& t) : has_value(true), value(t) {} | |
| 5762 }; | |
| 5763 | |
| 5764 | |
| 5765 template <class T> | |
| 5766 inline Maybe<T> Nothing() { | |
| 5767 return Maybe<T>(); | |
| 5768 } | |
| 5769 | |
| 5770 | |
| 5771 template <class T> | |
| 5772 inline Maybe<T> Just(const T& t) { | |
| 5773 return Maybe<T>(t); | |
| 5774 } | |
| 5775 | |
| 5776 | |
| 5777 /** | |
| 5763 * An external exception handler. | 5778 * An external exception handler. |
| 5764 */ | 5779 */ |
| 5765 class V8_EXPORT TryCatch { | 5780 class V8_EXPORT TryCatch { |
| 5766 public: | 5781 public: |
| 5767 /** | 5782 /** |
| 5768 * Creates a new try/catch block and registers it with v8. Note that | 5783 * Creates a new try/catch block and registers it with v8. Note that |
| 5769 * all TryCatch blocks should be stack allocated because the memory | 5784 * all TryCatch blocks should be stack allocated because the memory |
| 5770 * location itself is compared against JavaScript try/catch blocks. | 5785 * location itself is compared against JavaScript try/catch blocks. |
| 5771 */ | 5786 */ |
| 5772 // TODO(dcarney): deprecate. | 5787 // TODO(dcarney): deprecate. |
| (...skipping 1858 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 7631 */ | 7646 */ |
| 7632 | 7647 |
| 7633 | 7648 |
| 7634 } // namespace v8 | 7649 } // namespace v8 |
| 7635 | 7650 |
| 7636 | 7651 |
| 7637 #undef TYPE_CHECK | 7652 #undef TYPE_CHECK |
| 7638 | 7653 |
| 7639 | 7654 |
| 7640 #endif // V8_H_ | 7655 #endif // V8_H_ |
| OLD | NEW |