diff --git a/Libraries/LibJS/Cell.cpp b/Libraries/LibJS/Cell.cpp index c781a943bf..540e61a8b8 100644 --- a/Libraries/LibJS/Cell.cpp +++ b/Libraries/LibJS/Cell.cpp @@ -26,6 +26,7 @@ #include #include +#include #include #include #include @@ -44,6 +45,11 @@ Heap& Cell::heap() return HeapBlock::from_cell(this)->heap(); } +Interpreter& Cell::interpreter() +{ + return heap().interpreter(); +} + const LogStream& operator<<(const LogStream& stream, const Cell* cell) { if (!cell) diff --git a/Libraries/LibJS/Cell.h b/Libraries/LibJS/Cell.h index 973150c2d0..c4ff075e65 100644 --- a/Libraries/LibJS/Cell.h +++ b/Libraries/LibJS/Cell.h @@ -52,6 +52,7 @@ public: virtual void visit_children(Visitor&) {} Heap& heap(); + Interpreter& interpreter(); private: bool m_mark { false }; diff --git a/Libraries/LibJS/Heap.h b/Libraries/LibJS/Heap.h index 977089a928..2b27d15923 100644 --- a/Libraries/LibJS/Heap.h +++ b/Libraries/LibJS/Heap.h @@ -53,6 +53,8 @@ public: void collect_garbage(); + Interpreter& interpreter() { return m_interpreter; } + private: Cell* allocate_cell(size_t);