Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/include/cppgc/heap.h')
-rw-r--r--deps/v8/include/cppgc/heap.h36
1 files changed, 34 insertions, 2 deletions
diff --git a/deps/v8/include/cppgc/heap.h b/deps/v8/include/cppgc/heap.h
index a0568d534fb..90046c35055 100644
--- a/deps/v8/include/cppgc/heap.h
+++ b/deps/v8/include/cppgc/heap.h
@@ -6,8 +6,11 @@
#define INCLUDE_CPPGC_HEAP_H_
#include <memory>
+#include <vector>
-#include "include/v8config.h"
+#include "cppgc/common.h"
+#include "cppgc/custom-space.h"
+#include "v8config.h" // NOLINT(build/include_directory)
namespace cppgc {
namespace internal {
@@ -16,10 +19,39 @@ class Heap;
class V8_EXPORT Heap {
public:
- static std::unique_ptr<Heap> Create();
+ /**
+ * Specifies the stack state the embedder is in.
+ */
+ using StackState = EmbedderStackState;
+
+ struct HeapOptions {
+ static HeapOptions Default() { return {}; }
+
+ /**
+ * Custom spaces added to heap are required to have indices forming a
+ * numbered sequence starting at 0, i.e., their kSpaceIndex must correspond
+ * to the index they reside in the vector.
+ */
+ std::vector<std::unique_ptr<CustomSpaceBase>> custom_spaces;
+ };
+
+ static std::unique_ptr<Heap> Create(HeapOptions = HeapOptions::Default());
virtual ~Heap() = default;
+ /**
+ * Forces garbage collection.
+ *
+ * \param source String specifying the source (or caller) triggering a
+ * forced garbage collection.
+ * \param reason String specifying the reason for the forced garbage
+ * collection.
+ * \param stack_state The embedder stack state, see StackState.
+ */
+ void ForceGarbageCollectionSlow(
+ const char* source, const char* reason,
+ StackState stack_state = StackState::kMayContainHeapPointers);
+
private:
Heap() = default;