-
Notifications
You must be signed in to change notification settings - Fork 351
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Add parser support for esprima-next #1393
Comments
Thanks to your issue, my issue was solved by using esprima-next! I just did |
It's definitely much better, but still fails for certain things like private class fields. This is more of a failing of
// Use ast.tokens if possible, and otherwise fall back to the Esprima
// tokenizer. All the preconfigured ../parsers/* expose ast.tokens
// automatically, but custom parsers might need additional configuration
// to avoid this fallback.
var tokens = Array.isArray(ast.tokens)
? ast.tokens
: require("esprima").tokenize(sourceWithoutTabs, {
loc: true,
}); The above would need to be updated to support
|
Out of curiosity: why not use import { parse } from "recast";
import * as esprima from "esprima-next";
const code = `ITEM?.getAsEntry?.() ?? ITEM?.webkitGetAsEntry?.()`;
console.log(parse(code, { parser: esprima })); |
Originally it was because I needed something that could be bundled small enough to fit within Snowflake's constraints. I tried with Babel and it was too large, but I have since taken a different approach.
It was the PrivateName it was returning instead of PrivateIdentifier for class private fields. I've opened an issue against esprima-next since. |
esprima-next is a modern replacements for
esprima
and fixes many of the issues with current versions ECMAScript support.The text was updated successfully, but these errors were encountered: