void JSMessageChannel::visitAdditionalChildren(JSC::SlotVisitor& visitor)
{
    if (MessagePort* port = impl().port1())
        visitor.addOpaqueRoot(port);

    if (MessagePort* port = impl().port2())
        visitor.addOpaqueRoot(port);
}
void JSSVGElementInstance::visitChildren(JSC::JSCell* cell, JSC::SlotVisitor& visitor)
{
    JSSVGElementInstance* thisObject = static_cast<JSSVGElementInstance*>(cell);
    ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
    COMPILE_ASSERT(StructureFlags & JSC::OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
    ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
    Base::visitChildren(thisObject, visitor);
    visitor.addOpaqueRoot(root(thisObject->impl()->correspondingElement()));
}
Пример #3
0
void JSSVGElementInstance::visitChildren(JSC::JSCell* cell, JSC::SlotVisitor& visitor)
{
    JSSVGElementInstance* thisObject = JSC::jsCast<JSSVGElementInstance*>(cell);
    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
    COMPILE_ASSERT(StructureFlags & JSC::OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
    ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
    // Skip JSEventTarget::visitChildren because event listener registration is
    // forwarded to the corresponding element.
    JSEventTarget::Base::visitChildren(thisObject, visitor);
    visitor.addOpaqueRoot(root(thisObject->impl().correspondingElement()));
}
Пример #4
0
void JSCryptoKeyPair::visitAdditionalChildren(JSC::SlotVisitor& visitor)
{
    visitor.addOpaqueRoot(impl().publicKey());
    visitor.addOpaqueRoot(impl().privateKey());
}
void JSTreeWalker::visitAdditionalChildren(JSC::SlotVisitor& visitor)
{
    if (NodeFilter* filter = impl().filter())
        visitor.addOpaqueRoot(filter);
}
void JSSVGElementInstance::visitAdditionalChildren(JSC::SlotVisitor& visitor)
{
    visitor.addOpaqueRoot(root(impl().correspondingElement()));
}
void JSStyleSheet::visitAdditionalChildren(JSC::SlotVisitor& visitor)
{
    visitor.addOpaqueRoot(root(&impl()));
}
void JSHTMLTemplateElement::visitAdditionalChildren(JSC::SlotVisitor& visitor)
{
    if (auto* content = wrapped().contentIfAvailable())
        visitor.addOpaqueRoot(root(content));
}