Fixing strict JS warning (duplicate declaration of var leakDetector). Using XPConnect wrapper as the prototype of the JS LeakDetector constructor function.

This commit is contained in:
beard%netscape.com 2000-09-16 05:18:51 +00:00
parent 7250623e9a
commit 6747183e92

View File

@ -1849,38 +1849,38 @@ function dumpExpr( expr ) {
dump( expr+"="+eval(expr)+"\n" ); dump( expr+"="+eval(expr)+"\n" );
} }
var leakDetector = null;
// Initialize the LeakDetector class. // Initialize the LeakDetector class.
function LeakDetector(verbose) function LeakDetector(verbose)
{ {
this.verbose = verbose; this.verbose = verbose;
try { }
this.vtable = createInstance("@mozilla.org/xpcom/leakdetector;1", "nsILeakDetector"); try {
} catch (err) { LeakDetector.prototype = Components.classes["@mozilla.org/xpcom/leakdetector;1"]
} .createInstance(Components.interfaces.nsILeakDetector);
} catch (err) {
LeakDetector.prototype = Object.prototype;
} }
var leakDetector = new LeakDetector(false); var leakDetector = new LeakDetector(false);
// Dumps current set of memory leaks. // Dumps current set of memory leaks.
function dumpMemoryLeaks() function dumpMemoryLeaks()
{ {
leakDetector.vtable.dumpLeaks(); leakDetector.dumpLeaks();
} }
// Traces all objects reachable from the chrome document. // Traces all objects reachable from the chrome document.
function traceChrome() function traceChrome()
{ {
leakDetector.vtable.traceObject(document, leakDetector.verbose); leakDetector.traceObject(document, leakDetector.verbose);
} }
// Traces all objects reachable from the content document. // Traces all objects reachable from the content document.
function traceDocument() function traceDocument()
{ {
// keep the chrome document out of the dump. // keep the chrome document out of the dump.
leakDetector.vtable.markObject(document, true); leakDetector.markObject(document, true);
leakDetector.vtable.traceObject(window._content, leakDetector.verbose); leakDetector.traceObject(window._content, leakDetector.verbose);
leakDetector.vtable.markObject(document, false); leakDetector.markObject(document, false);
} }
// Controls whether or not we do verbose tracing. // Controls whether or not we do verbose tracing.