Fuck AS3.

It supports associative arrays, which is great, but they're broken: the length of an associative array is 0. This is because, as far as I can see, length is just a normal property that's updated when you call foo[n]. But it's just fucking ignored if you call foo[string].

Hell, the documentation even says as much, but seriously?

There is no advantage in using the Array constructor to create an associative array. You cannot use the Array.length property or any of the methods of the Array class with associative arrays, even if you use the Array constructor or the Array data type. The use of the Array constructor is best left for the creation of indexed arrays.

Why even write that? As soon as the words hit the screen, you'd think someone would say, "this is bullshit. what the fuck were we thinking?" and file a bug. There's even a stack overflow thread on how to find the length of an associative array. How is this not built in?