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

    +2

    1. 1
    https://s1.postimg.org/9ay7hrf7fj/js-love-forever.png

    heart, heart, JavaScript!

    Запостил: wvxvw, 26 Октября 2017

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

    • гибкий язык.
      Ответить
    • Лисопроблемы.
      Ответить
      • Скорее, проблемы консоли с неинформативным выводом.

        Оказывается, интерпретатор в данном месте ждёт не ассоциативный массив, а операторные скобки, для которых в JS (о, чудо!) используются одинаковые символы.

        Контекстозависимая грамматика — зло.
        Ответить
        • Проблема, скорее, в долбоёбах, которые эвалят пользовательский ввод. У меня в хромоге всё работает.
          https://imgur.com/a/e04wV
          p. s.: В лисе, как следствие, тоже можно всё взять в скобки для достижения желаемого эффекта.
          Ответить
          • Хром 48:
            > {"x":1}
            VM323:2 Uncaught SyntaxError: Unexpected token :
                at Object.InjectedScript._evaluateOn (<anonymous>:875:140)
                at Object.InjectedScript._evaluateAndWrap (<anonymous>:808:34)
                at Object.InjectedScript.evaluate (<anonymous>:664:21)


            Так что ещё от версии зависит.

            Странно, что в эвале и без эвала разные результаты.
            Ответить
        • Кстати, про грамматику: меня раздражает, что в няшной и в языках с похожим синтаксисом у каждого знака препинания 100500 значений. Если фигурные скобки уже задействованы для группы выражений, то зачем их использовать для ассоциативных массивов?

          Есть же Unicode: ⦅x:1⦆, ⧼x:1⧽, ⟦x:1⟧, 「x:1」. Или переходите на "PHP", там можно писать понятно: array("x"=>1).
          Ответить
          • Толи дело LISP
            Ответить
          • > в няшной и в языках с похожим синтаксисом у каждого знака препинания 100500 значений
            Ну как тут не вспомнить про "&" в плюсах?..
            Ответить
            • "*" в няшной — это умножение, тип указателя, разыменовывание указателя?
              "<" и ">" в крестах — это меньше/больше или скобки крестошаблонов?
              ">>" в крестах — это сдвиг или подряд две скобки крестошаблона?
              () — это скобки в формуле, аргументы функции, указатель на функцию, инициализация значения?
              Ответить
              • Это я ещё квадратные и фигурные скобки не упомянул... Но больше всего от неоднозначного использования страдают круглые скобки.
                Ответить
            • А тут ещё больше грусти: http://govnokod.ru/22016

              T global;       //zero-initialization, then default-initialization
              
              void foo() {
                  T i;         //default-initialization
                  T j{};       //value-initialization (C++11)
                  T k = T();   //value-initialization
                  T l = T{};   //value-initialization (C++11)
                  T m();       //function-declaration
              
                  new T;       //default-initialization
                  new T();     //value-initialization
                  new T{};     //value-initialization (C++11)
              }
              
              struct A { T t; A() : t() {} }; //t is value-initialized
              struct B { T t; B() : t{} {} }; //t is value-initialized (C++11)
              struct C { T t; C()       {} }; //t is default-initialized
              Ответить
              • # struct C { T t; C() {} }; //t is default-initialized

                А ещё в Сишарпике конструктор не имеет право передать управление вызывающему, не установив значения всех нестатических полей.
                Ответить
            • Ещё кто-то (кажется, Роман) на ГК кидал ссылку на презентацию с приколами типа 10[a] вместо a[10], но я не могу её найти.
              Ответить
        • > Контекстозависимая грамматика
          Вот любят скриптоёбы делать по две вещи через одно место... В данном случае заставили консоль исполнять и expressions и statements.

          А коду, который пишут в js файлах, эта проблема не мешает - если кто-то напишет {"x": 2}, то он его или в функцию передаст или в переменную положит.
          Ответить
    • Opera/Presto, Dragonfly:
      >>> {"x":1}
      Syntax error at line 1: expected ';', got ':'
      {"x":1}
      ----^
      Ответить
      • Iron:
        {"x":1}
        VM473:2 Uncaught SyntaxError: Unexpected token :
            at Object.InjectedScript._evaluateOn (<anonymous>:905:140)
            at Object.InjectedScript._evaluateAndWrap (<anonymous>:838:34)
            at Object.InjectedScript.evaluate (<anonymous>:694:21)
        Ответить
        • IE9:
          >> {"x":1} 
          "Предполагается наличие ';'"
          Ответить
          • Safari/Windows:
            {"x":1}
            Error
            line: 287
            message: "Unexpected token ':'"
            sourceId: 2088857280
            __proto__: Error
            Ответить
            • Итого:
              • Фуррифокс и IE сообщают, что не хватает точки с запятой. Однако, где именно, не говорят.
              • Хром и Сафари говорят, что двоеточие не ожидается.
              • Dragonfly (помним, скорбим) сообщает, что Опера ожидает точку с запятой в том месте, где мы поставили двоеточие.
              Ответить
      • >> {"x";1}
        1
        Ответить
        • Хорошо, когда диагностические сообщения помогают исправить код!
          Ответить
    • Тем временем экма уже пробирается всё глубже и глубже: https://youtu.be/54jQ7ut3FBA?t=8m42s
      Ответить
      • Пока экмаскрипт нельзя синтезировать в FPGA и ASIC'и - ещё не всё потеряно...
        Ответить
        • > синтезировать в FPGA и ASIC'и
          Описывать на ES эти аппаратушни или создавать аппаратушни, делающие что-то эквивалентное коду на ES?
          Ответить
          • Выделить некое синтезируемое подмножество ES и создавать эквивалентную ему аппаратушню.
            Ответить
            • А ведь совсем недавно аппаратухи вручную стыковали логические элементы...
              Ответить
    • УМВР: http://i.prntscr.com/Xb816FWISdKweaiW7mfiZg.png
      Vivaldi 1.12.955.42
      Ответить
      • С этим XML-файлом не связана ни одна таблица стилей. Ниже показано дерево элементов.
        <Error>
          <Code>AccessDenied</Code>
          <Message>Access Denied</Message>
          <RequestId>4A4BAB527302B6A1</RequestId>
          <HostId>q77tSNEGz+U5RlKNJm41mtcdJtCyArRIBRcMYU6EHg0mNoZLkz04+hBZp1PNZodhRRCWIaW6DrI=</HostId>
        </Error>
        Ответить
        • УМВР: https://i.imgur.com/vs0QI21.png
          Ответить
        • НУ ВСЁ ТЕБЕ ПИЗДА Я ТЕБЯ ПО RequestId ВЫЧИСЛЮ
          Ответить
          • Кстати, если бы права доступа к камере не запрашивались, то на устройствах с фронтальной камерой (ноутбуки, смартфоны) можно было бы фоткать юзера, заливать фотку к себе на сервер и сопоставлять её с RequestId. А потом искать Тинаем...
            Ответить
            • А можно сраку туда подставить. Пускай товарищ майор улыбнется.
              Ответить
              • Тебе бы только сраку кому-нить подставить...
                Ответить
            • Так вот зачем у смартов камеры с джвух сторон...
              Ответить
        • ну так свяжи :зефирчик:
          Ответить
          • Связал, проверь:
            <?xml version="1.0"?>
            <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
                <xsl:output method="html" encoding="utf-8" omit-xml-declaration="yes" standalone="yes" />
                <xsl:template match="/">
                <html>
                    <head>
                        <title><xsl:value-of select="Error/Code" /></title>
                    </head>
                    <body>
                        <div style="color:red; background-color:blue"><xsl:value-of select="Error/Message" /></div>
                        <div style="color:magenta; background-color:green"><xsl:value-of select="Error/RequestId" /></div>
                        <div style="color:orange; background-color:magenta"><xsl:value-of select="Error/HostId" /></div>
                    </body>
                </html>
                </xsl:template>
            </xsl:stylesheet>
            Ответить
            • божемой, кто-то еще помнит xsl. Это вселяет надежду
              Ответить

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