1. JavaScript / Говнокод #27624

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    <!DOCTYPE html>
    <html lang="ru">
    <heaad><title>calculator Protestant of sins [beta]</title></head><body><script>
    let m = ["сколько Вам лет [в годах]?","мало!","всего наилучшего тебе",0,16668,"сколько вы отдыхаете?  [в часах]","у вас накопилось :"," грехов! "];
    var x="Этот супер калькулятор поможет тебе подсчитать количество нажитых тобой - за твои годы Грехов!\n Не бойся, смелее вводи свои данные в последующие окошки, и получай результат!\nне переживай, если у тебя получится болше одного миллиона - то это в пределах нормы, если больше то надо делать обряд!";
    try{function b(e) {let l=d(c(m[e]));e==0?x=l:0;return l};							  
       function c(a) {return prompt(a)}
       function d(d) {if(d<=2){alert(m[1]);d(c(m[0]))}else{return d;}}
       if(confirm(x)){let s=0x1E32F50*b(0);let a=x*0x16D*0x18-b(5);alert(m[6]+`${s-a-m[4]-Math.PI}`+m[7])}else{alert(m[2])}}catch(x){alert("©by den")};
    </script></body></html>

    Hello народ))
    Уверен вы ещё не встречали такого супер калькулятора!
    Чую даже без запуска вы поймёте что это полное Г

    prefix-not, 28 Августа 2021

    Комментарии (1)
  2. JavaScript / Говнокод #27623

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    function* foo() {
        let i = 1;
        yield ++i;
        yield ++i;
    }
    
    function main() {
        for (const o of foo()) {
    	print(o);
        }
    
        print("done.");
    }

    вот... решил самую крутую проблему в итераторах... а ты (С/C++) так можешь?

    ASD_77, 28 Августа 2021

    Комментарии (106)
  3. JavaScript / Говнокод #27616

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    Steps to reproduce:
    
      var s = "a huge, huge, huge string...";
      s = s.substring(0, 5);
    
    Expected results: s takes five bytes of memory, plus some overhead.
    Actual results: s takes a huge, huge, huge amount of memory.
    Unfortunately, most String functions use substring() or no-ops internally: concatenating with empty string, trim(), slice(), match(), search(), replace() with no match, split(), substr(), substring(), toString(), trim(), valueOf().
    My workaround is:
    
    function unleakString(s) { return (' ' + s).substr(1); }
    
    But it's not satisfying, because it breaks an abstraction and forces me to think about memory allocation.

    https://bugs.chromium.org/p/v8/issues/detail?id=2869

    Status: Assigned (Open)
    Reported on: Sep 3, 2013

    3.14159265, 26 Августа 2021

    Комментарии (49)
  4. JavaScript / Говнокод #27615

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    function *foo()
    {
       yield 1;
       yield 2;
       yield 3;
    }
    
    function main()
    {
        for (const o of foo())
        {
    	console.log (o);
        }
    
    }
    
    main();

    давайте посмотрим, как TS/JS имплементирует "елды". изначально код выглядит красиво. но заглянем под капот что генерит tsc для выполнение такого кода. мне придется разбить этот ужос

    ASD_77, 24 Августа 2021

    Комментарии (671)
  5. JavaScript / Говнокод #27612

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    class IntIter {
        constructor(private i = 0) {}
        next() {
    	type retType = [value: typeof this.i, done: boolean];
            if (this.i < 10) {
                return <retType>[this.i++, false];
            }
    
            return <retType>[this.i, true];
        }
    }
    
    function main() {
        let it = new IntIter();
        for (const o of it)
        {
    	print(o);
        }
    
        for (const o of "Hello")
        {
    	print(o);
        }
    }

    добавил поддержку ForOf для ES2015 и ES3; причем компилятор сам определяет какой вариант лучше юзать

    ASD_77, 23 Августа 2021

    Комментарии (4)
  6. JavaScript / Говнокод #27606

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    type a = 1;
    type i = a & a;
    type j = a | a;
    
    function main() {
        let v1: i;
        let v2: j;
        assert(sizeof(i) != sizeof(j));
        print("done.");
    }

    ну все я понял вам скучно... как насчет такого примера?

    ASD_77, 23 Августа 2021

    Комментарии (616)
  7. JavaScript / Говнокод #27604

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    type int = 1;
    type int64 = 4294967296;
    
    declare function GC_get_heap_size(): int64;
    
    function main() {
        let i = 0;
    
        for (i = 0; i < 10000000; ++i) {
            const p = new int[1];
            if (i % 100000 == 0) print("Heap size = ", GC_get_heap_size());
        }
    }

    вот такая лабуда подкатили.. называется GC.. для тех кто не любит GC я добавил опцию -nogc :)

    вот так можно JIT запускать без компиляции

    tsc.exe --emit=jit --shared-libs=TypeScriptGCWrapper.dll 1.ts


    а так можно убить GC
    tsc.exe --emit=jit -nogc 1.ts

    ASD_77, 22 Августа 2021

    Комментарии (5)
  8. JavaScript / Говнокод #27579

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function main() {
        const o = {
            v: "Hi",
            toString() {
                return this.v;
            },
        };
        print(o);
    }

    Хочу напомнить о себе, а то люди начали забывать :)...

    ASD_77, 19 Августа 2021

    Комментарии (79)
  9. JavaScript / Говнокод #27575

    +7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    console.log(parseInt(0.5)); // 0
    console.log(parseInt(0.05)); // 0
    console.log(parseInt(0.005)); // 0
    console.log(parseInt(0.0005)); // 0
    console.log(parseInt(0.00005)); // 0
    console.log(parseInt(0.000005)); // 0
    console.log(parseInt(0.0000005)); // 5

    https://ideone.com/YMWUGq

    Возможно баян, спижжено с https://vk.com/wall-72495085_1267978

    3_dar, 17 Августа 2021

    Комментарии (164)
  10. JavaScript / Говнокод #27573

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    type int = 1;
    
    function makeRangeIterator(start = 0, end = 10000, step = 1) {
        print("makeRangeIterator.");
    
        let nextIndex = start;
        let iterationCount = 0;
    
        const rangeIterator = {
    	next() {
                let result: [value: int, done: boolean];
                if (nextIndex < end) {
                    result = [nextIndex, false];
                    nextIndex += step;
                    iterationCount++;
                    return result;
                } else {
                    result = [iterationCount, true];
                }
    
                return result;
            },
        };
    
        return rangeIterator;
    }
    
    function main() {
        let it = makeRangeIterator(1, 10, 2);
    
        let result = it.next();
        while (!result.done) {
            print(result.value); // 1 3 5 7 9
            result = it.next();
        }
    
        print("done.");
    }

    Ну вот и все... позвольте мне представить самый сложный кусок когда либо компилированный моей программой. но ввиду того что "трамплины" хрен знает как работают то придется этот код "забанить" до лучших времен. Но он рабочий

    ASD_77, 16 Августа 2021

    Комментарии (140)