if (!ok) JS_ClearPendingException(cx);
js_TryMethod(JSContext *cx, JSObject *obj, JSAtom *atom,             uintN argc, jsval *argv, jsval *rval){    JSErrorReporter older;    jsval fval;    JSBool ok;    /*     * Report failure only if an appropriate method was found, and calling it     * returned failure.  We propagate failure in this case to make exceptions     * behave properly.     */    older = JS_SetErrorReporter(cx, NULL);    if (OBJ_GET_PROPERTY(cx, obj, (jsid)atom, &fval) &&        !JSVAL_IS_PRIMITIVE(fval)) {        ok = js_InternalCall(cx, obj, fval, argc, argv, rval);    } else {        ok = JS_TRUE;    }    JS_SetErrorReporter(cx, older);    return ok;}