JavaScriptCore:
authorggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 29 Jun 2005 20:59:21 +0000 (20:59 +0000)
committerggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 29 Jun 2005 20:59:21 +0000 (20:59 +0000)
Patch contributed by Oliver Hunt <ojh16@student.canterbury.ac.nz>

-fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3743
Incorrect error message given for certain calls

See WebCore Changelog for layout test added.

        Reviewed by mjs.

        * kjs/object.cpp:
        (KJS::ObjectImp::defaultValue):

WebCore:

-added test case for fix to http://bugzilla.opendarwin.org/show_bug.cgi?id=3743
Incorrect error message given for certain calls

See JavaScriptCore Changelog for details about the patch.

        Reviewed by me.

        Test cases added:
        * layout-tests/fast/js/toString-stack-overflow-expected.txt: Added.
        * layout-tests/fast/js/toString-stack-overflow.html: Added.

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

JavaScriptCore/ChangeLog
JavaScriptCore/kjs/object.cpp
LayoutTests/fast/js/toString-stack-overflow-expected.txt [new file with mode: 0644]
LayoutTests/fast/js/toString-stack-overflow.html [new file with mode: 0644]
WebCore/ChangeLog-2005-08-23

index 0b0952ba6ff6c432f19376d07210c9a13f3b49ae..4c14e01eae9ee3c8acda54f719f842957350284e 100644 (file)
@@ -1,3 +1,17 @@
+2005-06-29  Geoffrey Garen  <ggaren@apple.com>
+
+       Patch contributed by Oliver Hunt <ojh16@student.canterbury.ac.nz>
+
+       -fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3743
+       Incorrect error message given for certain calls
+
+       See WebCore Changelog for layout test added.
+
+        Reviewed by mjs.
+
+        * kjs/object.cpp:
+        (KJS::ObjectImp::defaultValue):
+
 2005-06-29  Geoffrey Garen  <ggaren@apple.com>
 
        Rolling out date patch from 6-28-05 because it breaks 
index 1e389cf73f7616a3d8bf469c3457408165fddcb7..36d196191b43238d21ba2a62f1fbfa51411b22a9 100644 (file)
@@ -385,6 +385,9 @@ Value ObjectImp::defaultValue(ExecState *exec, Type hint) const
     }
   }
 
+  if (exec->hadException())
+    return exec->exception();
+
   Object err = Error::create(exec, TypeError, I18N_NOOP("No default value"));
   exec->setException(err);
   return err;
diff --git a/LayoutTests/fast/js/toString-stack-overflow-expected.txt b/LayoutTests/fast/js/toString-stack-overflow-expected.txt
new file mode 100644 (file)
index 0000000..80374c3
--- /dev/null
@@ -0,0 +1,10 @@
+This test checks for a regression against http://bugzilla.opendarwin.org/show_bug.cgi?id=3743: Incorrect error message given for certain calls.
+
+On success, you should see: RangeError - Maximum call stack size exceeded.
+
+The test confirms that the correct exception is thrown in the event of a stack overflow during a call to Array.toString.
+
+It is possible that this may need to be updated if WebKit gets an improvement to its JavaScript stack support. Either through increasing the depth of the recursion, or through some other mechanism.
+
+RangeError - Maximum call stack size exceeded.
+
diff --git a/LayoutTests/fast/js/toString-stack-overflow.html b/LayoutTests/fast/js/toString-stack-overflow.html
new file mode 100644 (file)
index 0000000..251e147
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<title>Testing the exception thrown by Array.toString</title>
+<script language="javascript">
+function init(){  
+  var ary=[0];
+  for(var i=1; i<10000; i++)
+    ary=[ary, i];
+    
+  var out;
+  try{
+    out=ary.toString();
+  }catch(e){
+    out=e;
+  }
+  
+  document.getElementById("r0c0").firstChild.nodeValue = out;
+  if (window.layoutTestController) {
+    window.layoutTestController.dumpAsText();
+  }
+}
+</script>
+</head>
+<body onload="init()">
+<p>This test checks for a regression against <a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=3743">http://bugzilla.opendarwin.org/show_bug.cgi?id=3743</a>: Incorrect error message given for certain calls.</p>
+<p>On success, you should see: RangeError - Maximum call stack size exceeded.</p>
+<p>The test confirms that the correct exception is thrown in the event of a stack overflow during a call to Array.toString. </p>
+<p>It is possible that this may need to be updated if WebKit gets an improvement to its JavaScript stack support.  Either through increasing the depth of the recursion, or through some other mechanism.</p>
+<hr> 
+<table cellpadding="2" cellspacing="2" border="1">
+<tbody>
+<tr>
+<td id="r0c0">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</body>
+</html>
index a8c54c3023fae9d44043733b28f98760fae55514..19beba58a447021d3bddd16620095049538ea436 100644 (file)
@@ -1,3 +1,16 @@
+2005-06-29  Geoffrey Garen  <ggaren@apple.com>
+
+       -added test case for fix to http://bugzilla.opendarwin.org/show_bug.cgi?id=3743
+       Incorrect error message given for certain calls
+       
+       See JavaScriptCore Changelog for details about the patch.
+
+        Reviewed by me.
+
+        Test cases added: 
+        * layout-tests/fast/js/toString-stack-overflow-expected.txt: Added.
+        * layout-tests/fast/js/toString-stack-overflow.html: Added.
+
 2005-06-29  Justin Garcia  <justin.garcia@apple.com>
 
         - Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3714>