Index: third_party/WebKit/Source/bindings/core/v8/ActiveScriptWrappable.cpp |
diff --git a/third_party/WebKit/Source/bindings/core/v8/ActiveScriptWrappable.cpp b/third_party/WebKit/Source/bindings/core/v8/ActiveScriptWrappable.cpp |
index 012dbde6f4b762f019d32cbdfa9030805b65692d..4fb8c56dfac20d205a348ce829aeb5f836da3d6e 100644 |
--- a/third_party/WebKit/Source/bindings/core/v8/ActiveScriptWrappable.cpp |
+++ b/third_party/WebKit/Source/bindings/core/v8/ActiveScriptWrappable.cpp |
@@ -6,40 +6,23 @@ |
#include "bindings/core/v8/ScriptWrappable.h" |
#include "bindings/core/v8/ScriptWrappableVisitor.h" |
-#include "wtf/HashSet.h" |
-#include "wtf/ThreadSpecific.h" |
-#include "wtf/Threading.h" |
+#include "bindings/core/v8/V8PerIsolateData.h" |
namespace blink { |
-namespace { |
- |
-using ActiveScriptWrappableSetType = PersistentHeapHashSet<WeakMember<const ActiveScriptWrappable>>; |
- |
-ActiveScriptWrappableSetType& activeScriptWrappables() |
-{ |
- DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<ActiveScriptWrappableSetType>, activeScriptWrappableSet, new ThreadSpecific<ActiveScriptWrappableSetType>()); |
- if (!activeScriptWrappableSet.isSet()) |
- activeScriptWrappableSet->registerAsStaticReference(); |
- return *activeScriptWrappableSet; |
-} |
- |
-} // namespace |
- |
ActiveScriptWrappable::ActiveScriptWrappable(ScriptWrappable* self) |
: m_scriptWrappable(self) |
{ |
- activeScriptWrappables().add(this); |
-} |
- |
-ScriptWrappable* ActiveScriptWrappable::toScriptWrappable() const |
-{ |
- return m_scriptWrappable; |
+ ASSERT(ThreadState::current()); |
+ v8::Isolate* isolate = ThreadState::current()->isolate(); |
+ V8PerIsolateData* isolateData = V8PerIsolateData::from(isolate); |
+ isolateData->addActiveScriptWrappable(this); |
} |
-void ActiveScriptWrappable::traceActiveScriptWrappables(ScriptWrappableVisitor* visitor) |
+void ActiveScriptWrappable::traceActiveScriptWrappables(v8::Isolate* isolate, ScriptWrappableVisitor* visitor) |
{ |
- for (auto activeWrappable : activeScriptWrappables()) { |
+ V8PerIsolateData* isolateData = V8PerIsolateData::from(isolate); |
+ for (auto activeWrappable : isolateData->activeScriptWrappables()) { |
if (!activeWrappable->hasPendingActivity()) |
continue; |