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 4694 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4705 * isolate, receiver, return value, or whether running in `'use strict'` mode. | 4705 * isolate, receiver, return value, or whether running in `'use strict'` mode. |
4706 * See `PropertyCallbackInfo`. | 4706 * See `PropertyCallbackInfo`. |
4707 * | 4707 * |
4708 * See also `ObjectTemplate::SetNamedPropertyHandler`. | 4708 * See also `ObjectTemplate::SetNamedPropertyHandler`. |
4709 */ | 4709 */ |
4710 typedef void (*GenericNamedPropertyDefinerCallback)( | 4710 typedef void (*GenericNamedPropertyDefinerCallback)( |
4711 Local<Name> key, const PropertyDescriptor& desc, | 4711 Local<Name> key, const PropertyDescriptor& desc, |
4712 const PropertyCallbackInfo<Value>& info); | 4712 const PropertyCallbackInfo<Value>& info); |
4713 | 4713 |
4714 /** | 4714 /** |
| 4715 * Interceptor for getOwnPropertyDescriptor requests on an object. |
| 4716 * |
| 4717 * Use `info.GetReturnValue().Set()` to set the return value of the |
| 4718 * intercepted request. The return value must be an object that |
| 4719 * can be converted to a PropertyDescriptor, e.g., a `v8::value` returned from |
| 4720 * `v8::Object::getOwnPropertyDescriptor`. |
| 4721 * |
| 4722 * \param property The name of the property for which the request was |
| 4723 * intercepted. |
| 4724 * \info Information about the intercepted request, such as |
| 4725 * isolate, receiver, return value, or whether running in `'use strict'` mode. |
| 4726 * See `PropertyCallbackInfo`. |
| 4727 * |
| 4728 * \note If GetOwnPropertyDescriptor is intercepted, it will |
| 4729 * always return true, i.e., indicate that the property was found. |
| 4730 * |
| 4731 * See also `ObjectTemplate::SetNamedPropertyHandler`. |
| 4732 */ |
| 4733 typedef void (*GenericNamedPropertyDescriptorCallback)( |
| 4734 Local<Name> property, const PropertyCallbackInfo<Value>& info); |
| 4735 |
| 4736 /** |
4715 * Returns the value of the property if the getter intercepts the | 4737 * Returns the value of the property if the getter intercepts the |
4716 * request. Otherwise, returns an empty handle. | 4738 * request. Otherwise, returns an empty handle. |
4717 */ | 4739 */ |
4718 typedef void (*IndexedPropertyGetterCallback)( | 4740 typedef void (*IndexedPropertyGetterCallback)( |
4719 uint32_t index, | 4741 uint32_t index, |
4720 const PropertyCallbackInfo<Value>& info); | 4742 const PropertyCallbackInfo<Value>& info); |
4721 | 4743 |
4722 | 4744 |
4723 /** | 4745 /** |
4724 * Returns the value if the setter intercepts the request. | 4746 * Returns the value if the setter intercepts the request. |
(...skipping 28 matching lines...) Expand all Loading... |
4753 * Returns an array containing the indices of the properties the | 4775 * Returns an array containing the indices of the properties the |
4754 * indexed property getter intercepts. | 4776 * indexed property getter intercepts. |
4755 */ | 4777 */ |
4756 typedef void (*IndexedPropertyEnumeratorCallback)( | 4778 typedef void (*IndexedPropertyEnumeratorCallback)( |
4757 const PropertyCallbackInfo<Array>& info); | 4779 const PropertyCallbackInfo<Array>& info); |
4758 | 4780 |
4759 typedef void (*IndexedPropertyDefinerCallback)( | 4781 typedef void (*IndexedPropertyDefinerCallback)( |
4760 uint32_t index, const PropertyDescriptor& desc, | 4782 uint32_t index, const PropertyDescriptor& desc, |
4761 const PropertyCallbackInfo<Value>& info); | 4783 const PropertyCallbackInfo<Value>& info); |
4762 | 4784 |
| 4785 typedef void (*IndexedPropertyDescriptorCallback)( |
| 4786 uint32_t index, const PropertyCallbackInfo<Value>& info); |
| 4787 |
4763 /** | 4788 /** |
4764 * Access type specification. | 4789 * Access type specification. |
4765 */ | 4790 */ |
4766 enum AccessType { | 4791 enum AccessType { |
4767 ACCESS_GET, | 4792 ACCESS_GET, |
4768 ACCESS_SET, | 4793 ACCESS_SET, |
4769 ACCESS_HAS, | 4794 ACCESS_HAS, |
4770 ACCESS_DELETE, | 4795 ACCESS_DELETE, |
4771 ACCESS_KEYS | 4796 ACCESS_KEYS |
4772 }; | 4797 }; |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5015 GenericNamedPropertyDeleterCallback deleter = 0, | 5040 GenericNamedPropertyDeleterCallback deleter = 0, |
5016 GenericNamedPropertyEnumeratorCallback enumerator = 0, | 5041 GenericNamedPropertyEnumeratorCallback enumerator = 0, |
5017 Local<Value> data = Local<Value>(), | 5042 Local<Value> data = Local<Value>(), |
5018 PropertyHandlerFlags flags = PropertyHandlerFlags::kNone) | 5043 PropertyHandlerFlags flags = PropertyHandlerFlags::kNone) |
5019 : getter(getter), | 5044 : getter(getter), |
5020 setter(setter), | 5045 setter(setter), |
5021 query(query), | 5046 query(query), |
5022 deleter(deleter), | 5047 deleter(deleter), |
5023 enumerator(enumerator), | 5048 enumerator(enumerator), |
5024 definer(0), | 5049 definer(0), |
| 5050 descriptor(0), |
5025 data(data), | 5051 data(data), |
5026 flags(flags) {} | 5052 flags(flags) {} |
5027 | 5053 |
5028 NamedPropertyHandlerConfiguration( | 5054 NamedPropertyHandlerConfiguration( |
5029 GenericNamedPropertyGetterCallback getter, | 5055 GenericNamedPropertyGetterCallback getter, |
5030 GenericNamedPropertySetterCallback setter, | 5056 GenericNamedPropertySetterCallback setter, |
5031 GenericNamedPropertyQueryCallback query, | 5057 GenericNamedPropertyDescriptorCallback descriptor, |
5032 GenericNamedPropertyDeleterCallback deleter, | 5058 GenericNamedPropertyDeleterCallback deleter, |
5033 GenericNamedPropertyEnumeratorCallback enumerator, | 5059 GenericNamedPropertyEnumeratorCallback enumerator, |
5034 GenericNamedPropertyDefinerCallback definer, | 5060 GenericNamedPropertyDefinerCallback definer, |
5035 Local<Value> data = Local<Value>(), | 5061 Local<Value> data = Local<Value>(), |
5036 PropertyHandlerFlags flags = PropertyHandlerFlags::kNone) | 5062 PropertyHandlerFlags flags = PropertyHandlerFlags::kNone) |
5037 : getter(getter), | 5063 : getter(getter), |
5038 setter(setter), | 5064 setter(setter), |
5039 query(query), | 5065 query(0), |
5040 deleter(deleter), | 5066 deleter(deleter), |
5041 enumerator(enumerator), | 5067 enumerator(enumerator), |
5042 definer(definer), | 5068 definer(definer), |
| 5069 descriptor(descriptor), |
5043 data(data), | 5070 data(data), |
5044 flags(flags) {} | 5071 flags(flags) {} |
5045 | 5072 |
5046 GenericNamedPropertyGetterCallback getter; | 5073 GenericNamedPropertyGetterCallback getter; |
5047 GenericNamedPropertySetterCallback setter; | 5074 GenericNamedPropertySetterCallback setter; |
5048 GenericNamedPropertyQueryCallback query; | 5075 GenericNamedPropertyQueryCallback query; |
5049 GenericNamedPropertyDeleterCallback deleter; | 5076 GenericNamedPropertyDeleterCallback deleter; |
5050 GenericNamedPropertyEnumeratorCallback enumerator; | 5077 GenericNamedPropertyEnumeratorCallback enumerator; |
5051 GenericNamedPropertyDefinerCallback definer; | 5078 GenericNamedPropertyDefinerCallback definer; |
| 5079 GenericNamedPropertyDescriptorCallback descriptor; |
5052 Local<Value> data; | 5080 Local<Value> data; |
5053 PropertyHandlerFlags flags; | 5081 PropertyHandlerFlags flags; |
5054 }; | 5082 }; |
5055 | 5083 |
5056 | 5084 |
5057 struct IndexedPropertyHandlerConfiguration { | 5085 struct IndexedPropertyHandlerConfiguration { |
5058 IndexedPropertyHandlerConfiguration( | 5086 IndexedPropertyHandlerConfiguration( |
5059 /** Note: getter is required **/ | 5087 /** Note: getter is required **/ |
5060 IndexedPropertyGetterCallback getter = 0, | 5088 IndexedPropertyGetterCallback getter = 0, |
5061 IndexedPropertySetterCallback setter = 0, | 5089 IndexedPropertySetterCallback setter = 0, |
5062 IndexedPropertyQueryCallback query = 0, | 5090 IndexedPropertyQueryCallback query = 0, |
5063 IndexedPropertyDeleterCallback deleter = 0, | 5091 IndexedPropertyDeleterCallback deleter = 0, |
5064 IndexedPropertyEnumeratorCallback enumerator = 0, | 5092 IndexedPropertyEnumeratorCallback enumerator = 0, |
5065 Local<Value> data = Local<Value>(), | 5093 Local<Value> data = Local<Value>(), |
5066 PropertyHandlerFlags flags = PropertyHandlerFlags::kNone) | 5094 PropertyHandlerFlags flags = PropertyHandlerFlags::kNone) |
5067 : getter(getter), | 5095 : getter(getter), |
5068 setter(setter), | 5096 setter(setter), |
5069 query(query), | 5097 query(query), |
5070 deleter(deleter), | 5098 deleter(deleter), |
5071 enumerator(enumerator), | 5099 enumerator(enumerator), |
5072 definer(0), | 5100 definer(0), |
| 5101 descriptor(0), |
5073 data(data), | 5102 data(data), |
5074 flags(flags) {} | 5103 flags(flags) {} |
5075 | 5104 |
5076 IndexedPropertyHandlerConfiguration( | 5105 IndexedPropertyHandlerConfiguration( |
5077 IndexedPropertyGetterCallback getter, | 5106 IndexedPropertyGetterCallback getter, |
5078 IndexedPropertySetterCallback setter, IndexedPropertyQueryCallback query, | 5107 IndexedPropertySetterCallback setter, |
| 5108 IndexedPropertyDescriptorCallback descriptor, |
5079 IndexedPropertyDeleterCallback deleter, | 5109 IndexedPropertyDeleterCallback deleter, |
5080 IndexedPropertyEnumeratorCallback enumerator, | 5110 IndexedPropertyEnumeratorCallback enumerator, |
5081 IndexedPropertyDefinerCallback definer, | 5111 IndexedPropertyDefinerCallback definer, |
5082 Local<Value> data = Local<Value>(), | 5112 Local<Value> data = Local<Value>(), |
5083 PropertyHandlerFlags flags = PropertyHandlerFlags::kNone) | 5113 PropertyHandlerFlags flags = PropertyHandlerFlags::kNone) |
5084 : getter(getter), | 5114 : getter(getter), |
5085 setter(setter), | 5115 setter(setter), |
5086 query(query), | 5116 query(0), |
5087 deleter(deleter), | 5117 deleter(deleter), |
5088 enumerator(enumerator), | 5118 enumerator(enumerator), |
5089 definer(definer), | 5119 definer(definer), |
| 5120 descriptor(descriptor), |
5090 data(data), | 5121 data(data), |
5091 flags(flags) {} | 5122 flags(flags) {} |
5092 | 5123 |
5093 IndexedPropertyGetterCallback getter; | 5124 IndexedPropertyGetterCallback getter; |
5094 IndexedPropertySetterCallback setter; | 5125 IndexedPropertySetterCallback setter; |
5095 IndexedPropertyQueryCallback query; | 5126 IndexedPropertyQueryCallback query; |
5096 IndexedPropertyDeleterCallback deleter; | 5127 IndexedPropertyDeleterCallback deleter; |
5097 IndexedPropertyEnumeratorCallback enumerator; | 5128 IndexedPropertyEnumeratorCallback enumerator; |
5098 IndexedPropertyDefinerCallback definer; | 5129 IndexedPropertyDefinerCallback definer; |
| 5130 IndexedPropertyDescriptorCallback descriptor; |
5099 Local<Value> data; | 5131 Local<Value> data; |
5100 PropertyHandlerFlags flags; | 5132 PropertyHandlerFlags flags; |
5101 }; | 5133 }; |
5102 | 5134 |
5103 | 5135 |
5104 /** | 5136 /** |
5105 * An ObjectTemplate is used to create objects at runtime. | 5137 * An ObjectTemplate is used to create objects at runtime. |
5106 * | 5138 * |
5107 * Properties added to an ObjectTemplate are added to each object | 5139 * Properties added to an ObjectTemplate are added to each object |
5108 * created from the ObjectTemplate. | 5140 * created from the ObjectTemplate. |
(...skipping 4324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9433 */ | 9465 */ |
9434 | 9466 |
9435 | 9467 |
9436 } // namespace v8 | 9468 } // namespace v8 |
9437 | 9469 |
9438 | 9470 |
9439 #undef TYPE_CHECK | 9471 #undef TYPE_CHECK |
9440 | 9472 |
9441 | 9473 |
9442 #endif // INCLUDE_V8_H_ | 9474 #endif // INCLUDE_V8_H_ |
OLD | NEW |