OBJ_CHECK_ACCESS on call objects will return v = JSVAL_VOID since call objects don't have Object.prototype in their prototype. bug 336560, r=brendan

This commit is contained in:
mrbkap%gmail.com 2006-05-05 08:08:56 +00:00
Родитель 76f483126a
Коммит 00f677e640
1 изменённых файлов: 5 добавлений и 4 удалений

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

@ -556,11 +556,12 @@ js_SafeComputeThis(JSContext *cx, JSObject *thisp, jsval *argv)
for (;;) { for (;;) {
if (!OBJ_CHECK_ACCESS(cx, thisp, id, JSACC_PARENT, &v, &attrs)) if (!OBJ_CHECK_ACCESS(cx, thisp, id, JSACC_PARENT, &v, &attrs))
return NULL; return NULL;
JS_ASSERT(JSVAL_IS_OBJECT(v)); if (JSVAL_IS_NULL(v))
if (JSVAL_IS_PRIMITIVE(v))
break; break;
JS_ASSERT(JSVAL_TO_OBJECT(v) == OBJ_GET_PARENT(cx, thisp)); if (JSVAL_IS_VOID(v))
thisp = JSVAL_TO_OBJECT(v); v = OBJ_GET_SLOT(cx, thisp, JSSLOT_PARENT);
JS_ASSERT(JSVAL_IS_OBJECT(v));
thisp = JSVAL_TO_OBJECT(v);;
} }
} }