Reviewed by ggaren.
authorap <ap@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 18 Jun 2006 07:00:54 +0000 (07:00 +0000)
committerap <ap@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 18 Jun 2006 07:00:54 +0000 (07:00 +0000)
        - http://bugzilla.opendarwin.org/show_bug.cgi?id=8131
        Some properties and methods of window and document objects cannot be converted to a string

        Most of the properties were already fixed, this just adds adds a prototype to window.debug.

        Test: fast/dom/everything-to-string.html

        * bindings/js/kjs_proxy.cpp:
        (WebCore::TestFunctionImp::TestFunctionImp):
        (WebCore::KJSProxy::initScriptIfNeeded):

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

LayoutTests/ChangeLog
LayoutTests/fast/dom/everything-to-string-expected.txt [new file with mode: 0644]
LayoutTests/fast/dom/everything-to-string.html [new file with mode: 0644]
WebCore/ChangeLog
WebCore/bindings/js/kjs_proxy.cpp

index 0d9889fde40da2e15690e4382c4e0cdb7bd783d0..56bc6b0cc2077546d6de3999142e8590803c5adf 100644 (file)
@@ -1,3 +1,13 @@
+2006-06-17  Alexey Proskuryakov  <ap@nypop.com>
+
+        Reviewed by ggaren.
+
+        - test for http://bugzilla.opendarwin.org/show_bug.cgi?id=8131
+        Some properties and methods of window and document objects cannot be converted to a string
+
+        * fast/dom/everything-to-string-expected.txt: Added.
+        * fast/dom/everything-to-string.html: Added.
+
 2006-06-17  Mitz Pettel  <opendarwin.org@mitzpettel.com>
 
         Reviewed by Hyatt.
 2006-06-17  Mitz Pettel  <opendarwin.org@mitzpettel.com>
 
         Reviewed by Hyatt.
diff --git a/LayoutTests/fast/dom/everything-to-string-expected.txt b/LayoutTests/fast/dom/everything-to-string-expected.txt
new file mode 100644 (file)
index 0000000..113f8dc
--- /dev/null
@@ -0,0 +1,5 @@
+Test for bug 8131: Some properties and methods of window and document objects cannot be converted to a string.
+
+Should say SUCCESS:
+
+SUCCESS
diff --git a/LayoutTests/fast/dom/everything-to-string.html b/LayoutTests/fast/dom/everything-to-string.html
new file mode 100644 (file)
index 0000000..ba09cca
--- /dev/null
@@ -0,0 +1,43 @@
+<html><body>\r
+\r
+<p>Test for <a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=8131">bug 8131</a>:\r
+Some properties and methods of window and document objects cannot be converted to a string.</p>\r
+<p>Should say SUCCESS:</p>\r
+\r
+<script>\r
+\r
+if (window.layoutTestController)\r
+       layoutTestController.dumpAsText();\r
+\r
+try {\r
+  var currProperty;\r
+  try {\r
+    for (var prop in window) {\r
+      currProperty = prop;\r
+      window[prop] + "";\r
+    }\r
+\r
+  } catch (ex) {\r
+    document.write('FAILURE (window.' + currProperty + '):' + ex.description);\r
+    throw ex;\r
+  }\r
+\r
+  try {\r
+    for (var prop in document) {\r
+      currProperty = prop;\r
+      document[prop] + "";\r
+    }\r
+\r
+  } catch (ex) {\r
+    document.write('FAILURE (document.' + currProperty + '):' + ex.description);\r
+    throw ex;\r
+  }\r
+\r
+  document.write('SUCCESS');\r
+\r
+} catch (ex) {\r
+}\r
+\r
+</script>\r
+\r
+</body></html>
\ No newline at end of file
index 0051f07962f1a2542e052a737e2abde696ba096e..056e1922ea09eb872f5d6a4589d12620a1298faf 100644 (file)
@@ -1,3 +1,18 @@
+2006-06-17  Alexey Proskuryakov  <ap@nypop.com>
+
+        Reviewed by ggaren.
+
+        - http://bugzilla.opendarwin.org/show_bug.cgi?id=8131
+        Some properties and methods of window and document objects cannot be converted to a string
+
+        Most of the properties were already fixed, this just adds adds a prototype to window.debug.
+
+        Test: fast/dom/everything-to-string.html
+
+        * bindings/js/kjs_proxy.cpp:
+        (WebCore::TestFunctionImp::TestFunctionImp): 
+        (WebCore::KJSProxy::initScriptIfNeeded):
+
 2006-06-17  David Kilzer  <ddkilzer@kilzer.net>
 
         Reviewed by Maciej.
 2006-06-17  David Kilzer  <ddkilzer@kilzer.net>
 
         Reviewed by Maciej.
index f2dea9a358b249744e63a7912b603e9548b8c087..24b445b37592d6bd4a6f3aaa0ab2016033cd4c8e 100644 (file)
@@ -126,10 +126,16 @@ ScriptInterpreter* KJSProxy::interpreter()
 // Implementation of the debug() function
 class TestFunctionImp : public DOMObject {
 public:
 // Implementation of the debug() function
 class TestFunctionImp : public DOMObject {
 public:
+  TestFunctionImp(ExecState*);
   virtual bool implementsCall() const { return true; }
   virtual JSValue* callAsFunction(ExecState*, JSObject*, const List& args);
 };
 
   virtual bool implementsCall() const { return true; }
   virtual JSValue* callAsFunction(ExecState*, JSObject*, const List& args);
 };
 
+TestFunctionImp::TestFunctionImp(ExecState* exec)
+{
+    setPrototype(exec->lexicalInterpreter()->builtinObjectPrototype());
+}
+
 JSValue *TestFunctionImp::callAsFunction(ExecState* exec, JSObject*, const List& args)
 {
   fprintf(stderr,"--> %s\n", args[0]->toString(exec).ascii());
 JSValue *TestFunctionImp::callAsFunction(ExecState* exec, JSObject*, const List& args)
 {
   fprintf(stderr,"--> %s\n", args[0]->toString(exec).ascii());
@@ -147,7 +153,7 @@ void KJSProxy::initScriptIfNeeded()
 
   // Create a KJS interpreter for this frame
   m_script = new ScriptInterpreter(globalObject, m_frame);
 
   // Create a KJS interpreter for this frame
   m_script = new ScriptInterpreter(globalObject, m_frame);
-  globalObject->put(m_script->globalExec(), "debug", new TestFunctionImp(), Internal);
+  globalObject->put(m_script->globalExec(), "debug", new TestFunctionImp(m_script->globalExec()), Internal);
 
   String userAgent = m_frame->userAgent();
   if (userAgent.find("Microsoft") >= 0 || userAgent.find("MSIE") >= 0)
 
   String userAgent = m_frame->userAgent();
   if (userAgent.find("Microsoft") >= 0 || userAgent.find("MSIE") >= 0)