/js/jsd/test/test_bug507448.html

http://github.com/zpao/v8monkey · HTML · 112 lines · 97 code · 12 blank · 3 comment · 0 complexity · b476a237b3551296bce348484091809d MD5 · raw file

  1. <!DOCTYPE HTML>
  2. <html>
  3. <!--
  4. https://bugzilla.mozilla.org/show_bug.cgi?id=507448
  5. -->
  6. <head>
  7. <title>Test for Bug 507448</title>
  8. <script type="application/javascript" src="/MochiKit/Base.js"></script>
  9. <script type="application/javascript" src="/MochiKit/Async.js"></script>
  10. <script type="application/javascript" src="/MochiKit/DOM.js"></script>
  11. <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  12. <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  13. </head>
  14. <body>
  15. <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=507448">Mozilla Bug 507448</a>
  16. <p id="display"></p>
  17. <div id="content" style="display: none">
  18. </div>
  19. <pre id="test">
  20. <script type="application/javascript">
  21. function f() {}
  22. function g(a,b) {}
  23. function h(me, too, here) { var x = 1; }
  24. function annoying(a, b, a, b, b, a) {}
  25. function manyLocals(a, b, c, d, e, f, g, h, i, j, k, l, m) {
  26. var n, o, p, q, r, s, t, u, v, w, x, y, z;
  27. }
  28. </script>
  29. <script type="application/javascript">
  30. SimpleTest.waitForExplicitFinish();
  31. function loadScript(url) {
  32. var d = new MochiKit.Async.Deferred();
  33. var head = document.getElementsByTagName("head")[0];
  34. var script = MochiKit.DOM.createDOM("script", { type: "text/javascript", src: url });
  35. script.onload = function() {
  36. script.onload = null;
  37. script.onerror = null;
  38. script.onreadystatechange = null;
  39. d.callback();
  40. };
  41. script.onerror = function(msg) {
  42. script.onload = null;
  43. script.onerror = null;
  44. script.onreadystatechange = null;
  45. msg = "Failed to load script at " + url + ": " + msg;
  46. d.errback(new URIError(msg, url));
  47. }
  48. script.onreadystatechange = function() {
  49. if (script.readyState == "loaded" || script.readyState == "complete") {
  50. script.onload();
  51. } else {
  52. // IE doesn't bother to report errors...
  53. MochiKit.Async.callLater(10, script.onerror, "Script loading timed out")
  54. }
  55. };
  56. head.appendChild(script);
  57. return d;
  58. }
  59. /** Test for Bug 507448 **/
  60. function assertArraysEqual(arr1, arr2) {
  61. is(arr1.length, arr2.length, "Lengths not equal");
  62. for (var i = 0 ; i < arr1.length; ++i) {
  63. is(arr1[i], arr2[i], "Element " + i + " not equal");
  64. }
  65. }
  66. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  67. var jsdIDebuggerService = Components.interfaces.jsdIDebuggerService;
  68. var jsd = Components.classes['@mozilla.org/js/jsd/debugger-service;1']
  69. .getService(jsdIDebuggerService);
  70. var jsdOnAtStart = false;
  71. function setupJSD() {
  72. // This is somewhat unfortunate: jsd only deals with scripts that have a
  73. // nonzero line number, so we can't just createElement a script here.
  74. // So break the test up into three <script>s, of which the middle one has our test functions.
  75. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  76. jsdOnAtStart = jsd.isOn;
  77. if (jsdOnAtStart) {
  78. testJSD();
  79. } else {
  80. jsd.asyncOn(
  81. {
  82. onDebuggerActivated: function() {
  83. testJSD();
  84. }
  85. }
  86. );
  87. }
  88. }
  89. addLoadEvent(setupJSD);
  90. </script>
  91. <script>
  92. function testJSD() {
  93. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  94. ok(jsd.isOn, "JSD needs to be running for this test.");
  95. var deferred = loadScript("bug507448.js");
  96. }
  97. </script>
  98. </pre>
  99. </body>
  100. </html>