estools/estraverse

traverse crashes on ES dynamic import

dgoldstein0 opened this issue · 4 comments

the es8 (7? 9? not sure exactly which number it is, but it's stage 4 now I believe) style import("foo") crashes estraverse. In particular:

  • use a parser that produces an estree spec AST and understands this syntax. I discovered this with cherow, but I suspect acorn will also work
  • estraverse.traverse(ast, {enter: function(){}, leave: function(){}}); should probably then be enough to repro if there's a dynamic import in the tree

I expect estraverse to be able to handle the type: "Import" nodes, and it instead throws. This seems to happen when it tries to visit the children of these nodes, as a this.skip() in the enter function when an import node is encountered does the trick. That said, skipping it's children shouldn't be necessary.

Try using fallback=iteration

what is that? I don't see iteration documented at all