Вернее кусок г..на, создававшийся в явно удолбаном состоянии сознания? Ну вот в каком состоянии надо быть, чтобы обозвать метод добавление элемента в начало массива unshift()? И почему удаление элемента из массива делается методом splice()? И какого черта for in умеет обходить свойства объекта (да и то коряво, требуя проверок hasOwnProperty), но не умеет по массиву. И почему в языке нет средств синхронизации, хотя всякие события/коллбэки могут прилетать асинхронно?
И таких «какого черта» - еще вагон и маленькая тележка. Как люди на этом пишут вообще? Вернее даже так: как же надо покорежить себе мозг, чтобы не просто писать на этом, но еще и считать js чуть ли не лучшим инструментом.