Node = function Node(parser, pos, loc) {
  this.type = "";
  this.start = pos;
  this.end = 0;
  if (parser.options.locations)
    { this.loc = new SourceLocation(parser, loc); }
  if (parser.options.directSourceFile)
    { this.sourceFile = parser.options.directSourceFile; }
  if (parser.options.ranges)
    { this.range = [pos, 0]; }
}
A name can be declared with `let`/`const` if there are no variables with the same name declared with `let`/`const`
in the current scope, and there are no variables with the same name declared with `var` in the current scope or in
any child lexical scopes in this function.