]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - runtime/JSWrapperObject.cpp
JavaScriptCore-1218.35.tar.gz
[apple/javascriptcore.git] / runtime / JSWrapperObject.cpp
index fb5701872d6d139f61a6f5f503f3830d25bd29c3..01961a9844b6e05014102a39e1b95faeb0e1ca90 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Copyright (C) 2006 Maks Orlovich
- *  Copyright (C) 2006 Apple Computer, 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 "Operations.h"
+
 namespace JSC {
 
-ASSERT_CLASS_FITS_IN_CELL(JSWrapperObject);
+ASSERT_HAS_TRIVIAL_DESTRUCTOR(JSWrapperObject);
 
-void JSWrapperObject::mark() 
+void JSWrapperObject::visitChildren(JSCell* cell, SlotVisitor& visitor)
 {
-    JSObject::mark();
-    if (m_internalValue && !m_internalValue.marked())
-        m_internalValue.mark();
+    JSWrapperObject* thisObject = jsCast<JSWrapperObject*>(cell);
+    ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
+    COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
+    ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
+
+    JSObject::visitChildren(thisObject, visitor);
+    visitor.append(&thisObject->m_internalValue);
 }
 
 } // namespace JSC