а зачем все сложно так, обычно я делаю так: каждый модуль имеет деструктор, который и заботится про очистку. Вызываем при выгрузке модуля его деструктор и все. у тебя похоже тоже самое, но както слишком уж «замучено», или я не понял в чем фишка?
вообщем я делаю вывод что запутывание компрессора гипотетически возможно, но очень маловероятно, я уже перепробовал много разных вариантов и во всех случаях которые я смог смоделировать компрессор справился без ошибок
...(in the face of evil features such as eval or with, the YUI Compressor takes a defensive approach by not obfuscating any of the scopes containing the evil statement)…
т.е. компрессор намеренно не сжимает код при eval or with…
без примера туговато, щас поищу пример чтобы понятно стало
… ну, конкретно в моем случае все работает замечательно при сжатии с window['eval']… возможно стоит все же подумать перед переименованием, а после тщательно перепроверять результат сжатия на полную работоспособность…
1) дело в том что я сам не сторонник eval, но есть случае когда альтернативы ему просто нету. простой кода всегда лучше сложного, но сами знаете иногда какие бывают случаи…
2) было классно привести пример выше описанного вами случая: когда переменная А может быть переопределена до этого вызова… мы тогда точно разберемся как правильно
хороший пример, для меня был полезен момент с отображенем иконки загружаемого файла.
в вашем методе есть недостаток - если увеличить или уменьшить размеры шрифта, пропорция кнопки инпута картинке-эмулятору будет нарушена, что вызывает "несоответсвующую кликабельность". я использую немного другой алгоритм: динамически перемещаю с помощью жабаскрипта файл-инпут под мишку пользователя в пределах картинки-эмулятора. Это позволяет использовать картинки-эмулятора любого размера и не зависит от шрифта пользователя.
нефиг лазит по гадким сайтам, никакой патч не спасет от всех сайтов, которые хотят навредить юзеру.
другое дело, если "левый код" подгружается в доверительном сайте, тогда то что используется callee, при грамотной реализации никак не помешает
в url некрасиво добавлять, хотя подход с url использовался раньше чаще, на данный момент круче все же через header, чище получается, если можно так выразится - то более REST правильно
я думаю не стоит лезть внутрь prototype, потому как после обновления версии все ваши изменения будут потеряны...
а каждый раз и ненадо добавлять хеадер, надо использовать тогда когда надо :), если надо всегда используйте либо 'post', либо глобализируйте опции
проблемы всегда есть, если не eval, то найдется чтото другое. кухонный нож в руках повара инструмент для изготовления искусных блюд, а в руках маньяка - холодное оружие...
после сжатия
как видим все ок.
и между чистым кодом
нужен конкретный проблемный пример, я думаю многим будет интересно разобраться до конца
...(in the face of evil features such as eval or with, the YUI Compressor takes a defensive approach by not obfuscating any of the scopes containing the evil statement)…
т.е. компрессор намеренно не сжимает код при eval or with…
без примера туговато, щас поищу пример чтобы понятно стало
… ну, конкретно в моем случае все работает замечательно при сжатии с window['eval']… возможно стоит все же подумать перед переименованием, а после тщательно перепроверять результат сжатия на полную работоспособность…
2) было классно привести пример выше описанного вами случая: когда переменная А может быть переопределена до этого вызова… мы тогда точно разберемся как правильно
в вашем методе есть недостаток - если увеличить или уменьшить размеры шрифта, пропорция кнопки инпута картинке-эмулятору будет нарушена, что вызывает "несоответсвующую кликабельность". я использую немного другой алгоритм: динамически перемещаю с помощью жабаскрипта файл-инпут под мишку пользователя в пределах картинки-эмулятора. Это позволяет использовать картинки-эмулятора любого размера и не зависит от шрифта пользователя.
другое дело, если "левый код" подгружается в доверительном сайте, тогда то что используется callee, при грамотной реализации никак не помешает
а каждый раз и ненадо добавлять хеадер, надо использовать тогда когда надо :), если надо всегда используйте либо 'post', либо глобализируйте опции