constructing ? JSMSG_NOT_CONSTRUCTOR : JSMSG_NOT_FUNCTION,
(uintN)(constructing ? JSMSG_NOT_CONSTRUCTOR : JSMSG_NOT_FUNCTION),
js_ReportIsNotFunction(JSContext *cx, jsval *vp, JSBool constructing){    JSType type;    JSString *fallback;    JSStackFrame *fp;    JSString *str;    /*     * We provide the typename as the fallback to handle the case when     * valueOf is not a function, which prevents ValueToString from being     * called as the default case inside js_DecompileValueGenerator (and     * so recursing back to here).     */    type = JS_TypeOfValue(cx, *vp);    fallback = ATOM_TO_STRING(cx->runtime->atomState.typeAtoms[type]);    fp = cx->fp;    if (fp) {        jsval *sp = fp->sp;        fp->sp = vp;        str = js_DecompileValueGenerator(cx, JS_TRUE, *vp, fallback);        fp->sp = sp;    } else {        str = js_DecompileValueGenerator(cx, JS_TRUE, *vp, fallback);    }    if (str) {	JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,			     constructing ? JSMSG_NOT_CONSTRUCTOR					  : JSMSG_NOT_FUNCTION,			     JS_GetStringBytes(str));    }}