/* * Initialize the provided JSContext by setting up the JS classes necessary for * reflection and by defining JavaPackage objects for the default Java packages * as properties of global_obj. If java_vm is NULL, a new Java VM is * created, using the provided classpath in addition to any default classpath. * The classpath argument is ignored, however, if java_vm is non-NULL. */ JSBool JSJ_SimpleInit(JSContext *cx, JSObject *global_obj, SystemJavaVM *java_vm, const char *classpath) { JNIEnv *jEnv; JSJ_Init(&jsj_default_callbacks); JS_ASSERT(!the_jsj_vm); the_jsj_vm = JSJ_ConnectToJavaVM(java_vm, (void*)classpath); if (!the_jsj_vm) return JS_FALSE; if (!JSJ_InitJSContext(cx, global_obj, NULL)) goto error; the_cx = cx; the_global_js_obj = global_obj; the_jsj_thread = JSJ_AttachCurrentThreadToJava(the_jsj_vm, "main thread", &jEnv); if (!the_jsj_thread) goto error; JSJ_SetDefaultJSContextForJavaThread(cx, the_jsj_thread); return JS_TRUE; error: JSJ_SimpleShutdown(); return JS_FALSE; }
Quit(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { #ifdef LIVECONNECT JSJ_SimpleShutdown(); #endif gExitCode = 0; JS_ConvertArguments(cx, argc, argv,"/ i", &gExitCode); gQuitting = JS_TRUE; // exit(0); return JS_FALSE; }