Проводил замеры создания инстанса, 1 миллион итераций.
Вышло примерно так:
1) ИЕ 10 ~ 15 сек
2) FF 16 ~ 20 сек
3) Chrome 22 ~ 24 сек
4) Opera 12 ~ 50 сек
Начал оптимизировать логику конструктора:
1) Разложил if-ы по логической вложенности;
2) Заменил первичное копирование свойств с extend (рекурсивная реализация) на Object.create (с указанием прототипа, там где нет, написал свою реализацию).
Итого:
1) Opera 12 ~ 0.4 сек
2) Chrome 22 ~ 0.8 сек
3) IE 10 ~ 1 сек
4) FF 16 ~ 1.4 сек
Для теста на сафари 6 лень было мак брать (тем более его юзала мама
). Основные тормоза разумеется вызывала рекурсия.
PS: после оптимизации логика конструктора осталась идентичной.