str = JS_DecompileFunction(cx, fun, (uintN)indent);
str = JS_DecompileFunctionBody(cx, fun, (uintN)indent);
fun_toString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){    jsval fval;    JSFunction *fun;    uint32 indent;    JSString *str;    if (!OBJ_DEFAULT_VALUE(cx, obj, JSTYPE_FUNCTION, &argv[-1]))	return JS_FALSE;    fval = argv[-1];    if (!JSVAL_IS_FUNCTION(cx, fval))	return js_obj_toString(cx, obj, argc, argv, rval);    obj = JSVAL_TO_OBJECT(fval);    fun = JS_GetPrivate(cx, obj);    if (!fun)	return JS_TRUE;    indent = 0;    if (argc && !js_ValueToECMAUint32(cx, argv[0], &indent))	return JS_FALSE;    str = JS_DecompileFunction(cx, fun, (uintN)indent);    if (!str)	return JS_FALSE;    *rval = STRING_TO_JSVAL(str);    return JS_TRUE;}