bug 311403: Enforce JS engine invarients. r=brendan

This commit is contained in:
mrbkap%gmail.com 2005-10-09 07:56:32 +00:00
Родитель d9c972a330
Коммит 91b7fee4e0
1 изменённых файлов: 9 добавлений и 11 удалений

Просмотреть файл

@ -312,17 +312,15 @@ script_exec(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
/* Belt-and-braces: check that this script object has access to scopeobj. */
principals = script->principals;
if (principals) {
rt = cx->runtime;
if (rt->findObjectPrincipals) {
scopePrincipals = rt->findObjectPrincipals(cx, scopeobj);
if (scopePrincipals &&
!principals->subsume(principals, scopePrincipals)) {
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
JSMSG_BAD_INDIRECT_CALL,
"Script.prototype.exec");
return JS_FALSE;
}
rt = cx->runtime;
if (rt->findObjectPrincipals) {
scopePrincipals = rt->findObjectPrincipals(cx, scopeobj);
if (!principals || !scopePrincipals ||
!principals->subsume(principals, scopePrincipals)) {
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL,
JSMSG_BAD_INDIRECT_CALL,
"Script.prototype.exec");
return JS_FALSE;
}
}