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

    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
    14. 14
    15. 15
    16. 16
    17. 17
    type int = 1;
    function main() {
        print("try/catch");
    
        let t = 1;
    
        try {
            throw 1;
        } catch (v: int) {
            print("Hello ", v);
            v = t;
        }
    
        assert(v == t);
    
        print("done.");
    }

    Ура ура.. новый говнокод подоспел... это гавно теперь параметры в тело "catch"-а передает

    Запостил: ASD_77, 14 Сентября 2021

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

    • вот тут дампик. https://pastebin.com/x4LdxWK5 прадва еще глюченный но все же работает
      Ответить
    • SEO пост - https://github.com/ASDAlexander77/TypeScriptCompiler
      Ответить
    • А ваш говно-компилятор умеет так (особенно С и С++)
      Ответить
      • так это как? Мой говно-компилятор это и есть C/C++ компилятор только в TS синтаксисе
        Ответить
      • Гост случайно написал от имени ASD_77, и так мы узнали, что это одно и тоже лицо
        Ответить
        • Я это я - уникальный и не повторимый
          Ответить
        • Да, похоже, что забыл перелогиниться. Какой багор )))
          Ответить
          • Я давно говорю, что тут пишет один поехавший за нас за всех
            Ответить
        • Откуда мы знаем что это «гост», а не допустим «Полина»?
          Ответить
          • Эти алиасы резолвятся в одного и того же занудного, дотошного плюсовика и секьюрити фрика из Волгограда
            Ответить
    • А multiple catch работает?
      Ответить
      • в тупоскприпте нет такого... но не забываем что if (v instanceof XXX) не использует "боксинг-анбоксинг"
        Ответить
        • Что тогда будет, если бросится не инт?
          Ответить
          • зависит от ловимого типа. если :any то все будет как обычно.. а если float то пролетит мимо :)
            Ответить
            • А в обычном-то это не работает поди?
              Ответить
            • Какой багор )))
              То есть чтобы сделать multiple catch, нужно либо вложенные try..catch, либо один с портянкой instanceof?
              Ответить
              • А ты думаешь JavaScript называется JavaScript просто так что ли?
                Ответить
    • вопрос для умных ... почему alloca в catch - рушит стек? т.е. зависание... что за бред?
      Ответить
      • Думаю там при раскрутке стека нельзя трогать стек, но нужно наверное читать что там LLVM пишет
        Ответить
        • catch -- это уже не раскрутка вроде, уже приземлились куда надо.
          Ответить
          • А если я SO поймал?

            А как там стек выглядит?
            Ответить
            • Да нормально должен выглядеть: всё что внутри трая уже размоталось, всё что снаружи ещё выжило... После выхода из catch надо ведь будет дальше исполнять код.

              Может какие-то ещё нюансы есть, конечно. Я никогда не изучала этот момент.
              Ответить
              • Important

                In Windows XP, if _alloca is called inside a try/catch block, you must call _resetstkoflw in the catch block.
                Ответить
              • короче если сохранить стек поинтер а потом востановить то все будет ок
                Ответить
    • https://api-v2.pointeresam.ru/upload/ru/post/1756/2.png/500.png
      Ответить

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