File indexing completed on 2025-02-22 10:42:30
0001
0002
0003
0004
0005 #ifndef INCLUDE_V8_EMBEDDER_STATE_SCOPE_H_
0006 #define INCLUDE_V8_EMBEDDER_STATE_SCOPE_H_
0007
0008 #include <memory>
0009
0010 #include "v8-internal.h" // NOLINT(build/include_directory)
0011 #include "v8-local-handle.h" // NOLINT(build/include_directory)
0012
0013 namespace v8 {
0014
0015 class Context;
0016
0017 namespace internal {
0018 class EmbedderState;
0019 }
0020
0021
0022 enum class EmbedderStateTag : uint8_t {
0023
0024 EMPTY = 0,
0025 OTHER = 1,
0026
0027 };
0028
0029
0030
0031
0032 class V8_EXPORT EmbedderStateScope {
0033 public:
0034 EmbedderStateScope(Isolate* isolate, Local<v8::Context> context,
0035 EmbedderStateTag tag);
0036
0037 ~EmbedderStateScope();
0038
0039 private:
0040
0041
0042 void* operator new(size_t size);
0043 void* operator new[](size_t size);
0044 void operator delete(void*, size_t);
0045 void operator delete[](void*, size_t);
0046
0047 std::unique_ptr<internal::EmbedderState> embedder_state_;
0048 };
0049
0050 }
0051
0052 #endif