Perl write-only vs. Js write-only

    This little JavaScript by Yosuke Hasegawa fulfills alert (1):
    (É = [Å = [], µ =! Å + Å] [µ [È = - ~ - ~ ++ Å] + ({} + Å) [Ç = !! Å + μ, ª = Ç [Å] + Ç [+! Å], Å] + ª]) () [μ [Å] + μ [Å + Å] + Ç [È] + ª] (Å )

    How does it work?


    For simplicity, replace
    Å -> Int_1
    É -> f_sort
    È -> Int_3
    µ -> B_false
    ª -> Str_rt
    Ç -> Str_truefalse

    We get :
    (f_sort = [Int_1 = [], B_false =! Int_1 + Int_1] [B_false [Int_3 = - ~ - ~ ++ Int_1] + ({} + Int_1) [Str_truefalse = !! Int_1 + B_false, Str_rt = Str_truefalse [Int_1] + Str_truefalse [+! Int_1], Int_1] + Str_rt]) () [B_false [Int_1 ] + B_false [Int_1 + Int_1] + Str_truefalse [Int_3] + Str_rt] (Int_1)

    Format:
    1.  
    2. (f_sort=
    3.       [
    4.           Int_1 = [],
    5.           B_false = !Int_1 + Int_1 // B_false = ![]+[] = false
    6.       ] // [[],false]
    7.           [    
    8.           B_false[
    9.               Int_3 = -~-~ ++Int_1 // ++Int_3 = 3 ([].toInt() -> 0, ++0 = 1, ~1 -> -2, --2 -> 2, ~2->-3, --3 = 3), Int_1 = 1
    10.           ] // 'false'[3] = 's'
    11.           + ({} + Int_1 ) // {} cast to string  -> '[object Object]' + 1 -> '[object Object]1'
    12.                   [
    13.                       Str_truefalse = !!Int_1 + B_false, //  !!Int_1 -> true, Str_truefalse = true + false = 'truefalse'
    14.                     Str_rt = Str_truefalse[Int_1] + Str_truefalse[+!Int_1],  // Str_rt = 'truefalse'[1] + 'truefalse'[0] =  'rt'
    15.                       Int_1 // 1
    16.                 ]//'[object Object]1'['truefalse', 'rt',1] -> 'o' ('[object Object]1'[1])
    17.           + Str_rt
    18.  
    19.           ]// [][ 's'+'o'+'rt'] -> [].sort
    20. )() //  (f_sort = [].sort)() -> [].sort.call() -> window
    21. [
    22.       B_false[Int_1]+ // 'false'[1] -> 'a'
    23.       B_false[Int_1+Int_1]+ // 'false'[2] -> 'l'
    24.       Str_truefalse[Int_3]+ // 'truefalse'[3] -> 'e'
    25.       Str_rt // 'rt'
    26. ] // ['alert']
    27.       (Int_1) // window['alert'](1)
    28.  


    Everything is simple and clear.

    Also popular now: