startDebugger = function () { var runnable = { run: function () { main.dispose(); } } var context = Packages.org.mozilla.javascript.Context.getCurrentContext(); // Within the current context... var contextFactory = context.getFactory(); var scope = Packages.org.mozilla.javascript.tools.shell.Environment(runnable.__parent__); // and the scope of the runnable variable's parent ... var main = Packages.org.mozilla.javascript.tools. debugger.Main.mainEmbedded(contextFactory, scope, 'Debugger'); // start a debugging session ... main.setExitAction(java.lang.Runnable(runnable)); // , clean the resources at exit time... main.setVisible(true); // and make it visible/ }