Bug 980119 - Watch for typed arrays with unknown properties when baking in their elements, r=jandem.

This commit is contained in:
Brian Hackett 2014-03-06 14:00:29 -07:00
Родитель aa0b93b644
Коммит d98c93012a
2 изменённых файлов: 14 добавлений и 3 удалений

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

@ -0,0 +1,9 @@
s = newGlobal()
evalcx("\
x = new Uint8ClampedArray;\
x.__proto__ = [];\
", s);
evalcx("\
x[0]\
", s);

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

@ -7181,10 +7181,12 @@ IonBuilder::getTypedArrayElements(MDefinition *obj)
// The 'data' pointer can change in rare circumstances
// (ArrayBufferObject::changeContents).
types::TypeObjectKey *tarrType = types::TypeObjectKey::get(tarr);
tarrType->watchStateChangeForTypedArrayBuffer(constraints());
if (!tarrType->unknownProperties()) {
tarrType->watchStateChangeForTypedArrayBuffer(constraints());
obj->setImplicitlyUsedUnchecked();
return MConstantElements::New(alloc(), data);
obj->setImplicitlyUsedUnchecked();
return MConstantElements::New(alloc(), data);
}
}
}
return MTypedArrayElements::New(alloc(), obj);