Title: [135339] trunk/Source/WebCore
Revision
135339
Author
aba...@webkit.org
Date
2012-11-20 18:15:30 -0800 (Tue, 20 Nov 2012)

Log Message

7% regression in dromaeo_domcorequery/dom_query_getElementsByTagName__not_in_document
https://bugs.webkit.org/show_bug.cgi?id=102852

Reviewed by Kentaro Hara.

In http://trac.webkit.org/changeset/135208/, we lost the early-exit
check for whether isolatedWorldsExist() in this code path. This
regression points to benchmarks that we can further improve by
continuing to merge the general ScriptWrappable code path with the Node
code path.

* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (135338 => 135339)


--- trunk/Source/WebCore/ChangeLog	2012-11-21 01:58:09 UTC (rev 135338)
+++ trunk/Source/WebCore/ChangeLog	2012-11-21 02:15:30 UTC (rev 135339)
@@ -1,3 +1,19 @@
+2012-11-20  Adam Barth  <aba...@webkit.org>
+
+        7% regression in dromaeo_domcorequery/dom_query_getElementsByTagName__not_in_document
+        https://bugs.webkit.org/show_bug.cgi?id=102852
+
+        Reviewed by Kentaro Hara.
+
+        In http://trac.webkit.org/changeset/135208/, we lost the early-exit
+        check for whether isolatedWorldsExist() in this code path. This
+        regression points to benchmarks that we can further improve by
+        continuing to merge the general ScriptWrappable code path with the Node
+        code path.
+
+        * bindings/v8/DOMDataStore.cpp:
+        (WebCore::DOMDataStore::current):
+
 2012-11-20  Kentaro Hara  <hara...@chromium.org>
 
         [V8] Change a return type of V8Parameter::prepare() from bool to void

Modified: trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp (135338 => 135339)


--- trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp	2012-11-21 01:58:09 UTC (rev 135338)
+++ trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp	2012-11-21 02:15:30 UTC (rev 135339)
@@ -54,12 +54,17 @@
 DOMDataStore* DOMDataStore::current(v8::Isolate* isolate)
 {
     DEFINE_STATIC_LOCAL(DOMDataStore, mainWorldDOMDataStore, (MainWorld));
+
     V8PerIsolateData* data = "" ? V8PerIsolateData::from(isolate) : V8PerIsolateData::current();
     if (UNLIKELY(!!data->domDataStore()))
         return data->domDataStore();
-    V8DOMWindowShell* shell = V8DOMWindowShell::isolated(v8::Context::GetEntered());
-    if (UNLIKELY(!!shell))
-        return shell->world()->isolatedWorldDOMDataStore();
+
+    if (DOMWrapperWorld::isolatedWorldsExist()) {
+        V8DOMWindowShell* shell = V8DOMWindowShell::isolated(v8::Context::GetEntered());
+        if (UNLIKELY(!!shell))
+            return shell->world()->isolatedWorldDOMDataStore();
+    }
+
     return &mainWorldDOMDataStore;
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to