4 https://bugzilla.mozilla.org/show_bug.cgi?id=507448
7 <title>Test for Bug 507448</title>
8 <script type="application/javascript" src="/MochiKit/packed.js"></script>
9 <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=507448">Mozilla Bug 507448</a>
15 <div id="content" style="display: none">
19 <script type="application/javascript">
22 function h(me, too, here) { var x = 1; }
23 function annoying(a, b, a, b, b, a) {}
24 function manyLocals(a, b, c, d, e, f, g, h, i, j, k, l, m) {
25 var n, o, p, q, r, s, t, u, v, w, x, y, z;
28 <script type="application/javascript">
30 SimpleTest.waitForExplicitFinish();
32 function loadScript(url) {
33 var d = new MochiKit.Async.Deferred();
34 var head = document.getElementsByTagName("head")[0];
35 var script = MochiKit.DOM.createDOM("script", { type: "text/javascript", src: url });
36 script.onload = function() {
38 script.onerror = null;
39 script.onreadystatechange = null;
42 script.onerror = function(msg) {
44 script.onerror = null;
45 script.onreadystatechange = null;
46 msg = "Failed to load script at " + url + ": " + msg;
47 d.errback(new URIError(msg, url));
49 script.onreadystatechange = function() {
50 if (script.readyState == "loaded" || script.readyState == "complete") {
53 // IE doesn't bother to report errors...
54 MochiKit.Async.callLater(10, script.onerror, "Script loading timed out")
57 head.appendChild(script);
61 /** Test for Bug 507448 **/
62 function assertArraysEqual(arr1, arr2) {
63 is(arr1.length, arr2.length, "Lengths not equal");
64 for (var i = 0 ; i < arr1.length; ++i) {
65 is(arr1[i], arr2[i], "Element " + i + " not equal");
69 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
70 var jsdIDebuggerService = Components.interfaces.jsdIDebuggerService;
71 var jsd = Components.classes['@mozilla.org/js/jsd/debugger-service;1']
72 .getService(jsdIDebuggerService);
73 var jsdOnAtStart = false;
76 // This is somewhat unfortunate: jsd only deals with scripts that have a
77 // nonzero line number, so we can't just createElement a script here.
78 // So break the test up into three <script>s, of which the middle one has our test functions.
80 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
82 jsdOnAtStart = jsd.isOn;
88 onDebuggerActivated: function() {
96 addLoadEvent(setupJSD);
101 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
103 ok(jsd.isOn, "JSD needs to be running for this test.");
105 var deferred = loadScript("bug507448.js");