I know JavaScript is a very special boi but c’mon, you’re embarrassing me in front of the wizards.

  • FizzyOrange@programming.dev
    link
    fedilink
    arrow-up
    4
    ·
    7 days ago

    Try interacting with anything that uses u64 and you’ll be a lot less happy!

    Anyway JavaScript does have BigInt so technically you are choosing.

    that insanity is how C and Intel handle NaN conversions.

    It’s not actually quite as bad as the article says. While it’s UB for C, and it can return garbage. The actual x86 conversion instruction will never return garbage. Unfortunately the value it returns is 0x8000… whereas JS apparently wants 0. And it sets a floating point exception flag, so you still need extra instructions to handle it. Probably not many though.

    Also in practice on a modern JS engine it won’t actually need to do this operation very often anyway.

    • arty@feddit.org
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      4
      ·
      7 days ago

      Try interacting with anything that uses u64 and you’ll be a lot less happy!

      I’m sorry you had to experience this, but in all my years of development I hadn’t.

      …not actually quite as bad… While it’s UB for C, and it can return garbage. … the value it returns is 0x8000

      0x8000 is garbage. Insane.