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

    +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
    class c1 {
        pin: number;
    
        hello() {
    	this.#hello();
        }
    
        #hello() {
            print("Hello World", this.pin);
    	this.pin = 20;
        }
    }
    
    function main() {
        const c = new c1();
        c.pin = 10;
        c.hello();
        print("Hello World", c.pin);
        delete c;
    
        print("done.");
    }

    Хорошие говно-новости по говно-помпилятору. Начал имплементировать классы. (когда меня это зае...т я еще не знаю, но чую что скоро)

    Запостил: ASD_77, 05 Июля 2021

    Комментарии (20) RSS

    • и как всегда кому интересен дамп. это LLVM IR - https://pastebin.com/BzgVeYNV
      Ответить
    • а вот тут можно глянуть дамп на LLVM MLIR для более удобного чтения "псевдо-инструкций языка". выглядит прикольно https://pastebin.com/xfRYeKPP
      Ответить
    • и как же я за результат работы забыл:

      C:\temp>tsc.exe --emit=jit 1.ts 
      Hello World 10.000000
      Hello World 20.000000
      done.
      Ответить
    • > delete c

      Какой хардкор )))

      Я нядеюсь это только переменную из текущего скопа удаляет, а не как в сишке?
      Ответить
      • нет. это чистейший С. здесь delete это удалить выделенную помять. Специально так сделал. поддержка GC планируется, потом используя Boehm garbage collector
        Ответить
        • А, просто времяунная подпорка.
          Ответить
          • ну да. а вообще я предвидел холивар между GC-пацанами и тру-хацкерами-маллок-аллокаторами. Поэтому подумал, что сделаю я два варианта а там пусть сами думают, что юзать
            Ответить
    • Не ты ли говорил, что звёздочки перед именами методов – это сасно (плохо)? И поэтому перед именем метода стоит решёточка?
      Ответить
      • Здесь решётка — это просто литера?
        Ответить
        • Здесь решётка была просто литера.
          Этапом еду в Магадан из Питера.
          Ответить
      • # в JS и TS это маркировка private мембера. вот же блондинка.
        Ответить
        • Замени её на public static void, чтобы у тебя был свой диалект.
          Ответить
          • нафига. тогда лучше С++ компилятор просто узайть нужно
            Ответить
          • ао вторых - это лучше тем что не надо 1000 лишних никому не нужных слов писать
            Ответить

    Добавить комментарий