0

Yesterday, I found out weird javascript behavior. I program a few years, but I saw this for the first time. In this fib function:

function fib(n) {
  var fiber = { arg: n, returnAddr: null, a: 0 };
  rec: while (true) {
    if (fiber.arg <= 2) {
      var sum = 1;
      while (fiber.returnAddr) {
        fiber = fiber.returnAddr;
        if (fiber.a === 0) {
          fiber.a = sum;
          fiber = { arg: fiber.arg - 2, returnAddr: fiber, a: 0 };
          continue rec;
        }
        sum += fiber.a;
      }
      return sum;
    } else {
      fiber = { arg: fiber.arg - 1, returnAddr: fiber, a: 0 };
    }
  }
}

there is weird assign:

rec: while (true) { ... }

what that does and how to debug/log that?

how is it possible and why?

can anyone explain that?

I will be grateful, it is the first thing

lucio
  • 29
  • 3

0 Answers0