Javascript.RU

Firefox и потеря оригинального исходного кода. Оптимизация превыше всего.

alert(
  ""+(function()
  {
    var a=1+1;
    var b=Math.min(1,2);
    // камент ага
    var c=(((Math.max(1,2))));
    var d="1"+"b"+1;
    var e=a+b*c+(a+b)-d*((a+c)+a)-a/(a+a*(b-c));
    
    "просто строка";
    /рега/;
    
    /* хочу камент */
    if(false)
    {
      /* и тут тоже */
      alert("этот код никогда не выполнится но тем не менее");
    }
    
    for( ;; )
    { // люблю скобки на следующей строке
    
    }
    
    for(var i=0;i<5;++i)
    {
      alert("1"+i);
    }
  })
);
+5

Автор: Dmitry A. Soshnikov, дата: 1 марта, 2010 - 17:45
#permalink

Ну почему сразу "наглость", вполне всё в рамках "закона":

15.3.4.2 Function.prototype.toString( )

An implementation-dependent representation of the function is returned...

Вы ещё не видели, как JScript (IE) делает строковую декомпиляцию функций-выражений - он может включать в неё и вовсе неотносящиеся сущности, например, скобки оператора группировки, комменты внешние и т.д.


Автор: bga (не зарегистрирован), дата: 1 марта, 2010 - 17:52
#permalink

Согласен. И тем не менее именно в Firefox это носит наиболее тяжетый эффект. Хотя и в благой цели легкой оптимицации.


Автор: ixth, дата: 2 марта, 2010 - 11:35
#permalink

Не знаю насчет легкой оптимизации, но думаю, что вся инициализационная статика просто вычисляется на ранних проходах интерпретатора.


Автор: bga (не зарегистрирован), дата: 1 марта, 2010 - 18:30
#permalink

Поправил название на более корректное.


Автор: Гость (не зарегистрирован), дата: 1 марта, 2010 - 18:01
#permalink

Эту фичу можно использовать для распарсивания кода, который записан в строчку.


Автор: Л. Андрей (не зарегистрирован), дата: 1 марта, 2010 - 19:38
#permalink

Помогает при анализировании обфусцироного кода.


Автор: KOLANICH, дата: 20 декабря, 2010 - 13:59
#permalink

это круто
даже через closure compiler прогонять не надо
(шутка, он всё же полезен, так как лисе yt приходится самой оптимизировать)


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
2 + 0 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Популярные таги
Последние комментарии
Последние темы на форуме
Forum