LayoutTests:
authorggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Oct 2006 01:43:01 +0000 (01:43 +0000)
committerggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Oct 2006 01:43:01 +0000 (01:43 +0000)
        Reviewed by Beth.

        Updated some results now that some global JS objects repeatably report their
        statically declared properties.

        * fast/js/window-properties-expected.txt:
        * fast/js/window-properties.html:

WebCore:

        Reviewed by Beth.

        Fixed http://bugs.webkit.org/show_bug.cgi?id=11222

        Some global JS objects lacked references to their property hashtables,
        so for-in enumeration didn't work. I added the references, and then removed
        a few bogus properties from the tables. The bogus ones got in there through
        bit rot.

        We should come up with some solution to these hand-written bindings bugs.
        Maybe we could use a script to autogenerate them or something.

        * bindings/js/kjs_window.cpp:
        (KJS::):
        (KJS::History::getValueProperty):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@17126 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/js/window-properties-expected.txt
LayoutTests/fast/js/window-properties.html
WebCore/ChangeLog
WebCore/bindings/js/kjs_window.cpp
WebCore/bindings/js/kjs_window.h

index c027fb7cac5c6e48e4f0faef900aa5d0519c56b1..7ee08ca51daa0238581d2009dfa4ca21258e502d 100644 (file)
@@ -1,3 +1,13 @@
+2006-10-18  Geoffrey Garen  <ggaren@apple.com>
+
+        Reviewed by Beth.
+        
+        Updated some results now that some global JS objects repeatably report their
+        statically declared properties.
+
+        * fast/js/window-properties-expected.txt:
+        * fast/js/window-properties.html:
+
 2006-10-18  Adam Roben  <aroben@apple.com>
 
         Reviewed by Maciej.
index 80aed2b4be6816b8d68775c48d61de7180c47df0..715fedb3f9a0f1fe25d88ea739ad51173e20dc61 100644 (file)
@@ -345,6 +345,16 @@ window.document.links : function
 window.document.location : object (Location)
 window.document.location.toString : function
 window.document.location.assign : function
+window.document.location.host : string
+window.document.location.pathname : string
+window.document.location.port : string
+window.document.location.href : string
+window.document.location.search : string
+window.document.location.reload : function
+window.document.location.hash : string
+window.document.location.hostname : string
+window.document.location.protocol : string
+window.document.location.replace : function
 window.document.cookie : string
 window.document.plugins : function
 window.document.forms : function
@@ -906,6 +916,7 @@ window.document.defaultView.releaseEvents : function
 window.document.defaultView.offscreenBuffering : boolean
 window.document.defaultView.moveBy : function
 window.document.defaultView.personalbar : object (BarInfo)
+window.document.defaultView.personalbar.visible : boolean
 window.document.defaultView.DOMException : object (DOMExceptionConstructor)
 window.document.defaultView.scrollX : number
 window.document.defaultView.Image : object (Object)
@@ -931,6 +942,7 @@ window.document.defaultView.screen : object (Screen)
 window.document.defaultView.parent : object (DOMWindow)
 window.document.defaultView.parent *** children skipped, already printed above under 'window.document.defaultView'
 window.document.defaultView.menubar : object (BarInfo)
+window.document.defaultView.menubar.visible : boolean
 window.document.defaultView.Option : object (Object)
 window.document.defaultView.onchange : null
 window.document.defaultView.innerWidth : number
@@ -941,7 +953,9 @@ window.document.defaultView.frames.location : object (Location)
 window.document.defaultView.frames.location *** children skipped, already printed above under 'window.document.location'
 window.document.defaultView.frames.length : number
 window.document.defaultView.locationbar : object (BarInfo)
+window.document.defaultView.locationbar.visible : boolean
 window.document.defaultView.toolbar : object (BarInfo)
+window.document.defaultView.toolbar.visible : boolean
 window.document.defaultView.length : number
 window.document.defaultView.onbeforeunload : null
 window.document.defaultView.outerHeight : number
