estools / escodegen

ECMAScript code generator
BSD 2-Clause "Simplified" License
2.65k stars 335 forks source link

support 'regex' property when 'value' is null #396

Closed fabiosantoscode closed 4 years ago

fabiosantoscode commented 5 years ago

Hello there! Thank you very much for the work that's gone into this library :)

I come with a PR to fix an issue which came up while using escodegen to test Terser's mozilla AST generation.

According to the spec it's possible to set a RegExpLiteral's value to null such that the RegExp is fully defined in the regex property. We need to do this always in Terser since we print the estree serialized JSON to standard output, which is a medium that doesn't allow us to use actual regular expressions.

To fix this, I just placed the logic that tests whether the Literal is a RegExpLiteral (IE checking for the regex property) above the other checks, which allows it to circumvent an early return of 'null' in this case.

Thanks! :D