Доброго времени суток всем!
Интересует, каким образом вы вычищаете, например хеш, чтобы повторно использовать:

Код AS3:
var hash:Object = {};
hash["a"] = 1;
hash["b"] = 2;
???? // Здесь должна быть очистка хеша неизвестным способом
// и можно использовать хеш по новой:
hash["c"] = 3;
...
Всегда использовал такой подход:

Код AS3:
for (var i:String in hash)
{
delete hash[i];
}
Но огрёб один раз при использовании массива [] вместо объекта {}
С объектом воспроизвести лажу не удалось.
Для примера оин из вариантов с ассоциативным массивом:

Код AS3:
var key:String;
var hash:Object = [];
hash[1] = 1;
hash[2] = 2;
hash[0] = 3;
for (key in hash)
{
delete hash[key];
}
for (key in hash)
{
throw "hash mast be clean";// Падает
}
C length = 0 тоже канает только для НЕассоциативного массива:

Код AS3:
var key:String;
var hash:Object = [];
hash[-1] = 1;
hash[2] = 2;
hash[0] = 3;
hash.length = 0;
for (key in hash)
{
throw "hash mast be clean";// Падает
}
Вопрос, можно ли доверять в этом отношении Object и Dictionary, и насколько безопасно так его чистить:

Код AS3:
for (key in hash)
{
delete hash[key];
}
Кто-нибудь сталкивался с багами при такой очистке (в доках этот вопрос не освещён - не нашёл)?