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

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

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

Виктор Гринчик (wiktar.moikrug.ru)
7 ноября 2009, 14:20

cat script.js | compressor | sed -e 's/;/\n/g' > script_mini.js

:)

coprophagous.ru (coprophagous.ru)
7 ноября 2009, 14:43

Перевод строки — два байта. =)

bolk (bolknote.ru)
7 ноября 2009, 15:11, ответ предназначен Виктор Гринчик (wiktar.moikrug.ru):

Не пойдёт. :) Не все переводы строки равны точке с запятой.

bolk (bolknote.ru)
7 ноября 2009, 15:11, ответ предназначен coprophagous.ru:

Палишься, виндузятник!!!

Глеб Арестов (gleb-arestov.moikrug.ru)
7 ноября 2009, 15:36

новый гугловский Closure Compiler — это то, что нужно?
http://pic.ipicture.ru/uploads/091107/gkCz26M41y.png

Alisey (alisey.myopenid.com)
7 ноября 2009, 16:17

Оставляю точки с запятой и переводы строк. Первое для простоты отладки, второе для спокойствия. Сколько раз сталкивался с багами упаковщиков, в одном браузере работает, в другом не работает. Экономия 1.5% на 30 килобайтном файле не вдохновляет.

zverik.livejournal.com (zverik.livejournal.com)
7 ноября 2009, 16:31

Ещё бы эти компрессоры корректно обрабатывали vbscript...

bolk (bolknote.ru)
7 ноября 2009, 20:34, ответ предназначен Alisey (alisey.myopenid.com):

Речь идёт как раз об упаковщиках. Чтобы они оставляли переводы строк и убирали ;

bolk (bolknote.ru)
7 ноября 2009, 20:34, ответ предназначен Глеб Арестов (gleb-arestov.moikrug.ru):

Это ровно противоположное поведение.

bolk (bolknote.ru)
7 ноября 2009, 20:35, ответ предназначен zverik.livejournal.com:

А зачем сейчас нужен именно VBScript?

new-direct-ui (new-direct-ui.ya.ru)
7 ноября 2009, 23:27, ответ предназначен Alisey (alisey.myopenid.com):

Хм, странный у вас опыт использования JS-компрессоров. Ни разу ни сталкивался с багами (в yuicompressor, по-крайней мере), а экономия обычно составляет примерно 50%.

Alisey (alisey.myopenid.com)
8 ноября 2009, 09:51, ответ предназначен new-direct-ui (new-direct-ui.ya.ru):

Использовал yuicompressor. Пример, к сожалению, не сохранился. Возможно это был JSJaC или какой-то плагин jQuery. До упаковки тестировал скрипт в FF и IE, после упаковки в IE работать перестал.

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

Ti (ti-webdev.blogspot.com)
22 ноября 2009, 17:35

тут не обойтись без точки с запятой

<script>
(function() { alert(1) })()


(function() { alert(2) })()
</script>

bolk (bolknote.ru)
22 ноября 2009, 21:24, ответ предназначен Ti (ti-webdev.blogspot.com):

Я знаю несколько случаев, где не обойтись, но что с того? Это не противоречит моему предложению.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)