Может кто-нибудь объяснить мне, почему класс Dictionary игнорирует setPropertyIsEnumerable?
Я обнаружил эту ошибку на bugs.adobe, кажется, что прототип может быть каким-то хитрым образом вовлечен
Вот тестовый код:
var obj:Object = {
'a': 0,
'b': 1,
'c': 2
}
obj.setPropertyIsEnumerable('a', false)
trace("object\n")
for (var op:* in obj)
{
trace(op)
}
var dict:Dictionary = new Dictionary()
dict['a'] = 0
dict['b'] = 1
dict['c'] = 2
dict.setPropertyIsEnumerable('a', false)
trace("dictionary\n")
for (var dp:* in dict)
{
trace(dp)
}
Вывод этого:
object
c
b
dictionary
c
a
b
Обратите внимание, что в словаре по-прежнему перечисляется свойство "a", хотя было сказано, что нет.