| <p> |
| This page tests exceptions thrown from 'new' expressions. If the test passes, |
| you'll see a series of PASS messages below. |
| </p> |
| <pre id="console"></pre> |
| |
| <script> |
| function log(s) |
| { |
| document.getElementById("console").appendChild(document.createTextNode(s + "\n")); |
| } |
| |
| function shouldBe(a, aDescription, b) |
| { |
| if (a == b) { |
| log("PASS: " + aDescription + " should be '" + String(b) + "' and is."); |
| return; |
| } |
| |
| log ("FAIL: " + aDescription + " should be '" + String(b) + "' but instead is '" + String(a) + "'."); |
| } |
| |
| if (window.layoutTestController) |
| layoutTestController.dumpAsText(); |
| |
| (function () { |
| try { |
| var f; |
| new f; |
| } catch(e1) { |
| shouldBe(e1, "e1", "TypeError: Result of expression 'f' [undefined] is not a constructor."); |
| } |
| })(); |
| |
| (function () { |
| try { |
| var f; |
| var g; |
| new f(g()); |
| } catch(e2) { |
| shouldBe(e2, "e2", "TypeError: Result of expression 'g' [undefined] is not a function."); |
| } |
| })(); |
| </script> |