Компрессоры JavaScript и точка с запятой

Точка с запятой — один байт, перевод строки — один байт. Мне тут подумал, что лучше бы компрессоры JS выкидывали при сжатии не переводы строки, а точки с запятой (там где это возможно, конечно, например, пустой return в некоторых случаях нельзя завершить только переводом строки).

Тогда читаемость кода почти не снижалась бы (об обфускатарах я сейчас не говорю) и можно было бы легко понять где произошла ошибка, пропущенная в production (такое случается).

Комментарии 14

Alisey (alisey.myopenid.com) № 6
Оставляю точки с запятой и переводы строк. Первое для простоты отладки, второе для спокойствия. Сколько раз сталкивался с багами упаковщиков, в одном браузере работает, в другом не работает. Экономия 1.5% на 30 килобайтном файле не вдохновляет.
Евгений Степанищев (bolknote.ru) автор № 8
Речь идёт как раз об упаковщиках. Чтобы они оставляли переводы строк и убирали ;
new-direct-ui (new-direct-ui.ya.ru) № 11
Хм, странный у вас опыт использования JS-компрессоров. Ни разу ни сталкивался с багами (в yuicompressor, по-крайней мере), а экономия обычно составляет примерно 50%.
Alisey (alisey.myopenid.com) № 12
Использовал yuicompressor. Пример, к сожалению, не сохранился. Возможно это был JSJaC или какой-то плагин jQuery. До упаковки тестировал скрипт в FF и IE, после упаковки в IE работать перестал.

Сейчас пользуюсь JSMIN, который по большей части сохраняет переводы строк. После gzip разница между компрессорами не так велика, и вряд ли для кого-то будет принципиальной.