@@ -43,35 +43,11 @@ function init() {
4343 ] )
4444
4545 const Parser = {
46+ create,
4647 createOptions,
4748 defaultOptions,
4849 parse ( code , options ) {
49- options = Parser . createOptions ( options )
50-
51- const { strict } = options
52- const parser = new AcornParser ( options , code )
53-
54- acornParserBigInt . enable ( parser )
55- acornParserClassFields . enable ( parser )
56- acornParserErrorMessages . enable ( parser )
57- acornParserFirstAwaitOutsideFunction . enable ( parser )
58- acornParserFirstReturnOutsideFunction . enable ( parser )
59- acornParserFunctionParamsStart . enable ( parser )
60- acornParserHTMLComment . enable ( parser )
61- acornParserImport . enable ( parser )
62- acornParserNumericSeparator . enable ( parser )
63- acornParserRaw . enable ( parser )
64- acornParserTolerance . enable ( parser )
65- acornParserTopLevel . enable ( parser )
66-
67- if ( strict !== void 0 ) {
68- parser . strict = ! ! strict
69-
70- if ( ! parser . strict ) {
71- parser . reservedWords = reservedWordsRegExp
72- }
73- }
74-
50+ const parser = Parser . create ( code , options )
7551 const result = parser . parse ( )
7652
7753 result . inModule = parser . inModule
@@ -81,6 +57,36 @@ function init() {
8157 }
8258 }
8359
60+ function create ( code , options ) {
61+ options = Parser . createOptions ( options )
62+
63+ const { strict } = options
64+ const parser = new AcornParser ( options , code )
65+
66+ acornParserBigInt . enable ( parser )
67+ acornParserClassFields . enable ( parser )
68+ acornParserErrorMessages . enable ( parser )
69+ acornParserFirstAwaitOutsideFunction . enable ( parser )
70+ acornParserFirstReturnOutsideFunction . enable ( parser )
71+ acornParserFunctionParamsStart . enable ( parser )
72+ acornParserHTMLComment . enable ( parser )
73+ acornParserImport . enable ( parser )
74+ acornParserNumericSeparator . enable ( parser )
75+ acornParserRaw . enable ( parser )
76+ acornParserTolerance . enable ( parser )
77+ acornParserTopLevel . enable ( parser )
78+
79+ if ( strict !== void 0 ) {
80+ parser . strict = ! ! strict
81+
82+ if ( ! parser . strict ) {
83+ parser . reservedWords = reservedWordsRegExp
84+ }
85+ }
86+
87+ return parser
88+ }
89+
8490 function createOptions ( value ) {
8591 const options = defaults ( { } , value , Parser . defaultOptions )
8692
0 commit comments