[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.18-1-697-g2f78b87

eric at webkit.org eric at webkit.org
Wed Jan 20 22:23:45 UTC 2010


The following commit has been merged in the debian/unstable branch:
commit 2b6033cc114fdfd74444f215a80514d2c7ffe51a
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Jan 14 07:35:01 2010 +0000

    2010-01-13  Mads Ager  <ager at chromium.org>
    
            Reviewed by Dimitri Glazkov.
    
            [V8] Slow named property lookup on DOMWindow because of missing fast case
            https://bugs.webkit.org/show_bug.cgi?id=33584
    
            Add fast case checks to V8 named property getter on DOMWindow
            objects.  If the property is not in the DOM there is no reason to
            search the DOM for all occurrences.
    
            Covered by layout tests.
    
            * bindings/v8/custom/V8DOMWindowCustom.cpp:
            (WebCore::V8DOMWindow::namedPropertyGetter):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53241 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 8d01b57..1e921f9 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-01-13  Mads Ager  <ager at chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        [V8] Slow named property lookup on DOMWindow because of missing fast case
+        https://bugs.webkit.org/show_bug.cgi?id=33584
+
+        Add fast case checks to V8 named property getter on DOMWindow
+        objects.  If the property is not in the DOM there is no reason to
+        search the DOM for all occurrences.
+
+        Covered by layout tests.
+
+        * bindings/v8/custom/V8DOMWindowCustom.cpp:
+        (WebCore::V8DOMWindow::namedPropertyGetter):
+
 2010-01-13  Gavin Barraclough  <barraclough at apple.com>
 
         Reviewed by Oliver Hunt.
diff --git a/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp b/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp
index aa5b6a6..d606f24 100644
--- a/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp
@@ -40,6 +40,7 @@
 #include "FrameLoadRequest.h"
 #include "FrameView.h"
 #include "HTMLCollection.h"
+#include "HTMLDocument.h"
 #include "MediaPlayer.h"
 #include "Page.h"
 #include "PlatformScreen.h"
@@ -812,13 +813,14 @@ v8::Handle<v8::Value> V8DOMWindow::namedPropertyGetter(v8::Local<v8::String> nam
     // Search named items in the document.
     Document* doc = frame->document();
 
-    if (doc) {
-        RefPtr<HTMLCollection> items = doc->windowNamedItems(propName);
-        if (items->length() >= 1) {
-            if (items->length() == 1)
-                return V8DOMWrapper::convertNodeToV8Object(items->firstItem());
-            else
+    if (doc && doc->isHTMLDocument()) {
+        if (static_cast<HTMLDocument*>(doc)->hasNamedItem(propName.impl()) || doc->hasElementWithId(propName.impl())) {
+            RefPtr<HTMLCollection> items = doc->windowNamedItems(propName);
+            if (items->length() >= 1) {
+                if (items->length() == 1)
+                    return V8DOMWrapper::convertNodeToV8Object(items->firstItem());
                 return V8DOMWrapper::convertToV8Object(V8ClassIndex::HTMLCOLLECTION, items.release());
+            }
         }
     }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list