| <!DOCTYPE HTML> | |
| <html> | |
| <head> | |
| <!-- The bug number is pulled from the test URL --> | |
| <title>JSD Test for Bug AUTOFILLED</title> | |
| <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> | |
| <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> | |
| <script type="application/javascript" src="jsd-test.js"></script> | |
| <script type="application/javascript"> | |
| var BUG = 617870; | |
| var TEST_SCRIPT = "test-bug617870-callhooks.js"; | |
| document.getElementsByTagName("title")[0].innerHTML = "JSD Test for Bug " + BUG; | |
| netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); | |
| SimpleTest.waitForExplicitFinish(); | |
| var hits = { gn: [], ge: [], fn: [], fe: [] }; | |
| var numGlobalNonevals = 0; | |
| var numFunctionNonevals = 0; | |
| var numGlobalEvals = 0; | |
| var numFunctionEvals = 0; | |
| function runTest() { | |
| netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); | |
| jsd.topLevelHook = { | |
| onCall: function(frame,type) { | |
| netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); | |
| if (frame.script.fileName.indexOf(TEST_SCRIPT) != -1) { | |
| var desc = frame.script.fileName + ":" + frame.line + " (" + frame.functionName + ")"; | |
| if (type == Ci.jsdICallHook.TYPE_TOPLEVEL_START) { | |
| if (frame.callingFrame === null) { | |
| numGlobalNonevals++; | |
| hits.gn.push(desc); | |
| } else if (frame.callee === null) { | |
| numGlobalEvals++; | |
| hits.ge.push(desc); | |
| } else { | |
| numFunctionEvals++; | |
| hits.fe.push(desc); | |
| } | |
| } | |
| dumpStack(frame, "TOPLEVEL(" + type + ")"); | |
| } | |
| } | |
| }; | |
| jsd.functionHook = { | |
| onCall: function(frame,type) { | |
| netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); | |
| if (frame.script.fileName.indexOf(TEST_SCRIPT) != -1) { | |
| if (type == Ci.jsdICallHook.TYPE_FUNCTION_CALL) { | |
| var desc = frame.script.fileName + ":" + frame.line + " (" + frame.functionName + ")"; | |
| numFunctionNonevals++; | |
| hits.fn.push(desc); | |
| } | |
| dumpStack(frame, "FUNCTION(" + type + ")"); | |
| } | |
| } | |
| }; | |
| loadScript(TEST_SCRIPT, document.getElementById("test")); | |
| } | |
| function setupTest() { | |
| var buglink = document.getElementById("buglink"); | |
| buglink.href = "https://bugzilla.mozilla.org/show_bug.cgi?id=" + BUG; | |
| buglink.innerHTML = "Mozilla Bug " + BUG; | |
| } | |
| </script> | |
| </head> | |
| <body onLoad='setupTest(); setupJSD();'> | |
| <a id="buglink" target="_blank"></a> | |
| <p id="display"></p> | |
| <div id="content" style="display: none"> | |
| <pre id='test'> | |
| </pre> | |
| </div> | |
| <div id='test-output'> | |
| </div> | |
| </body> | |
| </html> |