News for hackers. Stuff that matters.
Re:JS Visualizer – Visualize Context, Hoisting, Closures, an... by charrrzard on Tuesday October 09, 2018 @01:15PM (#18177810)
looks awesome. why only es5 support?
Re:JS Visualizer – Visualize Context, Hoisting, Closures, an... by zawerf on Tuesday October 09, 2018 @09:37PM (#18181319)
ES5 has a lot of interesting hoisting bugs.

For example this doesn't print what you expect:

  for (var i = 0; i < 3; i++) {
    var text = 'number ' + i;
    setTimeout(function() {
      console.log(text);
    }, i * 1000);
  }
But flipping var to let will fix it. The bug is that var is not block-scoped so everything refers to the same `text` variable which gets mutated by the next iteration.

I was hoping their demo would be good for explaining this bug but it seems to be broken.

Re:JS Visualizer – Visualize Context, Hoisting, Closures, an... by jazzyjackson on Tuesday October 09, 2018 @10:07PM (#18181453)
This is not a bug, this is spec.

variables in javascript are not block scoped, but functionally scoped.

the let keyword introduces block scope to javascript.

Re:JS Visualizer – Visualize Context, Hoisting, Closures, an... by acemarke on Tuesday October 09, 2018 @01:51PM (#18178194)
Probably because ES6 syntax adds a lot more possible complications to the syntax tree.