xpc->AbandonJSContext(jscontext);
main(int argc, char **argv){    JSRuntime *rt;    JSContext *jscontext;    JSObject *glob;    int result;    gErrFile = stderr;    gOutFile = stdout;    SetupRegistry();    rt = JS_NewRuntime(8L * 1024L * 1024L);    if (!rt)        return 1;    jscontext = JS_NewContext(rt, 8192);    if (!jscontext)        return 1;    JS_SetErrorReporter(jscontext, my_ErrorReporter);    nsIXPConnect* xpc = GetXPConnect();    if(!xpc)    {        printf("GetXPConnect() returned NULL!\n");        return 1;    }    glob = JS_NewObject(jscontext, &global_class, NULL, NULL);    if (!glob)        return 1;    if (!JS_InitStandardClasses(jscontext, glob))        return 1;    if (!JS_DefineFunctions(jscontext, glob, glob_functions))        return 1;    xpc->InitJSContext(jscontext, glob, JS_TRUE);    argc--;    argv++;    result = ProcessArgs(jscontext, glob, argv, argc);    NS_RELEASE(xpc);    JS_DestroyContext(jscontext);    JS_DestroyRuntime(rt);    JS_ShutDown();    return result;}