diff options
Diffstat (limited to 'WebCore/bindings/js/JSDOMGlobalObject.cpp')
-rw-r--r-- | WebCore/bindings/js/JSDOMGlobalObject.cpp | 21 |
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()) |