Reviewed by Maciej.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 29 Oct 2003 05:42:42 +0000 (05:42 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 29 Oct 2003 05:42:42 +0000 (05:42 +0000)
        - fixed 3464702 -- node.item(x) is not implemented (dynamic menus not filled out at techcu.com)

        * khtml/ecma/kjs_dom.cpp: (DOMNodeProtoFunc::tryCall): Add implementation of item function.
        * khtml/ecma/kjs_dom.h: Added Item to the enum.
        * khtml/ecma/kjs_dom.lut.h: Regenerated.

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

WebCore/ChangeLog-2005-08-23
WebCore/khtml/ecma/kjs_dom.cpp
WebCore/khtml/ecma/kjs_dom.h
WebCore/khtml/ecma/kjs_dom.lut.h

index 96e3e59..8776130 100644 (file)
@@ -1,3 +1,13 @@
+2003-10-28  Darin Adler  <darin@apple.com>
+
+        Reviewed by Maciej.
+
+        - fixed 3464702 -- node.item(x) is not implemented (dynamic menus not filled out at techcu.com)
+
+        * khtml/ecma/kjs_dom.cpp: (DOMNodeProtoFunc::tryCall): Add implementation of item function.
+        * khtml/ecma/kjs_dom.h: Added Item to the enum.
+        * khtml/ecma/kjs_dom.lut.h: Regenerated.
+
 2003-10-28  Maciej Stachowiak  <mjs@apple.com>
 
         Reviewed by Dave,
index 9d55949..278d96a 100644 (file)
@@ -61,6 +61,8 @@ using DOM::DOMException;
   removeEventListener  DOMNode::RemoveEventListener    DontDelete|Function 3
   dispatchEvent                DOMNode::DispatchEvent  DontDelete|Function 1
   contains     DOMNode::Contains               DontDelete|Function 1
+# "DOM level 0" (from Gecko DOM reference; also in WinIE)
+  item          DOMNode::Item           DontDelete|Function 1
 @end
 */
 DEFINE_PROTOTYPE("DOMNode",DOMNodeProto)
@@ -475,7 +477,10 @@ Value DOMNodeProtoFunc::tryCall(ExecState *exec, Object &thisObj, const List &ar
            bool retval = !impl->checkNoOwner(other.handle(),exceptioncode);
            return Boolean(retval && exceptioncode == 0);
        }
+        return Undefined();
     }
+    case DOMNode::Item:
+      return getDOMNode(exec, node.childNodes().item(static_cast<unsigned long>(args[0].toNumber(exec))));
   }
 
   return Undefined();
index b41a563..92fd594 100644 (file)
@@ -54,7 +54,7 @@ namespace KJS {
     virtual void pushEventHandlerScope(ExecState *exec, ScopeChain &scope) const;
 
     enum { NodeName, NodeValue, NodeType, ParentNode, ParentElement,
-           ChildNodes, FirstChild, LastChild, PreviousSibling, NextSibling,
+           ChildNodes, FirstChild, LastChild, PreviousSibling, NextSibling, Item,
            Attributes, NamespaceURI, Prefix, LocalName, OwnerDocument, InsertBefore,
            ReplaceChild, RemoveChild, AppendChild, HasAttributes, HasChildNodes,
            CloneNode, Normalize, IsSupported, AddEventListener, RemoveEventListener,
index 1fbf889..b12fb98 100644 (file)
@@ -5,7 +5,7 @@ namespace KJS {
 const struct HashEntry DOMNodeProtoTableEntries[] = {
    { 0, 0, 0, 0, 0 },
    { "hasAttributes", DOMNode::HasAttributes, DontDelete|Function, 0, 0 },
-   { "normalize", DOMNode::Normalize, DontDelete|Function, 0, 0 },
+   { "normalize", DOMNode::Normalize, DontDelete|Function, 0, &DOMNodeProtoTableEntries[16] },
    { "isSupported", DOMNode::IsSupported, DontDelete|Function, 2, 0 },
    { "removeEventListener", DOMNode::RemoveEventListener, DontDelete|Function, 3, 0 },
    { "hasChildNodes", DOMNode::HasChildNodes, DontDelete|Function, 0, &DOMNodeProtoTableEntries[15] },
@@ -18,10 +18,11 @@ const struct HashEntry DOMNodeProtoTableEntries[] = {
    { 0, 0, 0, 0, 0 },
    { "removeChild", DOMNode::RemoveChild, DontDelete|Function, 1, 0 },
    { "addEventListener", DOMNode::AddEventListener, DontDelete|Function, 3, 0 },
-   { "contains", DOMNode::Contains, DontDelete|Function, 1, 0 }
+   { "contains", DOMNode::Contains, DontDelete|Function, 1, 0 },
+   { "item", DOMNode::Item, DontDelete|Function, 1, 0 }
 };
 
-const struct HashTable DOMNodeProtoTable = { 2, 16, DOMNodeProtoTableEntries, 13 };
+const struct HashTable DOMNodeProtoTable = { 2, 17, DOMNodeProtoTableEntries, 13 };
 
 } // namespace