JS_ReportError(cx, "%s is not a %s",
JS_ReportErrorNumber(cx, NULL, JSMSG_DENY,
js_ReportIsNotFunction(JSContext *cx, jsval *vp, JSBool constructing){    JSStackFrame *fp;    jsval *sp;    JSString *str;    fp = cx->fp;    if (fp)	sp = fp->sp, fp->sp = vp;    str = js_DecompileValueGenerator(cx, *vp, NULL);    if (fp)	fp->sp = sp;    if (str) {	JS_ReportError(cx, "%s is not a %s",		       JS_GetStringBytes(str),		       constructing ? "constructor" : "function");    }}