@@ -77,6 +77,7 @@ impl<I: Tokens> Parser<I> {
7777 let in_declare = false ;
7878 let ctx = Context {
7979 in_declare,
80+ top_level : true ,
8081 ..input. ctx ( )
8182 } ;
8283 input. set_ctx ( ctx) ;
@@ -100,6 +101,7 @@ impl<I: Tokens> Parser<I> {
100101
101102 let ctx = Context {
102103 module : false ,
104+ top_level : true ,
103105 ..self . ctx ( )
104106 } ;
105107 self . set_ctx ( ctx) ;
@@ -108,7 +110,7 @@ impl<I: Tokens> Parser<I> {
108110
109111 let shebang = self . parse_shebang ( ) ?;
110112
111- self . parse_block_body ( true , true , None ) . map ( |body| Script {
113+ self . parse_block_body ( true , None ) . map ( |body| Script {
112114 span : span ! ( self , start) ,
113115 body,
114116 shebang,
@@ -124,6 +126,7 @@ impl<I: Tokens> Parser<I> {
124126 let ctx = Context {
125127 module : true ,
126128 strict : false ,
129+ top_level : true ,
127130 ..self . ctx ( )
128131 } ;
129132 // Module code is always in strict mode
@@ -132,7 +135,7 @@ impl<I: Tokens> Parser<I> {
132135 let start = cur_pos ! ( self ) ;
133136 let shebang = self . parse_shebang ( ) ?;
134137
135- self . parse_block_body ( true , true , None ) . map ( |body| Module {
138+ self . parse_block_body ( true , None ) . map ( |body| Module {
136139 span : span ! ( self , start) ,
137140 body,
138141 shebang,
@@ -149,10 +152,11 @@ impl<I: Tokens> Parser<I> {
149152 let shebang = self . parse_shebang ( ) ?;
150153 let ctx = Context {
151154 can_be_module : true ,
155+ top_level : true ,
152156 ..self . ctx ( )
153157 } ;
154158
155- let body: Vec < ModuleItem > = self . with_ctx ( ctx) . parse_block_body ( true , true , None ) ?;
159+ let body: Vec < ModuleItem > = self . with_ctx ( ctx) . parse_block_body ( true , None ) ?;
156160 let has_module_item = self . state . found_module_item
157161 || body
158162 . iter ( )
@@ -162,6 +166,7 @@ impl<I: Tokens> Parser<I> {
162166 module : true ,
163167 can_be_module : true ,
164168 strict : true ,
169+ top_level : true ,
165170 ..self . ctx ( )
166171 } ;
167172 // Emit buffered strict mode / module code violations
@@ -195,6 +200,7 @@ impl<I: Tokens> Parser<I> {
195200 module : true ,
196201 can_be_module : true ,
197202 strict : true ,
203+ top_level : true ,
198204 ..self . ctx ( )
199205 } ;
200206 // Module code is always in strict mode
@@ -203,7 +209,7 @@ impl<I: Tokens> Parser<I> {
203209 let start = cur_pos ! ( self ) ;
204210 let shebang = self . parse_shebang ( ) ?;
205211
206- self . parse_block_body ( true , true , None ) . map ( |body| Module {
212+ self . parse_block_body ( true , None ) . map ( |body| Module {
207213 span : span ! ( self , start) ,
208214 body,
209215 shebang,
0 commit comments