Сообщение от danik.js
|
То есть какие отличия {0:'a'}[0] от ['a'][0] ? Преобразование нуля в строку идет в обоих случаях?
|
Что там происходит физически - хз. Каждый движок по-своему реализует соответствие спецификации.
Но многих операций в теории можно избежать с помощью всяких эвристических оптимизаций.
Например, движок может не определять у массива свойство length, если анализ семантического дерева показывает, что оно ни разу не используется.
А может не то что не определять никаких свойств, а даже и вообще не создавать "JS-объект" как таковой: если известно, что аксессоры используют только ключи целочисленного типа, то достаточно выделить голый индексированный список с простой интеграцией ссылок в инфраструктуру сборщика мусора. Накладные расходы будут близки к минимальным.