| 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 5041 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5052 Local<Value> value_; | 5052 Local<Value> value_; |
| 5053 Local<StackTrace> stack_trace_; | 5053 Local<StackTrace> stack_trace_; |
| 5054 }; | 5054 }; |
| 5055 | 5055 |
| 5056 typedef void (*PromiseRejectCallback)(PromiseRejectMessage message); | 5056 typedef void (*PromiseRejectCallback)(PromiseRejectMessage message); |
| 5057 | 5057 |
| 5058 // --- Microtasks Callbacks --- | 5058 // --- Microtasks Callbacks --- |
| 5059 typedef void (*MicrotasksCompletedCallback)(Isolate*); | 5059 typedef void (*MicrotasksCompletedCallback)(Isolate*); |
| 5060 typedef void (*MicrotaskCallback)(void* data); | 5060 typedef void (*MicrotaskCallback)(void* data); |
| 5061 | 5061 |
| 5062 | |
| 5063 /** | |
| 5064 * Policy for running microtasks: | |
| 5065 * - explicit: microtasks are invoked with Isolate::RunMicrotasks() method; | |
| 5066 * - scoped: microtasks invocation is controlled by MicrotasksScope objects; | |
| 5067 * - auto: microtasks are invoked when the script call depth decrements | |
| 5068 * to zero. | |
| 5069 */ | |
| 5070 enum class MicrotasksPolicy { kExplicit, kScoped, kAuto }; | |
| 5071 | |
| 5072 | |
| 5073 /** | |
| 5074 * This scope is used to control microtasks when kScopeMicrotasksInvocation | |
| 5075 * is used on Isolate. In this mode every non-primitive call to V8 should be | |
| 5076 * done inside some MicrotasksScope. | |
| 5077 * Microtasks are executed when topmost MicrotasksScope marked as kRunMicrotasks | |
| 5078 * exits. | |
| 5079 * kDoNotRunMicrotasks should be used to annotate calls not intended to trigger | |
| 5080 * microtasks. | |
| 5081 */ | |
| 5082 class V8_EXPORT MicrotasksScope { | |
| 5083 public: | |
| 5084 enum Type { kRunMicrotasks, kDoNotRunMicrotasks }; | |
| 5085 | |
| 5086 MicrotasksScope(Isolate* isolate, Type type); | |
| 5087 ~MicrotasksScope(); | |
| 5088 | |
| 5089 /** | |
| 5090 * Runs microtasks if no kRunMicrotasks scope is currently active. | |
| 5091 */ | |
| 5092 static void PerformCheckpoint(Isolate* isolate); | |
| 5093 | |
| 5094 /** | |
| 5095 * Returns current depth of nested kRunMicrotasks scopes. | |
| 5096 */ | |
| 5097 static int GetCurrentDepth(Isolate* isolate); | |
| 5098 | |
| 5099 private: | |
| 5100 internal::Isolate* const isolate_; | |
| 5101 bool run_; | |
| 5102 | |
| 5103 // Prevent copying. | |
| 5104 MicrotasksScope(const MicrotasksScope&); | |
| 5105 MicrotasksScope& operator=(const MicrotasksScope&); | |
| 5106 }; | |
| 5107 | |
| 5108 | |
| 5109 // --- Failed Access Check Callback --- | 5062 // --- Failed Access Check Callback --- |
| 5110 typedef void (*FailedAccessCheckCallback)(Local<Object> target, | 5063 typedef void (*FailedAccessCheckCallback)(Local<Object> target, |
| 5111 AccessType type, | 5064 AccessType type, |
| 5112 Local<Value> data); | 5065 Local<Value> data); |
| 5113 | 5066 |
| 5114 // --- AllowCodeGenerationFromStrings callbacks --- | 5067 // --- AllowCodeGenerationFromStrings callbacks --- |
| 5115 | 5068 |
| 5116 /** | 5069 /** |
| 5117 * Callback to check if code generation from strings is allowed. See | 5070 * Callback to check if code generation from strings is allowed. See |
| 5118 * Context::AllowCodeGenerationFromStrings. | 5071 * Context::AllowCodeGenerationFromStrings. |
| (...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5924 /** | 5877 /** |
| 5925 * Experimental: Enqueues the callback to the Microtask Work Queue | 5878 * Experimental: Enqueues the callback to the Microtask Work Queue |
| 5926 */ | 5879 */ |
| 5927 void EnqueueMicrotask(Local<Function> microtask); | 5880 void EnqueueMicrotask(Local<Function> microtask); |
| 5928 | 5881 |
| 5929 /** | 5882 /** |
| 5930 * Experimental: Enqueues the callback to the Microtask Work Queue | 5883 * Experimental: Enqueues the callback to the Microtask Work Queue |
| 5931 */ | 5884 */ |
| 5932 void EnqueueMicrotask(MicrotaskCallback microtask, void* data = NULL); | 5885 void EnqueueMicrotask(MicrotaskCallback microtask, void* data = NULL); |
| 5933 | 5886 |
| 5934 /** | 5887 /** |
| 5935 * Experimental: Controls how Microtasks are invoked. See MicrotasksPolicy | 5888 * Experimental: Controls whether the Microtask Work Queue is automatically |
| 5936 * for details. | 5889 * run when the script call depth decrements to zero. |
| 5937 */ | 5890 */ |
| 5938 void SetMicrotasksPolicy(MicrotasksPolicy policy); | 5891 void SetAutorunMicrotasks(bool autorun); |
| 5939 V8_DEPRECATE_SOON("Use SetMicrotasksPolicy", | |
| 5940 void SetAutorunMicrotasks(bool autorun)); | |
| 5941 | 5892 |
| 5942 /** | 5893 /** |
| 5943 * Experimental: Returns the policy controlling how Microtasks are invoked. | 5894 * Experimental: Returns whether the Microtask Work Queue is automatically |
| 5895 * run when the script call depth decrements to zero. |
| 5944 */ | 5896 */ |
| 5945 MicrotasksPolicy GetMicrotasksPolicy() const; | 5897 bool WillAutorunMicrotasks() const; |
| 5946 V8_DEPRECATE_SOON("Use GetMicrotasksPolicy", | |
| 5947 bool WillAutorunMicrotasks() const); | |
| 5948 | 5898 |
| 5949 /** | 5899 /** |
| 5950 * Experimental: adds a callback to notify the host application after | 5900 * Experimental: adds a callback to notify the host application after |
| 5951 * microtasks were run. The callback is triggered by explicit RunMicrotasks | 5901 * microtasks were run. The callback is triggered by explicit RunMicrotasks |
| 5952 * call or automatic microtasks execution (see SetAutorunMicrotasks). | 5902 * call or automatic microtasks execution (see SetAutorunMicrotasks). |
| 5953 * | 5903 * |
| 5954 * Callback will trigger even if microtasks were attempted to run, | 5904 * Callback will trigger even if microtasks were attempted to run, |
| 5955 * but the microtasks queue was empty and no single microtask was actually | 5905 * but the microtasks queue was empty and no single microtask was actually |
| 5956 * executed. | 5906 * executed. |
| 5957 * | 5907 * |
| (...skipping 2684 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8642 */ | 8592 */ |
| 8643 | 8593 |
| 8644 | 8594 |
| 8645 } // namespace v8 | 8595 } // namespace v8 |
| 8646 | 8596 |
| 8647 | 8597 |
| 8648 #undef TYPE_CHECK | 8598 #undef TYPE_CHECK |
| 8649 | 8599 |
| 8650 | 8600 |
| 8651 #endif // INCLUDE_V8_H_ | 8601 #endif // INCLUDE_V8_H_ |
| OLD | NEW |