From 30de1f610d9439d68a90b9b3516cfaa53a59e55f Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 18 Apr 2020 11:02:05 +0200 Subject: [PATCH] LibJS: Use enumerator macro to mark all constructors in GlobalObject We were forgetting to mark the String constructor! So this patch fixes that and ensures we won't forget anyone in the future. --- Libraries/LibJS/Runtime/GlobalObject.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Libraries/LibJS/Runtime/GlobalObject.cpp b/Libraries/LibJS/Runtime/GlobalObject.cpp index 78badbe6e63..30b1f67a9b3 100644 --- a/Libraries/LibJS/Runtime/GlobalObject.cpp +++ b/Libraries/LibJS/Runtime/GlobalObject.cpp @@ -90,13 +90,10 @@ void GlobalObject::visit_children(Visitor& visitor) { Object::visit_children(visitor); - visitor.visit(m_array_constructor); - visitor.visit(m_boolean_constructor); - visitor.visit(m_date_constructor); - visitor.visit(m_error_constructor); - visitor.visit(m_function_constructor); - visitor.visit(m_number_constructor); - visitor.visit(m_object_constructor); +#define __JS_ENUMERATE(ClassName, snake_name, PrototypeName, ConstructorName) \ + visitor.visit(m_##snake_name##_constructor); + JS_ENUMERATE_ERROR_SUBCLASSES +#undef __JS_ENUMERATE } Value GlobalObject::gc(Interpreter& interpreter)