@@ -949,12 +963,15 @@ window.document.defaultView.onmousewheel : null
 window.document.defaultView.history : object (History)
 window.document.defaultView.history.back : function
 window.document.defaultView.history.forward : function
+window.document.defaultView.history.length : number
+window.document.defaultView.history.go : function
 window.document.defaultView.prompt : function
 window.document.defaultView.top : object (DOMWindow)
 window.document.defaultView.top *** children skipped, already printed above under 'window.document.defaultView'
 window.document.defaultView.onfocus : null
 window.document.defaultView.onmousedown : null
 window.document.defaultView.statusbar : object (BarInfo)
+window.document.defaultView.statusbar.visible : boolean
 window.document.defaultView.screenLeft : number
 window.document.defaultView.location : object (Location)
 window.document.defaultView.location *** children skipped, already printed above under 'window.document.location'
@@ -977,6 +994,7 @@ window.document.defaultView.onmouseout : null
 window.document.defaultView.onerror : null
 window.document.defaultView.onmousemove : null
 window.document.defaultView.scrollbars : object (BarInfo)
+window.document.defaultView.scrollbars.visible : boolean
 window.document.defaultView.onclick : null
 window.document.defaultView.event : undefined
 window.document.defaultView.confirm : function
index 87f5690d87fb46cdb664c1d61e9c1b906e50e28e..2f6e9c54b38240fee0f9a12f51e1adcd1400aaa6 100644 (file)
@@ -23,7 +23,8 @@ function shouldSkipProperty(fullPropertyName, propertyValue) {
 
 function shouldSkipChildren(fullPropertyName, propertyValue) {
   if (propertyValue == logDiv
-    || fullPropertyName == 'window.document.body.lastChild')
+    || fullPropertyName == 'window.document.body.lastChild'
+    || fullPropertyName == 'window.history.length')
     return true;
 }
 
index 51b669e07fbc1738a232c91a18432c4a7f9b8d58..a8df6b4dfe7e7325a4f3cbc84357615d6ab882d0 100644 (file)
@@ -1,3 +1,21 @@
+2006-10-18  Geoffrey Garen  <ggaren@apple.com>
+
+        Reviewed by Beth.
+        
+        Fixed http://bugs.webkit.org/show_bug.cgi?id=11222
+
+        Some global JS objects lacked references to their property hashtables,
+        so for-in enumeration didn't work. I added the references, and then removed
+        a few bogus properties from the tables. The bogus ones got in there through
+        bit rot.
+        
+        We should come up with some solution to these hand-written bindings bugs.
+        Maybe we could use a script to autogenerate them or something.
+
+        * bindings/js/kjs_window.cpp:
+        (KJS::):
+        (KJS::History::getValueProperty):
+
 2006-10-18  Adam Roben  <aroben@apple.com>
 
         Reviewed by Brady.
index e7da649249e7febcbaa5fbaa262d039adab7be56..b50e8712596aecc918c95b9820b5e5d4dd2316dc 100644 (file)
@@ -2038,7 +2038,7 @@ UString FrameArray::toString(ExecState *) const
 
 ////////////////////// Location Object ////////////////////////
 
