Fixed 3922875. Fall back to DOM object is EMBED element
authorrjw <rjw@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 12 Jan 2005 00:30:16 +0000 (00:30 +0000)
committerrjw <rjw@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 12 Jan 2005 00:30:16 +0000 (00:30 +0000)
has no associated runtime object.

        Reviewed by Chris.

        * khtml/ecma/kjs_dom.cpp:
        (KJS::getRuntimeObject):
        * khtml/ecma/kjs_html.cpp:
        (KJS::HTMLDocument::tryGet):
        (KJS::HTMLElement::tryGet):
        (KJS::HTMLCollection::tryGet):
        (KJS::HTMLCollection::getNamedItems):

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

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

index 7e78ac0bc8ab6309f10b367d9a9902554497cff9..428fadb09a9a74581adcca1039ae1d19abc71174 100644 (file)
@@ -1,3 +1,18 @@
+2005-01-11  Richard Williamson   <rjw@apple.com>
+
+       Fixed 3922875.  Fall back to DOM object is EMBED element
+       has no associated runtime object.
+
+        Reviewed by Chris.
+
+        * khtml/ecma/kjs_dom.cpp:
+        (KJS::getRuntimeObject):
+        * khtml/ecma/kjs_html.cpp:
+        (KJS::HTMLDocument::tryGet):
+        (KJS::HTMLElement::tryGet):
+        (KJS::HTMLCollection::tryGet):
+        (KJS::HTMLCollection::getNamedItems):
+
 2005-01-11  David Hyatt  <hyatt@apple.com>
 
         Fix for 3882299, missing content on gibson.com.  Change our handling of " and ' in certain states of the parser to match
index d9f0384381292daade585151ee52b5639fde087c..3081c6ee1f40667f673eb6c4c818f469decf9f1d 100644 (file)
@@ -1567,7 +1567,9 @@ Value KJS::getRuntimeObject(ExecState *exec, const DOM::Node &node)
             }
         }
     }
-    return Undefined();
+    
+    // If we don't have a runtime object return the a Value that reports isNull() == true.
+    return Value();
 }
 
 Value KJS::getDOMNodeList(ExecState *exec, const DOM::NodeList &l)
index a4d85f738cdb92259efad20a2960c4683d0775e5..c1654db5037735b23ad0f4f91eb65e7d03c6c20c 100644 (file)
@@ -317,13 +317,17 @@ Value KJS::HTMLDocument::tryGet(ExecState *exec, const Identifier &propertyName)
     DOM::HTMLCollection applets = doc.applets();
     DOM::HTMLElement anApplet = applets.namedItem (propertyName.string());
     if (!anApplet.isNull()) {
-        return getRuntimeObject(exec,anApplet);
+        Value v = getRuntimeObject(exec,anApplet);
+       if (!v.isNull())
+           return v;
     }
 
     DOM::HTMLCollection embeds = doc.embeds();
     DOM::HTMLElement anEmbed = embeds.namedItem (propertyName.string());
     if (!anEmbed.isNull()) {
-        return getRuntimeObject(exec,anEmbed);
+        Value v = getRuntimeObject(exec,anEmbed);
+       if (!v.isNull())
+           return v;
     }
 #endif
 
@@ -1162,7 +1166,9 @@ Value KJS::HTMLElement::tryGet(ExecState *exec, const Identifier &propertyName)
 #if APPLE_CHANGES
     case ID_EMBED:
     case ID_APPLET: {
-        return getRuntimeObject(exec,element);
+        Value v = getRuntimeObject(exec,element);
+       if (!v.isNull())
+           return v;
     }
       break;
 #endif
@@ -3003,7 +3009,9 @@ Value KJS::HTMLCollection::tryGet(ExecState *exec, const Identifier &propertyNam
 
 #if APPLE_CHANGES
         if (!node.isNull() && (node.handle()->id() == ID_APPLET || node.handle()->id() == ID_EMBED)) {
-            return getRuntimeObject(exec,node);
+            Value v = getRuntimeObject(exec,node);
+           if (!v.isNull())
+               return v;
         }
 #endif
       return getDOMNode(exec,node);
@@ -3093,7 +3101,9 @@ Value KJS::HTMLCollection::getNamedItems(ExecState *exec, const Identifier &prop
     DOM::Node node = namedItems[0];
 #if APPLE_CHANGES
     if (!node.isNull() && (node.handle()->id() == ID_APPLET || node.handle()->id() == ID_EMBED)) {
-      return getRuntimeObject(exec, node);
+      Value v = getRuntimeObject(exec, node);
+      if (!v.isNull())
+       return v;
     }
 #endif