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 5140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5151 */ | 5151 */ |
5152 enum GCCallbackFlags { | 5152 enum GCCallbackFlags { |
5153 kNoGCCallbackFlags = 0, | 5153 kNoGCCallbackFlags = 0, |
5154 kGCCallbackFlagConstructRetainedObjectInfos = 1 << 1, | 5154 kGCCallbackFlagConstructRetainedObjectInfos = 1 << 1, |
5155 kGCCallbackFlagForced = 1 << 2, | 5155 kGCCallbackFlagForced = 1 << 2, |
5156 kGCCallbackFlagSynchronousPhantomCallbackProcessing = 1 << 3, | 5156 kGCCallbackFlagSynchronousPhantomCallbackProcessing = 1 << 3, |
5157 kGCCallbackFlagCollectAllAvailableGarbage = 1 << 4, | 5157 kGCCallbackFlagCollectAllAvailableGarbage = 1 << 4, |
5158 }; | 5158 }; |
5159 | 5159 |
5160 typedef void (*GCCallback)(GCType type, GCCallbackFlags flags); | 5160 typedef void (*GCCallback)(GCType type, GCCallbackFlags flags); |
5161 typedef void (*GCPutOnMarkingDequeCallback)(PersistentBase<Object>* handle, | |
5162 Isolate* isolate); | |
5161 | 5163 |
5162 typedef void (*InterruptCallback)(Isolate* isolate, void* data); | 5164 typedef void (*InterruptCallback)(Isolate* isolate, void* data); |
5163 | 5165 |
5164 | 5166 |
5165 /** | 5167 /** |
5166 * Collection of V8 heap information. | 5168 * Collection of V8 heap information. |
5167 * | 5169 * |
5168 * Instances of this class can be passed to v8::V8::HeapStatistics to | 5170 * Instances of this class can be passed to v8::V8::HeapStatistics to |
5169 * get heap statistics from V8. | 5171 * get heap statistics from V8. |
5170 */ | 5172 */ |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5343 /** | 5345 /** |
5344 * Interface for iterating through all the persistent handles in the heap. | 5346 * Interface for iterating through all the persistent handles in the heap. |
5345 */ | 5347 */ |
5346 class V8_EXPORT PersistentHandleVisitor { // NOLINT | 5348 class V8_EXPORT PersistentHandleVisitor { // NOLINT |
5347 public: | 5349 public: |
5348 virtual ~PersistentHandleVisitor() {} | 5350 virtual ~PersistentHandleVisitor() {} |
5349 virtual void VisitPersistentHandle(Persistent<Value>* value, | 5351 virtual void VisitPersistentHandle(Persistent<Value>* value, |
5350 uint16_t class_id) {} | 5352 uint16_t class_id) {} |
5351 }; | 5353 }; |
5352 | 5354 |
5355 /** | |
5356 * Interface for tracing through the embedder heap. During the v8 garbage | |
5357 * collection, the embedder is notified that some object he has a reference to | |
5358 * is still alive, and is expected to trace through its heap and call callback | |
5359 * function for each dependent js object. | |
5360 * | |
5361 * After the v8 garbage collection is finished, ClearTracingMarks is called so | |
5362 * the embedder can clear its temporary data. | |
5363 */ | |
5364 class EmbedderHeapTracer { | |
5365 public: | |
5366 virtual ~EmbedderHeapTracer() {} | |
5367 /** | |
5368 * V8 will call this method with every wrapper. Embedder is expected to call | |
5369 * the provided callback (synchronously) with every dependent wrapper so the | |
5370 * v8 will keep it alive. | |
5371 */ | |
5372 virtual void TraceWrappableFrom(Isolate* isolate, Persistent<Object>* value, | |
5373 GCPutOnMarkingDequeCallback callback); | |
jochen (gone - plz use gerrit)
2016/03/24 14:31:36
as discussed offline, I'd propose to not add callb
| |
5374 /** | |
5375 * V8 allocation is *not* allowed in the ClearTracingMarks. | |
5376 */ | |
5377 virtual void ClearTracingMarks(Isolate* isolate) {} | |
5378 }; | |
5353 | 5379 |
5354 /** | 5380 /** |
5355 * Isolate represents an isolated instance of the V8 engine. V8 isolates have | 5381 * Isolate represents an isolated instance of the V8 engine. V8 isolates have |
5356 * completely separate states. Objects from one isolate must not be used in | 5382 * completely separate states. Objects from one isolate must not be used in |
5357 * other isolates. The embedder can create multiple isolates and use them in | 5383 * other isolates. The embedder can create multiple isolates and use them in |
5358 * parallel in multiple threads. An isolate can be entered by at most one | 5384 * parallel in multiple threads. An isolate can be entered by at most one |
5359 * thread at any given time. The Locker/Unlocker API must be used to | 5385 * thread at any given time. The Locker/Unlocker API must be used to |
5360 * synchronize. | 5386 * synchronize. |
5361 */ | 5387 */ |
5362 class V8_EXPORT Isolate { | 5388 class V8_EXPORT Isolate { |
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5805 void AddGCPrologueCallback(GCCallback callback, | 5831 void AddGCPrologueCallback(GCCallback callback, |
5806 GCType gc_type_filter = kGCTypeAll); | 5832 GCType gc_type_filter = kGCTypeAll); |
5807 | 5833 |
5808 /** | 5834 /** |
5809 * This function removes callback which was installed by | 5835 * This function removes callback which was installed by |
5810 * AddGCPrologueCallback function. | 5836 * AddGCPrologueCallback function. |
5811 */ | 5837 */ |
5812 void RemoveGCPrologueCallback(GCCallback callback); | 5838 void RemoveGCPrologueCallback(GCCallback callback); |
5813 | 5839 |
5814 /** | 5840 /** |
5841 * Sets the embedder heap tracer for the isolate. | |
5842 */ | |
5843 void SetEmbedderHeapTracer(EmbedderHeapTracer* tracer); | |
5844 | |
5845 /** | |
5815 * Enables the host application to receive a notification after a | 5846 * Enables the host application to receive a notification after a |
5816 * garbage collection. Allocations are allowed in the callback function, | 5847 * garbage collection. Allocations are allowed in the callback function, |
5817 * but the callback is not re-entrant: if the allocation inside it will | 5848 * but the callback is not re-entrant: if the allocation inside it will |
5818 * trigger the garbage collection, the callback won't be called again. | 5849 * trigger the garbage collection, the callback won't be called again. |
5819 * It is possible to specify the GCType filter for your callback. But it is | 5850 * It is possible to specify the GCType filter for your callback. But it is |
5820 * not possible to register the same callback function two times with | 5851 * not possible to register the same callback function two times with |
5821 * different GCType filters. | 5852 * different GCType filters. |
5822 */ | 5853 */ |
5823 void AddGCEpilogueCallback(GCCallback callback, | 5854 void AddGCEpilogueCallback(GCCallback callback, |
5824 GCType gc_type_filter = kGCTypeAll); | 5855 GCType gc_type_filter = kGCTypeAll); |
(...skipping 2845 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
8670 */ | 8701 */ |
8671 | 8702 |
8672 | 8703 |
8673 } // namespace v8 | 8704 } // namespace v8 |
8674 | 8705 |
8675 | 8706 |
8676 #undef TYPE_CHECK | 8707 #undef TYPE_CHECK |
8677 | 8708 |
8678 | 8709 |
8679 #endif // INCLUDE_V8_H_ | 8710 #endif // INCLUDE_V8_H_ |
OLD | NEW |