File tree Expand file tree Collapse file tree
packages/babel-parser/src/plugins/typescript Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2379,6 +2379,8 @@ export default (superClass: Class<Parser>): Class<Parser> =>
23792379 member : any ,
23802380 state : N . ParseClassMemberState ,
23812381 ) : void {
2382+ const modified = { } ;
2383+
23822384 const invalidModifersForStaticBlocks = [
23832385 "declare" ,
23842386 "private" ,
@@ -2389,20 +2391,32 @@ export default (superClass: Class<Parser>): Class<Parser> =>
23892391 "readonly" ,
23902392 ] ;
23912393 this . tsParseModifiers (
2392- member ,
2394+ modified ,
23932395 invalidModifersForStaticBlocks . concat ( [ "static" ] ) ,
23942396 ) ;
23952397
2398+ for ( const modifier of Object . keys ( modified ) ) {
2399+ if ( modifier === "accessibility" ) {
2400+ member . accessibility = modified [ modifier ] ;
2401+ } else if ( modifier !== "static" ) {
2402+ member [ modifier ] = true ;
2403+ }
2404+ }
2405+
23962406 const callParseClassMemberWithIsStatic = ( ) => {
2397- const isStatic = ! ! member . static ;
2398- if ( isStatic && this . eat ( tt . braceL ) ) {
2399- delete member . static ;
2407+ if ( modified . static && this . eat ( tt . braceL ) ) {
24002408 if ( this . tsHasSomeModifiers ( member , invalidModifersForStaticBlocks ) ) {
24012409 this . raise ( this . state . pos , TSErrors . StaticBlockCannotHaveModifier ) ;
24022410 }
24032411 this . parseClassStaticBlock ( classBody , ( ( member : any ) : N . StaticBlock ) ) ;
24042412 } else {
2405- this . parseClassMemberWithIsStatic ( classBody , member , state , isStatic ) ;
2413+ member . static = modified . static ;
2414+ this . parseClassMemberWithIsStatic (
2415+ classBody ,
2416+ member ,
2417+ state ,
2418+ ! ! member . static ,
2419+ ) ;
24062420 }
24072421 } ;
24082422 if ( member . declare ) {
You can’t perform that action at this time.
0 commit comments