-const ClassInfo Location::info = { "Location", 0, 0, 0 };
+const ClassInfo Location::info = { "Location", 0, &LocationTable, 0 };
 /*
 @begin LocationTable 12
   assign        Location::Assign        DontDelete|Function 1
@@ -2050,7 +2050,6 @@ const ClassInfo Location::info = { "Location", 0, 0, 0 };
   port          Location::Port          DontDelete
   protocol      Location::Protocol      DontDelete
   search        Location::Search        DontDelete
-  [[==]]        Location::EqualEqual    DontDelete|ReadOnly
   toString      Location::ToString      DontDelete|Function 0
   replace       Location::Replace       DontDelete|Function 1
   reload        Location::Reload        DontDelete|Function 0
@@ -2247,7 +2246,7 @@ JSValue *LocationFunc::callAsFunction(ExecState *exec, JSObject *thisObj, const
 
 ////////////////////// Selection Object ////////////////////////
 
-const ClassInfo Selection::info = { "Selection", 0, 0, 0 };
+const ClassInfo Selection::info = { "Selection", 0, &SelectionTable, 0 };
 /*
 @begin SelectionTable 19
   anchorNode                Selection::AnchorNode               DontDelete|ReadOnly
@@ -2260,7 +2259,6 @@ const ClassInfo Selection::info = { "Selection", 0, 0, 0 };
   extentOffset              Selection::ExtentOffset             DontDelete|ReadOnly
   isCollapsed               Selection::IsCollapsed              DontDelete|ReadOnly
   type                      Selection::_Type                    DontDelete|ReadOnly
-  [[==]]                    Selection::EqualEqual               DontDelete|ReadOnly
   toString                  Selection::ToString                 DontDelete|Function 0
   collapse                  Selection::Collapse                 DontDelete|Function 2
   collapseToEnd             Selection::CollapseToEnd            DontDelete|Function 0
@@ -2372,7 +2370,7 @@ JSValue *SelectionFunc::callAsFunction(ExecState *exec, JSObject *thisObj, const
 
 ////////////////////// BarInfo Object ////////////////////////
 
-const ClassInfo BarInfo::info = { "BarInfo", 0, 0, 0 };
+const ClassInfo BarInfo::info = { "BarInfo", 0, &BarInfoTable, 0 };
 /*
 @begin BarInfoTable 1
   visible                BarInfo::Visible                        DontDelete|ReadOnly
@@ -2416,7 +2414,7 @@ bool BarInfo::getOwnPropertySlot(ExecState *exec, const Identifier& propertyName
 
 ////////////////////// History Object ////////////////////////
 
-const ClassInfo History::info = { "History", 0, 0, 0 };
+const ClassInfo History::info = { "History", 0, &HistoryTable, 0 };
 /*
 @begin HistoryTable 4
   length        History::Length         DontDelete|ReadOnly
@@ -2434,18 +2432,12 @@ bool History::getOwnPropertySlot(ExecState *exec, const Identifier& propertyName
 
 JSValue *History::getValueProperty(ExecState *, int token) const
 {
-  switch (token) {
-  case Length:
-  {
+    ASSERT(token == Length);
     BrowserExtension *ext = m_frame->browserExtension();
     if (!ext)
       return jsNumber(0);
 
     return jsNumber(ext->getHistoryLength());
-  }
-  default:
-    return jsUndefined();
-  }
 }
 
 UString History::toString(ExecState *exec) const
index 9ba9f0479adb748ba8490745cf24bf2bbecc3821..4f0c802a9ccffb10e19f15e556386c90e9506445 100644 (file)
@@ -229,7 +229,7 @@ namespace KJS {
     virtual void put(ExecState *exec, const Identifier &propertyName, JSValue *value, int attr = None);
     virtual JSValue *toPrimitive(ExecState *exec, JSType preferred) const;
     virtual UString toString(ExecState*) const;
-    enum { Hash, Href, Hostname, Host, Pathname, Port, Protocol, Search, EqualEqual,
+    enum { Hash, Href, Hostname, Host, Pathname, Port, Protocol, Search, 
            Replace, Reload, ToString, Assign };
     WebCore::Frame* frame() const { return m_frame; }
     virtual const ClassInfo* classInfo() const { return &info; }
@@ -247,7 +247,7 @@ namespace KJS {
     virtual JSValue *toPrimitive(ExecState *exec, JSType preferred) const;
     virtual UString toString(ExecState*) const;
     enum { AnchorNode, AnchorOffset, FocusNode, FocusOffset, BaseNode, BaseOffset, ExtentNode, ExtentOffset, 
-           IsCollapsed, _Type, EqualEqual, Collapse, CollapseToEnd, CollapseToStart, Empty, ToString, 
+           IsCollapsed, _Type, Collapse, CollapseToEnd, CollapseToStart, Empty, ToString, 
            SetBaseAndExtent, SetPosition, Modify, GetRangeAt };
     WebCore::Frame* frame() const { return m_frame; }
     virtual const ClassInfo* classInfo() const { return &info; }