Bug 666599 - Fix ArrayBuffer::obj_lookupProperty. r=mrbkap

This commit is contained in:
Nikhil Marathe 2011-07-03 13:32:03 +08:00
Родитель 88849e429f
Коммит 1cd66e91f8
3 изменённых файлов: 20 добавлений и 1 удалений

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

@ -241,8 +241,11 @@ ArrayBuffer::obj_lookupProperty(JSContext *cx, JSObject *obj, jsid id,
if (!delegateResult) if (!delegateResult)
return false; return false;
if (*propp != NULL) if (*propp != NULL) {
if (*objp == delegate)
*objp = obj;
return true; return true;
}
JSObject *proto = obj->getProto(); JSObject *proto = obj->getProto();
if (!proto) { if (!proto) {

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

@ -107,3 +107,4 @@ script regress-646820-3.js
script regress-643222.js script regress-643222.js
script regress-614714.js script regress-614714.js
script regress-665355.js script regress-665355.js
script regress-666599.js

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

@ -0,0 +1,15 @@
var o1 = {};
var o2 = new ArrayBuffer();
o2.__defineGetter__('x', function() {return 42;})
o1.__proto__ = o2
assertEq(o1['x'], 42);
var t1 = {};
var t2 = new ArrayBuffer();
var t3 = new ArrayBuffer();
t3.__defineGetter__('x', function() {return 42;})
t2.__proto__ = t3;
t1.__proto__ = t2;
assertEq(t1['x'], 42);
reportCompare(true, true);