/*
* Copyright (C) 2006 Maks Orlovich
- * Copyright (C) 2006, 2009 Apple, Inc.
+ * Copyright (C) 2006, 2009, 2012 Apple, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
#include "config.h"
#include "JSWrapperObject.h"
+#include "JSCInlines.h"
+
namespace JSC {
-ASSERT_CLASS_FITS_IN_CELL(JSWrapperObject);
+STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(JSWrapperObject);
-void JSWrapperObject::markChildren(MarkStack& markStack)
+void JSWrapperObject::visitChildren(JSCell* cell, SlotVisitor& visitor)
{
- JSObject::markChildren(markStack);
- if (m_internalValue)
- markStack.append(m_internalValue);
+ JSWrapperObject* thisObject = jsCast<JSWrapperObject*>(cell);
+ ASSERT_GC_OBJECT_INHERITS(thisObject, info());
+ COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
+ ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
+
+ JSObject::visitChildren(thisObject, visitor);
+ visitor.append(&thisObject->m_internalValue);
}
} // namespace JSC