summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/js/JSDOMGlobalObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bindings/js/JSDOMGlobalObject.cpp')
-rw-r--r--WebCore/bindings/js/JSDOMGlobalObject.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/WebCore/bindings/js/JSDOMGlobalObject.cpp b/WebCore/bindings/js/JSDOMGlobalObject.cpp
index a7f7b21..68a1db9 100644
--- a/WebCore/bindings/js/JSDOMGlobalObject.cpp
+++ b/WebCore/bindings/js/JSDOMGlobalObject.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008, 2009 Apple Inc. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -58,19 +58,17 @@ JSDOMGlobalObject::~JSDOMGlobalObject()
it->second->clearGlobalObject();
}
-void JSDOMGlobalObject::mark()
+void JSDOMGlobalObject::markChildren(MarkStack& markStack)
{
- Base::mark();
+ Base::markChildren(markStack);
JSDOMStructureMap::iterator end = structures().end();
for (JSDOMStructureMap::iterator it = structures().begin(); it != end; ++it)
- it->second->mark();
+ it->second->markAggregate(markStack);
JSDOMConstructorMap::iterator end2 = constructors().end();
- for (JSDOMConstructorMap::iterator it2 = constructors().begin(); it2 != end2; ++it2) {
- if (!it2->second->marked())
- it2->second->mark();
- }
+ for (JSDOMConstructorMap::iterator it2 = constructors().begin(); it2 != end2; ++it2)
+ markStack.append(it2->second);
}
JSEventListener* JSDOMGlobalObject::findJSEventListener(JSValue val)
@@ -116,10 +114,15 @@ Event* JSDOMGlobalObject::currentEvent() const
return d()->evt;
}
+JSDOMGlobalObject* toJSDOMGlobalObject(Document* document)
+{
+ return toJSDOMWindow(document->frame());
+}
+
JSDOMGlobalObject* toJSDOMGlobalObject(ScriptExecutionContext* scriptExecutionContext)
{
if (scriptExecutionContext->isDocument())
- return toJSDOMWindow(static_cast<Document*>(scriptExecutionContext)->frame());
+ return toJSDOMGlobalObject(static_cast<Document*>(scriptExecutionContext));
#if ENABLE(WORKERS)
if (scriptExecutionContext->isWorkerContext())