Fix incorrect test in HasDataProperty, bug 699166.

This commit is contained in:
Brian Hackett 2011-11-09 10:25:21 -08:00
Родитель ba3cd03d5e
Коммит e7b91316b3
2 изменённых файлов: 9 добавлений и 1 удалений

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

@ -0,0 +1,7 @@
a = "".__proto__
b = uneval().__proto__
for (var i = 0; i < 2; i++) {
a.__defineSetter__("valueOf", function() {})
a + ""
delete b.valueOf
}

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

@ -6654,7 +6654,8 @@ bool
HasDataProperty(JSContext *cx, JSObject *obj, jsid methodid, Value *vp)
{
if (const Shape *shape = obj->nativeLookup(cx, methodid)) {
if (shape->hasDefaultGetterOrIsMethod() && obj->containsSlot(shape->maybeSlot())) {
if (shape->hasDefaultGetterOrIsMethod() && shape->hasSlot()) {
JS_ASSERT(obj->containsSlot(shape->slot()));
*vp = obj->nativeGetSlot(shape->slot());
return true;
}