+2011-07-14 MORITA Hajime <morrita@google.com>
+
+ Unreviewed, rolling out r90976, r90981, and r90985.
+ http://trac.webkit.org/changeset/90976
+ http://trac.webkit.org/changeset/90981
+ http://trac.webkit.org/changeset/90985
+ https://bugs.webkit.org/show_bug.cgi?id=64251
+
+ build break
+
+ * Source/autotools/symbols.filter:
+
2011-07-14 MORITA Hajime <morrita@google.com>
Unreviewed attempt to build fix.
+2011-07-14 MORITA Hajime <morrita@google.com>
+
+ Unreviewed, rolling out r90976, r90981, and r90985.
+ http://trac.webkit.org/changeset/90976
+ http://trac.webkit.org/changeset/90981
+ http://trac.webkit.org/changeset/90985
+ https://bugs.webkit.org/show_bug.cgi?id=64251
+
+ build break
+
+ * fast/dom/shadow/content-element-includer-expected.txt: Removed.
+ * fast/dom/shadow/content-element-includer.html: Removed.
+ * platform/chromium-win/fast/html/details-nested-2-expected.txt:
+ * platform/gtk/fast/html/details-nested-2-expected.txt:
+ * platform/mac/fast/html/details-nested-2-expected.txt:
+ * platform/qt/fast/html/details-nested-2-expected.txt:
+
2011-07-14 Csaba Osztrogonác <ossy@webkit.org>
[Qt] Unreviewed gardening.
+++ /dev/null
-This tests the correctness of includers of forwarded children.
-Note that this test needs internals object thus cannot run outside DRT.
-PASS internals.includerFor(childOfElementWithoutShadow) is null
-PASS internals.includerFor(childOfElementWithShadow) is null
-PASS internals.includerFor(childOfElementWithShadowContent) is shadowContentOfElementWithShadowContent
-PASS internals.includerFor(movingChild) is null
-PASS internals.includerFor(movingChild) is null
-PASS internals.includerFor(movingChild) is anotherShadowContentOfElementWithShadowContent
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
+++ /dev/null
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<pre id="console">
-This tests the correctness of includers of forwarded children.
-Note that this test needs internals object thus cannot run outside DRT.
-</pre>
-<div id="container"></div>
-<script>
-var container = document.getElementById("container");
-
-var shadowRoot = null;
-
-var elementWithoutShadow = document.createElement("div");
-container.appendChild(elementWithoutShadow);
-var childOfElementWithoutShadow = document.createElement("span");
-elementWithoutShadow.appendChild(childOfElementWithoutShadow);
-container.offsetLeft;
-shouldBe("internals.includerFor(childOfElementWithoutShadow)", "null");
-
-var elementWithShadow = document.createElement("div");
-container.appendChild(elementWithShadow);
-var shadowRootOfElementWithShadow = internals.ensureShadowRoot(elementWithShadow);
-shadowRootOfElementWithShadow.appendChild(document.createElement("div")); // Gives non-content child.
-var childOfElementWithShadow = document.createElement("span");
-elementWithShadow.appendChild(childOfElementWithShadow);
-container.offsetLeft;
-shouldBe("internals.includerFor(childOfElementWithShadow)", "null");
-
-var elementWithShadowContent = document.createElement("div");
-container.appendChild(elementWithShadowContent);
-var shadowRootOfElementWithShadowContent = internals.ensureShadowRoot(elementWithShadowContent);
-var shadowContentOfElementWithShadowContent = internals.createShadowContentElement(document);
-shadowRootOfElementWithShadowContent.appendChild(shadowContentOfElementWithShadowContent);
-var childOfElementWithShadowContent = document.createElement("span");
-elementWithShadowContent.appendChild(childOfElementWithShadowContent);
-container.offsetLeft;
-shouldBe("internals.includerFor(childOfElementWithShadowContent)", "shadowContentOfElementWithShadowContent");
-
-//
-// Testing dynamic change
-//
-var movingChild = childOfElementWithShadowContent;
-
-// Removing
-elementWithShadowContent.removeChild(movingChild);
-shouldBe("internals.includerFor(movingChild)", "null");
-
-// Moving to content-less tree
-elementWithShadow.appendChild(movingChild);
-shouldBe("internals.includerFor(movingChild)", "null");
-elementWithShadow.removeChild(movingChild);
-
-// Moving to another content-full tree
-var anotherElementWithShadowContent = document.createElement("div");
-container.appendChild(anotherElementWithShadowContent);
-var anotherShadowRootOfElementWithShadowContent = internals.ensureShadowRoot(anotherElementWithShadowContent);
-var anotherShadowContentOfElementWithShadowContent = internals.createShadowContentElement(document);
-anotherShadowRootOfElementWithShadowContent.appendChild(anotherShadowContentOfElementWithShadowContent);
-
-anotherElementWithShadowContent.appendChild(movingChild);
-container.offsetLeft;
-shouldBe("internals.includerFor(movingChild)", "anotherShadowContentOfElementWithShadowContent");
-
-var successfullyParsed = true;
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
RenderText {#text} at (24,8) size 58x19
text run at (24,8) width 4: " "
text run at (28,8) width 54: "summary"
+ RenderBlock (anonymous) at (8,44) size 768x0
RenderDetails {DETAILS} at (8,44) size 768x72 [border: (8px solid #995555)]
RenderSummary {SUMMARY} at (8,8) size 752x36 [border: (8px solid #CC9999)]
RenderDetailsMarker {DIV} at (8,13) size 10x10: down
RenderText {#text} at (24,8) size 62x19
text run at (24,8) width 4: " "
text run at (28,8) width 58: "summary"
+ RenderBlock (anonymous) at (8,43) size 768x0
RenderDetails {DETAILS} at (8,43) size 768x70 [border: (8px solid #995555)]
RenderSummary {SUMMARY} at (8,8) size 752x35 [border: (8px solid #CC9999)]
RenderDetailsMarker {DIV} at (8,13) size 10x10: down
RenderText {#text} at (24,8) size 62x18
text run at (24,8) width 4: " "
text run at (28,8) width 58: "summary"
+ RenderBlock (anonymous) at (8,42) size 768x0
RenderDetails {DETAILS} at (8,42) size 768x68 [border: (8px solid #995555)]
RenderSummary {SUMMARY} at (8,8) size 752x34 [border: (8px solid #CC9999)]
RenderDetailsMarker {DIV} at (8,12) size 10x10: down
RenderText {#text} at (24,8) size 68x22
text run at (24,8) width 4: " "
text run at (28,8) width 64: "summary"
+ RenderBlock (anonymous) at (8,46) size 768x0
RenderDetails {DETAILS} at (8,46) size 768x76 [border: (8px solid #995555)]
RenderSummary {SUMMARY} at (8,8) size 752x38 [border: (8px solid #CC9999)]
RenderDetailsMarker {DIV} at (8,14) size 10x10: down
+2011-07-14 MORITA Hajime <morrita@google.com>
+
+ Unreviewed, rolling out r90976, r90981, and r90985.
+ http://trac.webkit.org/changeset/90976
+ http://trac.webkit.org/changeset/90981
+ http://trac.webkit.org/changeset/90985
+ https://bugs.webkit.org/show_bug.cgi?id=64251
+
+ build break
+
+ * WebCore.exp.in:
+ * dom/NodeRenderingContext.cpp:
+ (WebCore::NodeRenderingContext::NodeRenderingContext):
+ (WebCore::NodeRenderingContext::nextRenderer):
+ (WebCore::NodeRenderingContext::previousRenderer):
+ * dom/NodeRenderingContext.h:
+ * dom/ShadowContentElement.cpp:
+ (WebCore::ShadowContentElement::attach):
+ (WebCore::ShadowContentElement::detach):
+ * dom/ShadowContentElement.h:
+ * dom/ShadowContentSelector.cpp:
+ (WebCore::ShadowContentSelector::ShadowContentSelector):
+ (WebCore::ShadowContentSelector::selectInclusion):
+ (WebCore::ShadowContentSelector::willAttachContentFor):
+ (WebCore::ShadowContentSelector::didAttachContent):
+ (WebCore::ShadowContentSelector::activeElement):
+ * dom/ShadowContentSelector.h:
+ * dom/ShadowRoot.cpp:
+ (WebCore::ShadowRoot::~ShadowRoot):
+ (WebCore::ShadowRoot::activeContentElement):
+ * dom/ShadowRoot.h:
+ * testing/Internals.cpp:
+ * testing/Internals.h:
+ * testing/Internals.idl:
+
2011-07-13 Ryosuke Niwa <rniwa@webkit.org>
Move forwardEvent from RenderTextControl to HTMLTextFormControlElement
__ZN7WebCore19TextResourceDecoderC1ERKN3WTF6StringERKNS_12TextEncodingEb
__ZN7WebCore19TextResourceDecoderD1Ev
__ZN7WebCore19applicationIsSafariEv
-__ZN7WebCore20NodeRenderingContextC1EPNS_4NodeE
-__ZN7WebCore20NodeRenderingContextD1Ev
__ZN7WebCore20RenderEmbeddedObject30setShowsCrashedPluginIndicatorEv
__ZN7WebCore20ResourceResponseBase24setExpectedContentLengthEx
__ZN7WebCore20ResourceResponseBaseC2Ev
, m_node(node)
, m_parentNodeForRenderingAndStyle(0)
, m_visualParentShadowRoot(0)
- , m_includer(0)
+ , m_contentElement(0)
, m_style(0)
{
ContainerNode* parent = m_node->parentOrHostNode();
m_visualParentShadowRoot = toElement(parent)->shadowRoot();
if (m_visualParentShadowRoot) {
- if ((m_includer = m_visualParentShadowRoot->includerFor(m_node))) {
+ if ((m_contentElement = m_visualParentShadowRoot->activeContentElement())) {
m_phase = AttachContentForwarded;
- m_parentNodeForRenderingAndStyle = NodeRenderingContext(m_includer).parentNodeForRenderingAndStyle();
+ m_parentNodeForRenderingAndStyle = NodeRenderingContext(m_contentElement).parentNodeForRenderingAndStyle();
return;
}
, m_node(node)
, m_parentNodeForRenderingAndStyle(0)
, m_visualParentShadowRoot(0)
- , m_includer(0)
+ , m_contentElement(0)
, m_style(style)
{
}
return renderer->nextSibling();
if (m_phase == AttachContentForwarded) {
- if (RenderObject* found = nextRendererOf(m_includer, m_node))
+ if (RenderObject* found = nextRendererOf(m_contentElement, m_node))
return found;
- return NodeRenderingContext(m_includer).nextRenderer();
+ return NodeRenderingContext(m_contentElement).nextRenderer();
}
// Avoid an O(n^2) problem with this function by not checking for
return renderer->previousSibling();
if (m_phase == AttachContentForwarded) {
- if (RenderObject* found = previousRendererOf(m_includer, m_node))
+ if (RenderObject* found = previousRendererOf(m_contentElement, m_node))
return found;
- return NodeRenderingContext(m_includer).previousRenderer();
+ return NodeRenderingContext(m_contentElement).previousRenderer();
}
// FIXME: We should have the same O(N^2) avoidance as nextRenderer does
RenderObject* parentRenderer() const;
RenderObject* nextRenderer() const;
RenderObject* previousRenderer() const;
- ShadowContentElement* includer() const;
RenderStyle* style() const;
void setStyle(PassRefPtr<RenderStyle>);
Node* m_node;
ContainerNode* m_parentNodeForRenderingAndStyle;
ShadowRoot* m_visualParentShadowRoot;
- ShadowContentElement* m_includer;
+ ShadowContentElement* m_contentElement;
RefPtr<RenderStyle> m_style;
};
return m_style.get();
}
-inline ShadowContentElement* NodeRenderingContext::includer() const
-{
- return m_includer;
-}
-
class NodeRendererFactory {
WTF_MAKE_NONCOPYABLE(NodeRendererFactory);
WTF_MAKE_FAST_ALLOCATED;
#include "HTMLNames.h"
#include "ShadowContentSelector.h"
-#include "ShadowRoot.h"
namespace WebCore {
m_last = m_last->next();
}
+
PassRefPtr<ShadowContentElement> ShadowContentElement::create(Document* document)
{
DEFINE_STATIC_LOCAL(QualifiedName, tagName, (nullAtom, "webkitShadowContent", HTMLNames::divTag.namespaceURI()));
{
}
-static void removeFromSet(ShadowInclusionList* list, ShadowInclusionSet* set)
-{
- for (ShadowInclusion* inclusion = list->first(); inclusion; inclusion = inclusion->next())
- set->remove(inclusion);
-}
-
-static void addToSet(ShadowInclusionList* list, ShadowInclusionSet* set)
-{
- for (ShadowInclusion* inclusion = list->first(); inclusion; inclusion = inclusion->next())
- set->add(inclusion);
-}
-
void ShadowContentElement::attach()
{
ASSERT(!firstChild()); // Currently doesn't support any light child.
StyledElement::attach();
if (ShadowContentSelector* selector = ShadowContentSelector::currentInstance()) {
-
- removeFromSet(&m_inclusions, selector->shadowRoot()->ensureInclusions());
- m_inclusions.clear();
- selector->selectInclusion(this, &m_inclusions);
- addToSet(&m_inclusions, selector->shadowRoot()->ensureInclusions());
-
+ selector->willAttachContentFor(this);
+ selector->selectInclusion(&m_inclusions);
for (ShadowInclusion* inclusion = m_inclusions.first(); inclusion; inclusion = inclusion->next())
inclusion->content()->detach();
for (ShadowInclusion* inclusion = m_inclusions.first(); inclusion; inclusion = inclusion->next())
inclusion->content()->attach();
+ selector->didAttachContent();
}
}
void ShadowContentElement::detach()
{
- if (ShadowRoot* root = toShadowRoot(shadowTreeRootNode())) {
- removeFromSet(&m_inclusions, root->ensureInclusions());
- m_inclusions.clear();
- }
-
- ASSERT(m_inclusions.isEmpty());
+ m_inclusions.clear();
StyledElement::detach();
}
#include "StyledElement.h"
#include <wtf/Forward.h>
-#include <wtf/HashSet.h>
namespace WebCore {
return adoptRef(new ShadowInclusion(includer, content));
}
+
class ShadowInclusionList {
public:
ShadowInclusionList();
append(ShadowInclusion::create(includer, node));
}
-class ShadowInclusionSet {
-public:
- void add(ShadowInclusion* value) { m_set.add(value); }
- void remove(ShadowInclusion* value) { m_set.remove(value); }
- bool isEmpty() const { return m_set.isEmpty(); }
- ShadowInclusion* find(Node* key) const;
-
-private:
- struct Translator {
- public:
- static unsigned hash(const Node* key) { return PtrHash<const Node*>::hash(key); }
- static bool equal(const ShadowInclusion* inclusion, const Node* content) { return inclusion->content() == content; }
- };
-
- struct Hash {
- static unsigned hash(ShadowInclusion* key) { return PtrHash<const Node*>::hash(key->content()); }
- static bool equal(ShadowInclusion* a, ShadowInclusion* b) { return a->content() == b->content(); }
- static const bool safeToCompareToEmptyOrDeleted = false;
- };
-
- typedef HashSet<ShadowInclusion*, Hash> PointerSet;
-
- PointerSet m_set;
-};
-
-inline ShadowInclusion* ShadowInclusionSet::find(Node* key) const
-{
- PointerSet::iterator found = m_set.find<Node*, ShadowInclusionSet::Translator>(key);
- return found != m_set.end() ? *found : 0;
-}
// NOTE: Current implementation doesn't support dynamic insertion/deletion of ShadowContentElement.
// You should create ShadowContentElement during the host construction.
ShadowContentSelector::ShadowContentSelector(ShadowRoot* shadowRoot)
: m_parent(s_currentInstance)
, m_shadowRoot(shadowRoot)
+ , m_activeElement(0)
{
s_currentInstance = this;
for (Node* node = shadowRoot->shadowHost()->firstChild(); node; node = node->nextSibling())
s_currentInstance = m_parent;
}
-void ShadowContentSelector::selectInclusion(ShadowContentElement* contentElement, ShadowInclusionList* inclusions)
+void ShadowContentSelector::selectInclusion(ShadowInclusionList* inclusions)
{
- ASSERT(inclusions->isEmpty());
+ inclusions->clear();
for (size_t i = 0; i < m_children.size(); ++i) {
Node* child = m_children[i].get();
if (!child)
continue;
- if (!contentElement->shouldInclude(child))
+ if (!m_activeElement->shouldInclude(child))
continue;
- inclusions->append(contentElement, child);
+ inclusions->append(m_activeElement, child);
m_children[i] = 0;
}
+
+}
+
+void ShadowContentSelector::willAttachContentFor(ShadowContentElement* element)
+{
+ ASSERT(!m_activeElement);
+ m_activeElement = element;
+}
+
+void ShadowContentSelector::didAttachContent()
+{
+ ASSERT(m_activeElement);
+ m_activeElement = 0;
+}
+
+ShadowContentElement* ShadowContentSelector::activeElement() const
+{
+ return m_activeElement;
}
}
explicit ShadowContentSelector(ShadowRoot*);
~ShadowContentSelector();
- void selectInclusion(ShadowContentElement*, ShadowInclusionList*);
+ void willAttachContentFor(ShadowContentElement*);
+ void didAttachContent();
+ void selectInclusion(ShadowInclusionList*);
ShadowRoot* shadowRoot() const { return m_shadowRoot; }
+ ShadowContentElement* activeElement() const;
static ShadowContentSelector* currentInstance() { return s_currentInstance; }
private:
ShadowContentSelector* m_parent;
ShadowRoot* m_shadowRoot;
+ ShadowContentElement* m_activeElement;
Vector<RefPtr<Node> > m_children;
static ShadowContentSelector* s_currentInstance;
#include "Document.h"
#include "NodeRareData.h"
-#include "ShadowContentElement.h"
#include "ShadowContentSelector.h"
namespace WebCore {
ShadowRoot::~ShadowRoot()
{
- ASSERT(!m_inclusions || m_inclusions->isEmpty());
}
String ShadowRoot::nodeName() const
clearChildNeedsStyleRecalc();
}
-ShadowContentElement* ShadowRoot::includerFor(Node* node) const
+ShadowContentElement* ShadowRoot::activeContentElement()
{
- if (!m_inclusions)
+ ShadowContentSelector* selector = ShadowContentSelector::currentInstance();
+ if (!selector || selector->shadowRoot() != this)
return 0;
- ShadowInclusion* found = m_inclusions->find(node);
- if (!found)
- return 0;
- return found->includer();
+ return selector->activeElement();
}
void ShadowRoot::hostChildrenChanged()
TreeScope::attach();
}
-ShadowInclusionSet* ShadowRoot::inclusions() const
-{
- return m_inclusions.get();
-}
-
-ShadowInclusionSet* ShadowRoot::ensureInclusions()
-{
- if (!m_inclusions)
- m_inclusions = adoptPtr(new ShadowInclusionSet());
- return m_inclusions.get();
-}
-
-
}
class Document;
class ShadowContentElement;
-class ShadowInclusionSet;
class ShadowRoot : public TreeScope {
public:
virtual void recalcStyle(StyleChange = NoChange);
- ShadowContentElement* includerFor(Node*) const;
+ ShadowContentElement* activeContentElement();
void hostChildrenChanged();
virtual void attach();
virtual bool applyAuthorSheets() const;
void setApplyAuthorSheets(bool);
- ShadowInclusionSet* inclusions() const;
- ShadowInclusionSet* ensureInclusions();
-
private:
ShadowRoot(Document*);
virtual ~ShadowRoot();
bool hasContentElement() const;
bool m_applyAuthorSheets;
- OwnPtr<ShadowInclusionSet> m_inclusions;
};
inline PassRefPtr<ShadowRoot> ShadowRoot::create(Document* document)
return adoptRef(new ShadowRoot(document));
}
-inline ShadowRoot* toShadowRoot(Node* node)
-{
- ASSERT(!node || node->nodeType() == Node::SHADOW_ROOT_NODE);
- return static_cast<ShadowRoot*>(node);
-}
-
} // namespace
#endif
#include "Element.h"
#include "ExceptionCode.h"
#include "InspectorController.h"
-#include "NodeRenderingContext.h"
#include "Page.h"
#include "RenderTreeAsText.h"
#include "ShadowContentElement.h"
host->removeShadowRoot();
}
-Element* Internals::includerFor(Node* node, ExceptionCode& ec)
-{
- if (!node) {
- ec = INVALID_ACCESS_ERR;
- return 0;
- }
-
- return NodeRenderingContext(node).includer();
-}
-
String Internals::shadowPseudoId(Element* element, ExceptionCode& ec)
{
if (!element) {
Node* ensureShadowRoot(Element* host, ExceptionCode&);
Node* shadowRoot(Element* host, ExceptionCode&);
void removeShadowRoot(Element* host, ExceptionCode&);
- Element* includerFor(Node*, ExceptionCode&);
String shadowPseudoId(Element*, ExceptionCode&);
PassRefPtr<Element> createShadowContentElement(Document*, ExceptionCode&);
Node ensureShadowRoot(in Element host) raises (DOMException);
Node shadowRoot(in Element host) raises (DOMException);
- Element includerFor(in Node node) raises (DOMException);
void removeShadowRoot(in Element host) raises (DOMException);
DOMString shadowPseudoId(in Element element) raises (DOMException);
Element createShadowContentElement(in Document document) raises(DOMException);
+2011-07-14 MORITA Hajime <morrita@google.com>
+
+ Unreviewed, rolling out r90976, r90981, and r90985.
+ http://trac.webkit.org/changeset/90976
+ http://trac.webkit.org/changeset/90981
+ http://trac.webkit.org/changeset/90985
+ https://bugs.webkit.org/show_bug.cgi?id=64251
+
+ build break
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
2011-07-13 MORITA Hajime <morrita@google.com>
Unreviewed attempt at a build fix.
?createThread@WTF@@YAIP6APAXPAX@Z0@Z
; Re-exports from WebCore for test harnesses
- ??0NodeRenderingContext@WebCore@@QAE@PAVNode@1@@Z
- ??1NodeRenderingContext@WebCore@@QAE@XZ
- ?toNode@WebCore@@YAPAVNode@1@VJSValue@JSC@@@Z
??0String@WTF@@QAE@PBD@Z
??0String@WTF@@QAE@PB_W@Z
?add@AtomicString@WTF@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@2@PBD@Z
?createThread@WTF@@YAIP6APAXPAX@Z0@Z
; Re-exports from WebCore for test harnesses
- ??0NodeRenderingContext@WebCore@@QAE@PAVNode@1@@Z
??0String@WTF@@QAE@PBD@Z
??0String@WTF@@QAE@PB_W@Z
- ??1NodeRenderingContext@WebCore@@QAE@XZ
?add@AtomicString@WTF@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@2@PBD@Z
?addSlowCase@AtomicString@WTF@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@2@PAVStringImpl@2@@Z
?cacheDOMStructure@WebCore@@YAPAVStructure@JSC@@PAVJSDOMGlobalObject@1@PAV23@PBUClassInfo@3@@Z
?toDocument@WebCore@@YAPAVDocument@1@VJSValue@JSC@@@Z
?toElement@WebCore@@YAPAVElement@1@VJSValue@JSC@@@Z
?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z
- ?toNode@WebCore@@YAPAVNode@1@VJSValue@JSC@@@Z
- ?virtualFunctionToPreventWeakVtable@JSDOMWrapper@WebCore@@MAEXXZ
\ No newline at end of file
+ ?virtualFunctionToPreventWeakVtable@JSDOMWrapper@WebCore@@MAEXXZ
_ZN7WebCore16jsStringSlowCaseEPN3JSC9ExecStateERN3WTF7HashMapIPNS3_10StringImplENS0_4WeakINS0_8JSStringEEENS3_10StringHashENS3_10HashTraitsIS6_EENSB_IS9_EEEES6_;
_ZN7WebCore17cacheDOMStructureEPNS_17JSDOMGlobalObjectEPN3JSC9StructureEPKNS2_9ClassInfoE;
_ZN7WebCore19InspectorController39setResourcesDataSizeLimitsFromInternalsEii;
-_ZN7WebCore20NodeRenderingContextC1EPNS_4NodeE;
-_ZN7WebCore20NodeRenderingContextD1Ev;
_ZN7WebCore20ShadowContentElement6createEPNS_8DocumentE;
_ZN7WebCore21getCachedDOMStructureEPNS_17JSDOMGlobalObjectEPKN3JSC9ClassInfoE;
_ZN7WebCore22externalRepresentationEPNS_7ElementEj;
_ZN7WebCore6JSNode13visitChildrenERN3JSC11SlotVisitorE;
_ZN7WebCore6JSNode3putEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE;
_ZN7WebCore6JSNode6s_infoE;
-_ZN7WebCore6toNodeEN3JSC7JSValueE;
_ZN7WebCore7Element16ensureShadowRootEv;
_ZN7WebCore7Element16removeShadowRootEv;
_ZN7WebCore9JSElement3putEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE;