Spaces:
Running
Running
| var acorn = require('acorn') | |
| var xtend = require('xtend') | |
| var CJSParser = acorn.Parser | |
| .extend(require('./lib/bigint')) | |
| .extend(require('./lib/class-fields')) | |
| .extend(require('./lib/static-class-features')) | |
| .extend(require('./lib/numeric-separator')) | |
| .extend(require('./lib/dynamic-import').default) | |
| var ESModulesParser = CJSParser | |
| .extend(require('./lib/export-ns-from')) | |
| .extend(require('./lib/import-meta')) | |
| function mapOptions (opts) { | |
| if (!opts) opts = {} | |
| return xtend({ | |
| ecmaVersion: 2020, | |
| allowHashBang: true, | |
| allowReturnOutsideFunction: true | |
| }, opts) | |
| } | |
| function getParser (opts) { | |
| if (!opts) opts = {} | |
| return opts.sourceType === 'module' ? ESModulesParser : CJSParser | |
| } | |
| module.exports = exports = xtend(acorn, { | |
| parse: function parse (src, opts) { | |
| return getParser(opts).parse(src, mapOptions(opts)) | |
| }, | |
| parseExpressionAt: function parseExpressionAt (src, offset, opts) { | |
| return getParser(opts).parseExpressionAt(src, offset, mapOptions(opts)) | |
| }, | |
| tokenizer: function tokenizer (src, opts) { | |
| return getParser(opts).tokenizer(src, mapOptions(opts)) | |
| } | |
| }) | |