js_ForceGC(cx);
JS_GC(cx);
GC(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){    JSRuntime *rt;    uint32 preBytes;    rt = cx->runtime;    preBytes = rt->gcBytes;#ifdef GC_MARK_DEBUG    if (argc && JSVAL_IS_STRING(argv[0])) {    	char *name = JS_GetStringBytes(JSVAL_TO_STRING(argv[0]));    	FILE *file = fopen(name, "w");    	if (!file) {	    fprintf(stderr, "gc: can't open %s: %s\n", strerror(errno));	    return JS_FALSE;    	}    	js_DumpGCHeap = file;    } else {	js_DumpGCHeap = stdout;    }#endif    js_ForceGC(cx);#ifdef GC_MARK_DEBUG    if (js_DumpGCHeap != stdout)    	fclose(js_DumpGCHeap);    js_DumpGCHeap = NULL;#endif    printf("before %lu, after %lu, break %08lx\n",	   (unsigned long)preBytes, (unsigned long)rt->gcBytes,#ifdef XP_UNIX	   (unsigned long)sbrk(0)#else	   0#endif	   );#ifdef JS_GCMETER    js_DumpGCStats(rt, stdout);#endif    return JS_TRUE;}