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

    −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
    18. 18
    19. 19
    20. 20
    function* foo2() {
    	yield 2;
    	yield 3;
    }
    
    function* foo() {
       yield 1;
    
       yield* foo2();
    	
       yield 4;
    }
    
    function main() {
        for (const o of foo()) {
            print(o);
        }
    
        print("done.");
    }

    продолжаем "наговнокодить". Добавил "елдак" со "звездой". Где тут наши препроцессорописатели.. дайте аналог на C/C++.

    ASD_77, 31 Августа 2021

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

    −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
    function* foo() {
        let i = 1;
        while (i < 10)
    	    yield ++i;
    }
    
    function main() {
        for (const o of foo()) {
            print(o);
        }
    
        print("done.");
    }

    возрадуйтесь браться и сестры .. я вам благую весть принес... наконец-то я доделал это ..говно.. и "елдаки" теперь работают нормально.

    ASD_77, 30 Августа 2021

    Комментарии (17)
  3. 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)
  4. 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

    Комментарии (94)
  5. 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)
  6. 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

    Комментарии (670)
  7. 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)
  8. 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

    Комментарии (613)
  9. 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)
  10. 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)