FuckItJS - скрипт для Факеров

Soprano

Комбинатор
Регистрация
11 Апр 2009
Сообщения
656
Реакции
980
FuckItJS: принудительное исполнение JavaScript-кода

Американский веб-разработчик Мэтт Даймонд (Matt Diamond) написал библиотеку JavaScript под названием FuckItJS. Если вставить в код метод FuckIt, то он заставит исполняться самый плохой скрипт, «нравится это компилятору или нет».

В общем, FuckItJS работает так: из скрипта вырезаются все строчки, на которые выскочили ошибки. Процесс повторяется, пока скрипт (или что там от него осталось) не проходит компиляцию без ошибок. Чтобы выжить в этом жестоком мире, FuckItJS перезагружается после каждой итерации.

FuckIt(путь_к_файлу)
Стандартный метод со ссылкой на дерьмовый скрипт. Можно использовать в коде несколько раз.

FuckIt.noConflict()
«Вы используете две библиотеки FuckIt? — спрашивает автор. — Хрен с ним, но тогда запускайте метод FuckIt.NoConflict. Конечно, на самом деле это не поможет, ведь FuckItJS постоянно перезагружается и непрерывно обновляет глобальную переменную FuckIt, но блин… хотя бы почувствуешь, что сделал нечто умное».

FuckIt.moreConflict()
«Устал прятаться от конфликтов? Готов перезаписать все до единого свойства в глобальном объекте Window, даже если это обрушит браузер? Тогда этот метод для тебя», — говорит Мэтт Даймонд.

Автор реально не знает, что написать в обязательном поле “Browser Compatibility”, да и вообще шутит на странице проекта по полной программе. Коммиты там тоже смешные, в общем, страничка юмора на Гитхабе.

Шутка Даймонда пришлась по вкусу веб-разработчикам: см. модуль интеграции FuckItJS для Drupal.

Мэтт Даймонд уверен, что написал «самый худший плагин в истории», но на самом деле похожий принцип обхода ошибок используется при написании программ, устойчивых к отказу оборудования, очень перспективное направление, без шуток.
Источник с исходниками Для просмотра ссылки Войди или Зарегистрируйся
 
Мне тоже эта новость понравилась, хотя саму либу еще не пробовал запускать.
Вот только куда запостить на нуллед не придумал, но явно не JS, пусть будет мегафлуд.

Копипаст с хабра:
Хочу сделать небольшую ремарку.

Суть работы скрипта сводится к тому, что в момент, когда происходит событие ошибки, свойство onerror последним аргументом возвращает номер строки. Далее код скрипта сплитится по символу перевода строки и заносится в массив, после чего удаляется элемент с индексом, который совпадает с номером строки:

var parsed = window.fuckedScript.split("\n");
parsed.splice(line - 1, 1);


Таким образом, если ошибка произойдет в начале блока, то последовательно будут удалены все строки пока блок не закроется:

{ // Здесь произошла ошибка

/*
* Удаляем все в этом блоке
*
*/

} // Удалили последнюю закрывающую скобку



Иными словами, есть большая вероятность того, что удалится не только корявый код, но и рабочий (возможно большая его часть).

Поэтому питать большие иллюзии на счет полезности данного скрипта не стоит, лучше воспользоваться отладчиком.

Данная библиотека скорее шутка, полезной ценности для разработчиков или пользователей не представляет и способствует говнокоду.
 
Назад
Сверху