code: function VariableDeclaration(node, parent, scope, file) {
      if (!isLet(node, parent)) return;
  
      if (isLetInitable(node) && file.transformers["es6.spec.blockScoping"].canTransform()) {
        var nodes = [node];
  
        for (var i = 0; i < node.declarations.length; i++) {
          var decl = node.declarations[i];
          if (decl.init) {
            var assign = t.assignmentExpression("=", decl.id, decl.init);
            assign._ignoreBlockScopingTDZ = true;
            nodes.push(t.expressionStatement(assign));
          }
          decl.init = file.addHelper("temporal-undefined");
        }
  
        node._blockHoist = 2;
  
        return nodes;
      }
    }
docs: [Please add a description.]