JScrewIt (solusi berbeda: 16117, 14747, dan 5903 karakter)
Mesin Javascript tidak identik; sedikit perbedaan implementasi dapat menyebabkan kode yang berfungsi di browser tidak berfungsi pada yang lain. Dalam hal kode lipogrammatik seperti JSFuck - yang sebagian besar mengandalkan peretasan untuk menyandikan sesingkat mungkin - ketidakcocokan bahkan lebih besar.
Misalnya, kode yang dibuat oleh JSFuck untuk alert("Hello World!")
tidak berjalan di Internet Explorer. Jika ini adalah batasan yang dapat diterima, kami masih dapat menurunkan ukuran ke 16117 22174 karakter (Saya tidak dapat memasukkan seluruh kode secara langsung karena ukuran jawaban dibatasi hingga 30000 karakter):
http://jsfiddle.net/ep2jqsj4/1/
Kode yang berfungsi di Internet Explorer juga, tetapi tidak demikian pada beberapa browser yang lebih lama, membutuhkan 14747 karakter untuk menyandikan:
http://jsfiddle.net/bbxfqboq/
Akhirnya, jika tidak masalah memiliki kode yang berjalan di Firefox [pembaruan] dan Safari [akhir pembaruan] saat ini saja, kita dapat melakukannya dengan 5903 5911 karakter :
http://jsfiddle.net/pkyLy0j8/1/
Saya menyandikan semua itu dengan JScrewIt . Anda dapat menemukan penyandi lain yang mirip dengan JSFuck yang terdaftar di Esolang: http://esolangs.org/wiki/JSFuck . Saya mencoba semuanya dan saya harus mengatakan JScrewIni tampaknya yang terbaik (dan juga satu-satunya yang bekerja di semua browser), meskipun saya belum menganalisis cara kerjanya secara rinci.
Encoder menarik lainnya adalah 6chars.js , yang menghasilkan output yang lebih besar untuk input pendek seperti alert("Hello World!")
, tetapi ketika input bertambah panjang, kinerjanya lebih baik daripada encoders lain karena encode karakter sebagai angka. Angka lebih pendek untuk ditulis dalam JSFuck tetapi membutuhkan overhead tambahan untuk memecahkan kode. Sayangnya, 6chars.js hanya berfungsi di Chrome dan saya tidak bisa mengatakan apakah itu masih dikembangkan secara aktif.
Akan menarik untuk mengetahui jika ada lebih banyak encoders semacam itu. Jika seseorang dapat menggabungkan metode yang digunakan oleh pembuat enkode yang berbeda dalam satu alat, akan dimungkinkan untuk menghasilkan solusi yang lebih pendek.
$
dan=
juga, tolong? Kalau tidak, saya tidak berpikir kita bisa menghasilkan generator terbaik.