JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_UNDECLARED_VAR, JS_GetStringBytes(str)); return JS_FALSE;
if (!JS_ReportErrorFlagsAndNumber(cx, JSREPORT_WARNING | JSREPORT_STRICT, js_GetErrorMessage, NULL, JSMSG_UNDECLARED_VAR, JS_GetStringBytes(str))) { return JS_FALSE; }
js_FindVariable(JSContext *cx, jsid id, JSObject **objp, JSObject **pobjp,		JSProperty **propp){    JSObject *obj;    JSProperty *prop;    /*     * First look for id's property along the "with" statement and the     * statically-linked scope chains.     */    if (!js_FindProperty(cx, id, objp, pobjp, propp))	return JS_FALSE;    if (*propp)	return JS_TRUE;    /*     * Use the top-level scope from the scope chain, which won't end in the     * same scope as cx->globalObject for cross-context function calls.     */    obj = *objp;    JS_ASSERT(obj);    /*     * Make a top-level variable.     */    if (JS_HAS_STRICT_OPTION(cx)) {        JSString *str = JSVAL_TO_STRING(js_IdToValue(id));        JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,                             JSMSG_UNDECLARED_VAR, JS_GetStringBytes(str));        return JS_FALSE;    }    if (!OBJ_DEFINE_PROPERTY(cx, obj, id, JSVAL_VOID, NULL, NULL,			     JSPROP_ENUMERATE, &prop)) {	return JS_FALSE;    }    *pobjp = obj;    *propp = prop;    return JS_TRUE;}