Uglifying JavaScript - дальнейшая оптимизация
Это может показаться глупым вопросом, но есть ли какая-то причина, почему Uglifiers не расширяют ссылки на внешние функции, используя указатель?
Пример:
Файл, над которым я работаю, имеет несколько вызовов _gaq.push()
, Я сжал это, добавив в начало файла var _g=_gaq.push();
, Затем я обновляю 12 звонков, чтобы использовать _g
указатель. Это не спасло огромное количество (84 байта), но каждый немного помогает, верно?
Я что-то упустил, есть ли причина, по которой Uglifiers не делают этого?
1 ответ
Решение
Короче говоря, потому что существует слишком большой потенциал для взлома кода.
Предполагая, что вы имеете в виду var _g=_gaq.push;
, тогда на ум приходят две возможные причины поломки:
- Вы изменили значение
this
внутриpush
, Если функциональностьpush
зависит от того, тогда ты просто сломал это. - Если значение
_gaq.push
изменяется после назначения_g
тогда ваш код продолжит работать со старым значением.