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 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 class Data; | 129 class Data; |
130 template<typename T> class FunctionCallbackInfo; | 130 template<typename T> class FunctionCallbackInfo; |
131 template<typename T> class PropertyCallbackInfo; | 131 template<typename T> class PropertyCallbackInfo; |
132 class StackTrace; | 132 class StackTrace; |
133 class StackFrame; | 133 class StackFrame; |
134 class Isolate; | 134 class Isolate; |
135 class CallHandlerHelper; | 135 class CallHandlerHelper; |
136 class EscapableHandleScope; | 136 class EscapableHandleScope; |
137 template<typename T> class ReturnValue; | 137 template<typename T> class ReturnValue; |
138 | 138 |
| 139 namespace experimental { |
| 140 class FastAccessorBuilder; |
| 141 } // namespace experimental |
| 142 |
139 namespace internal { | 143 namespace internal { |
140 class Arguments; | 144 class Arguments; |
141 class Heap; | 145 class Heap; |
142 class HeapObject; | 146 class HeapObject; |
143 class Isolate; | 147 class Isolate; |
144 class Object; | 148 class Object; |
145 struct StreamedSource; | 149 struct StreamedSource; |
146 template<typename T> class CustomArguments; | 150 template<typename T> class CustomArguments; |
147 class PropertyCallbackArguments; | 151 class PropertyCallbackArguments; |
148 class FunctionCallbackArguments; | 152 class FunctionCallbackArguments; |
(...skipping 4255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4404 * \endcode | 4408 * \endcode |
4405 */ | 4409 */ |
4406 class V8_EXPORT FunctionTemplate : public Template { | 4410 class V8_EXPORT FunctionTemplate : public Template { |
4407 public: | 4411 public: |
4408 /** Creates a function template.*/ | 4412 /** Creates a function template.*/ |
4409 static Local<FunctionTemplate> New( | 4413 static Local<FunctionTemplate> New( |
4410 Isolate* isolate, FunctionCallback callback = 0, | 4414 Isolate* isolate, FunctionCallback callback = 0, |
4411 Local<Value> data = Local<Value>(), | 4415 Local<Value> data = Local<Value>(), |
4412 Local<Signature> signature = Local<Signature>(), int length = 0); | 4416 Local<Signature> signature = Local<Signature>(), int length = 0); |
4413 | 4417 |
| 4418 /** |
| 4419 * Creates a function template with a fast handler. If a fast handler is set, |
| 4420 * the callback cannot be null. |
| 4421 */ |
| 4422 static Local<FunctionTemplate> NewWithFastHandler( |
| 4423 Isolate* isolate, FunctionCallback callback, |
| 4424 experimental::FastAccessorBuilder* fast_handler = nullptr, |
| 4425 Local<Value> data = Local<Value>(), |
| 4426 Local<Signature> signature = Local<Signature>(), int length = 0); |
| 4427 |
4414 /** Returns the unique function instance in the current execution context.*/ | 4428 /** Returns the unique function instance in the current execution context.*/ |
4415 V8_DEPRECATE_SOON("Use maybe version", Local<Function> GetFunction()); | 4429 V8_DEPRECATE_SOON("Use maybe version", Local<Function> GetFunction()); |
4416 V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction( | 4430 V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction( |
4417 Local<Context> context); | 4431 Local<Context> context); |
4418 | 4432 |
4419 /** | 4433 /** |
4420 * Set the call-handler callback for a FunctionTemplate. This | 4434 * Set the call-handler callback for a FunctionTemplate. This |
4421 * callback is called whenever the function created from this | 4435 * callback is called whenever the function created from this |
4422 * FunctionTemplate is called. | 4436 * FunctionTemplate is called. |
4423 */ | 4437 */ |
4424 void SetCallHandler(FunctionCallback callback, | 4438 void SetCallHandler( |
4425 Local<Value> data = Local<Value>()); | 4439 FunctionCallback callback, Local<Value> data = Local<Value>(), |
| 4440 experimental::FastAccessorBuilder* fast_handler = nullptr); |
4426 | 4441 |
4427 /** Set the predefined length property for the FunctionTemplate. */ | 4442 /** Set the predefined length property for the FunctionTemplate. */ |
4428 void SetLength(int length); | 4443 void SetLength(int length); |
4429 | 4444 |
4430 /** Get the InstanceTemplate. */ | 4445 /** Get the InstanceTemplate. */ |
4431 Local<ObjectTemplate> InstanceTemplate(); | 4446 Local<ObjectTemplate> InstanceTemplate(); |
4432 | 4447 |
4433 /** Causes the function template to inherit from a parent function template.*/ | 4448 /** Causes the function template to inherit from a parent function template.*/ |
4434 void Inherit(Local<FunctionTemplate> parent); | 4449 void Inherit(Local<FunctionTemplate> parent); |
4435 | 4450 |
(...skipping 2512 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6948 bool has_lock_; | 6963 bool has_lock_; |
6949 bool top_level_; | 6964 bool top_level_; |
6950 internal::Isolate* isolate_; | 6965 internal::Isolate* isolate_; |
6951 | 6966 |
6952 // Disallow copying and assigning. | 6967 // Disallow copying and assigning. |
6953 Locker(const Locker&); | 6968 Locker(const Locker&); |
6954 void operator=(const Locker&); | 6969 void operator=(const Locker&); |
6955 }; | 6970 }; |
6956 | 6971 |
6957 | 6972 |
| 6973 namespace experimental { |
| 6974 |
| 6975 class V8_EXPORT FastAccessorBuilder { |
| 6976 public: |
| 6977 typedef size_t ValueId; |
| 6978 |
| 6979 ~FastAccessorBuilder(); |
| 6980 static FastAccessorBuilder* New(Isolate* isolate); |
| 6981 |
| 6982 ValueId IntegerConstant(int int_constant); |
| 6983 void ReturnValue(ValueId value_id); |
| 6984 ValueId GetParameter(size_t parameter_no); |
| 6985 ValueId GetInternalField(ValueId value_id, int field_no); |
| 6986 ValueId LoadValue(ValueId value_id, int offset); |
| 6987 ValueId LoadObject(ValueId value_id, int offset); |
| 6988 void CheckFlagSetOrReturnNull(ValueId value_id, int mask); |
| 6989 void CheckNotNullOrReturnNull(ValueId value_id); |
| 6990 ValueId SetLabel(); |
| 6991 void CheckNotNullOrJump(ValueId value_id, ValueId label_id); |
| 6992 |
| 6993 private: |
| 6994 FastAccessorBuilder(); |
| 6995 |
| 6996 void* impl_; |
| 6997 }; |
| 6998 |
| 6999 } // namespace experimental |
| 7000 |
| 7001 |
6958 // --- Implementation --- | 7002 // --- Implementation --- |
6959 | 7003 |
6960 | 7004 |
6961 namespace internal { | 7005 namespace internal { |
6962 | 7006 |
6963 const int kApiPointerSize = sizeof(void*); // NOLINT | 7007 const int kApiPointerSize = sizeof(void*); // NOLINT |
6964 const int kApiIntSize = sizeof(int); // NOLINT | 7008 const int kApiIntSize = sizeof(int); // NOLINT |
6965 const int kApiInt64Size = sizeof(int64_t); // NOLINT | 7009 const int kApiInt64Size = sizeof(int64_t); // NOLINT |
6966 | 7010 |
6967 // Tag information for HeapObject. | 7011 // Tag information for HeapObject. |
(...skipping 1498 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8466 */ | 8510 */ |
8467 | 8511 |
8468 | 8512 |
8469 } // namespace v8 | 8513 } // namespace v8 |
8470 | 8514 |
8471 | 8515 |
8472 #undef TYPE_CHECK | 8516 #undef TYPE_CHECK |
8473 | 8517 |
8474 | 8518 |
8475 #endif // V8_H_ | 8519 #endif // V8_H_ |
OLD | NEW |