зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1317402 - Clear the isBigEnoughForAShapeTable cache when removing dictionary shapes. r=jonco
This commit is contained in:
Родитель
2ae2fb85cd
Коммит
fe63cb28aa
|
@ -0,0 +1,8 @@
|
|||
gczeal(9);
|
||||
let o = {p1:0, p2:0, set p3({}) {}, p4:1, p5:1,
|
||||
p6:1, p7:1, p8:1, p9:1, p10:1, p11:1};
|
||||
for (let p in o)
|
||||
x = o[p];
|
||||
delete o.p3;
|
||||
for (let i = 0; i < 100; i++)
|
||||
x = -o;
|
|
@ -89,6 +89,8 @@ Shape::removeFromDictionary(NativeObject* obj)
|
|||
parent->listp = listp;
|
||||
*listp = parent;
|
||||
listp = nullptr;
|
||||
|
||||
obj->shape_->clearCachedBigEnoughForShapeTable();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -983,6 +983,9 @@ class Shape : public gc::TenuredCell
|
|||
}
|
||||
return false;
|
||||
}
|
||||
void clearCachedBigEnoughForShapeTable() {
|
||||
flags &= ~(HAS_CACHED_BIG_ENOUGH_FOR_SHAPE_TABLE | CACHED_BIG_ENOUGH_FOR_SHAPE_TABLE);
|
||||
}
|
||||
|
||||
public:
|
||||
bool isBigEnoughForAShapeTable() {
|
||||
|
|
Загрузка…
Ссылка в новой задаче