зеркало из https://github.com/mozilla/pjs.git
Bug 353116 - ""has no properties" is misleading and should be replaced with "is null or undefined"" [p=rich@rd.gen.nz (Rich Dougherty) r=brendan r=crowder a1.9=damons]
This commit is contained in:
Родитель
5e030fe00a
Коммит
f57620360c
|
@ -301,3 +301,4 @@ MSG_DEF(JSMSG_EMPTY_ARRAY_REDUCE, 218, 0, JSEXN_TYPEERR, "reduce of empty ar
|
||||||
MSG_DEF(JSMSG_NON_LIST_XML_METHOD, 219, 2, JSEXN_TYPEERR, "cannot call {0} method on an XML list with {1} elements")
|
MSG_DEF(JSMSG_NON_LIST_XML_METHOD, 219, 2, JSEXN_TYPEERR, "cannot call {0} method on an XML list with {1} elements")
|
||||||
MSG_DEF(JSMSG_BAD_DELETE_OPERAND, 220, 0, JSEXN_SYNTAXERR, "invalid delete operand")
|
MSG_DEF(JSMSG_BAD_DELETE_OPERAND, 220, 0, JSEXN_SYNTAXERR, "invalid delete operand")
|
||||||
MSG_DEF(JSMSG_BAD_INCOP_OPERAND, 221, 0, JSEXN_SYNTAXERR, "invalid increment/decrement operand")
|
MSG_DEF(JSMSG_BAD_INCOP_OPERAND, 221, 0, JSEXN_SYNTAXERR, "invalid increment/decrement operand")
|
||||||
|
MSG_DEF(JSMSG_NULL_OR_UNDEFINED, 222, 2, JSEXN_TYPEERR, "{0} is {1}")
|
||||||
|
|
|
@ -1218,6 +1218,40 @@ js_ReportIsNotDefined(JSContext *cx, const char *name)
|
||||||
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_NOT_DEFINED, name);
|
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_NOT_DEFINED, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JSBool
|
||||||
|
js_ReportIsNullOrUndefined(JSContext *cx, intN spindex, jsval v,
|
||||||
|
JSString *fallback)
|
||||||
|
{
|
||||||
|
char *bytes;
|
||||||
|
JSBool ok;
|
||||||
|
|
||||||
|
bytes = js_DecompileValueGenerator(cx, spindex, v, fallback);
|
||||||
|
if (!bytes)
|
||||||
|
return JS_FALSE;
|
||||||
|
|
||||||
|
if (strcmp(bytes, js_undefined_str) == 0 ||
|
||||||
|
strcmp(bytes, js_null_str) == 0) {
|
||||||
|
ok = JS_ReportErrorFlagsAndNumber(cx, JSREPORT_ERROR,
|
||||||
|
js_GetErrorMessage, NULL,
|
||||||
|
JSMSG_NO_PROPERTIES, bytes,
|
||||||
|
NULL, NULL);
|
||||||
|
} else if (JSVAL_IS_VOID(v)) {
|
||||||
|
ok = JS_ReportErrorFlagsAndNumber(cx, JSREPORT_ERROR,
|
||||||
|
js_GetErrorMessage, NULL,
|
||||||
|
JSMSG_NULL_OR_UNDEFINED, bytes,
|
||||||
|
js_undefined_str, NULL);
|
||||||
|
} else {
|
||||||
|
JS_ASSERT(JSVAL_IS_NULL(v));
|
||||||
|
ok = JS_ReportErrorFlagsAndNumber(cx, JSREPORT_ERROR,
|
||||||
|
js_GetErrorMessage, NULL,
|
||||||
|
JSMSG_NULL_OR_UNDEFINED, bytes,
|
||||||
|
js_null_str, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
JS_free(cx, bytes);
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
JSBool
|
JSBool
|
||||||
js_ReportValueErrorFlags(JSContext *cx, uintN flags, const uintN errorNumber,
|
js_ReportValueErrorFlags(JSContext *cx, uintN flags, const uintN errorNumber,
|
||||||
intN spindex, jsval v, JSString *fallback,
|
intN spindex, jsval v, JSString *fallback,
|
||||||
|
|
|
@ -977,6 +977,13 @@ js_ReportErrorAgain(JSContext *cx, const char *message, JSErrorReport *report);
|
||||||
extern void
|
extern void
|
||||||
js_ReportIsNotDefined(JSContext *cx, const char *name);
|
js_ReportIsNotDefined(JSContext *cx, const char *name);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Report an attempt to access the property of a null or undefined value (v).
|
||||||
|
*/
|
||||||
|
extern JSBool
|
||||||
|
js_ReportIsNullOrUndefined(JSContext *cx, intN spindex, jsval v,
|
||||||
|
JSString *fallback);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Report error using js_DecompileValueGenerator(cx, spindex, v, fallback) as
|
* Report error using js_DecompileValueGenerator(cx, spindex, v, fallback) as
|
||||||
* the first argument for the error message. If the error message has less
|
* the first argument for the error message. If the error message has less
|
||||||
|
|
|
@ -5852,8 +5852,7 @@ interrupt:
|
||||||
i = JSProto_Boolean;
|
i = JSProto_Boolean;
|
||||||
} else {
|
} else {
|
||||||
JS_ASSERT(JSVAL_IS_NULL(lval) || JSVAL_IS_VOID(lval));
|
JS_ASSERT(JSVAL_IS_NULL(lval) || JSVAL_IS_VOID(lval));
|
||||||
js_ReportValueError(cx, JSMSG_NO_PROPERTIES, -2, lval,
|
js_ReportIsNullOrUndefined(cx, -2, lval, NULL);
|
||||||
NULL);
|
|
||||||
ok = JS_FALSE;
|
ok = JS_FALSE;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4651,10 +4651,8 @@ js_ValueToNonNullObject(JSContext *cx, jsval v)
|
||||||
|
|
||||||
if (!js_ValueToObject(cx, v, &obj))
|
if (!js_ValueToObject(cx, v, &obj))
|
||||||
return NULL;
|
return NULL;
|
||||||
if (!obj) {
|
if (!obj)
|
||||||
js_ReportValueError(cx, JSMSG_NO_PROPERTIES,
|
js_ReportIsNullOrUndefined(cx, JSDVG_SEARCH_STACK, v, NULL);
|
||||||
JSDVG_SEARCH_STACK, v, NULL);
|
|
||||||
}
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче