@@ -659,7 +659,7 @@ export function transformES2017(context: TransformationContext): (x: SourceFile
659
659
// This step isn't needed if we eventually transform this to ES5.
660
660
const originalMethod = getOriginalNode ( node , isFunctionLikeDeclaration ) ;
661
661
const emitSuperHelpers = languageVersion >= ScriptTarget . ES2015 &&
662
- resolver . getNodeCheckFlags ( node ) & ( NodeCheckFlags . MethodWithSuperPropertyAssignmentInAsync | NodeCheckFlags . MethodWithSuperPropertyAccessInAsync ) &&
662
+ ( resolver . hasNodeCheckFlag ( node , NodeCheckFlags . MethodWithSuperPropertyAssignmentInAsync ) || resolver . hasNodeCheckFlag ( node , NodeCheckFlags . MethodWithSuperPropertyAccessInAsync ) ) &&
663
663
( getFunctionFlags ( originalMethod ) & FunctionFlags . AsyncGenerator ) !== FunctionFlags . AsyncGenerator ;
664
664
665
665
if ( emitSuperHelpers ) {
@@ -675,10 +675,10 @@ export function transformES2017(context: TransformationContext): (x: SourceFile
675
675
676
676
if ( hasSuperElementAccess ) {
677
677
// Emit helpers for super element access expressions (`super[x]`).
678
- if ( resolver . getNodeCheckFlags ( node ) & NodeCheckFlags . MethodWithSuperPropertyAssignmentInAsync ) {
678
+ if ( resolver . hasNodeCheckFlag ( node , NodeCheckFlags . MethodWithSuperPropertyAssignmentInAsync ) ) {
679
679
addEmitHelper ( updated , advancedAsyncSuperHelper ) ;
680
680
}
681
- else if ( resolver . getNodeCheckFlags ( node ) & NodeCheckFlags . MethodWithSuperPropertyAccessInAsync ) {
681
+ else if ( resolver . hasNodeCheckFlag ( node , NodeCheckFlags . MethodWithSuperPropertyAccessInAsync ) ) {
682
682
addEmitHelper ( updated , asyncSuperHelper ) ;
683
683
}
684
684
}
@@ -743,7 +743,7 @@ export function transformES2017(context: TransformationContext): (x: SourceFile
743
743
const promiseConstructor = languageVersion < ScriptTarget . ES2015 ? getPromiseConstructor ( nodeType ) : undefined ;
744
744
const isArrowFunction = node . kind === SyntaxKind . ArrowFunction ;
745
745
const savedLexicalArgumentsBinding = lexicalArgumentsBinding ;
746
- const hasLexicalArguments = ( resolver . getNodeCheckFlags ( node ) & NodeCheckFlags . CaptureArguments ) !== 0 ;
746
+ const hasLexicalArguments = resolver . hasNodeCheckFlag ( node , NodeCheckFlags . CaptureArguments ) ;
747
747
const captureLexicalArguments = hasLexicalArguments && ! lexicalArgumentsBinding ;
748
748
if ( captureLexicalArguments ) {
749
749
lexicalArgumentsBinding = factory . createUniqueName ( "arguments" ) ;
@@ -816,7 +816,7 @@ export function transformES2017(context: TransformationContext): (x: SourceFile
816
816
817
817
// Minor optimization, emit `_super` helper to capture `super` access in an arrow.
818
818
// This step isn't needed if we eventually transform this to ES5.
819
- const emitSuperHelpers = languageVersion >= ScriptTarget . ES2015 && resolver . getNodeCheckFlags ( node ) & ( NodeCheckFlags . MethodWithSuperPropertyAssignmentInAsync | NodeCheckFlags . MethodWithSuperPropertyAccessInAsync ) ;
819
+ const emitSuperHelpers = languageVersion >= ScriptTarget . ES2015 && ( resolver . hasNodeCheckFlag ( node , NodeCheckFlags . MethodWithSuperPropertyAssignmentInAsync ) || resolver . hasNodeCheckFlag ( node , NodeCheckFlags . MethodWithSuperPropertyAccessInAsync ) ) ;
820
820
821
821
if ( emitSuperHelpers ) {
822
822
enableSubstitutionForAsyncMethodsWithSuper ( ) ;
@@ -836,10 +836,10 @@ export function transformES2017(context: TransformationContext): (x: SourceFile
836
836
837
837
if ( emitSuperHelpers && hasSuperElementAccess ) {
838
838
// Emit helpers for super element access expressions (`super[x]`).
839
- if ( resolver . getNodeCheckFlags ( node ) & NodeCheckFlags . MethodWithSuperPropertyAssignmentInAsync ) {
839
+ if ( resolver . hasNodeCheckFlag ( node , NodeCheckFlags . MethodWithSuperPropertyAssignmentInAsync ) ) {
840
840
addEmitHelper ( block , advancedAsyncSuperHelper ) ;
841
841
}
842
- else if ( resolver . getNodeCheckFlags ( node ) & NodeCheckFlags . MethodWithSuperPropertyAccessInAsync ) {
842
+ else if ( resolver . hasNodeCheckFlag ( node , NodeCheckFlags . MethodWithSuperPropertyAccessInAsync ) ) {
843
843
addEmitHelper ( block , asyncSuperHelper ) ;
844
844
}
845
845
}
@@ -926,7 +926,7 @@ export function transformES2017(context: TransformationContext): (x: SourceFile
926
926
// If we need to support substitutions for `super` in an async method,
927
927
// we should track it here.
928
928
if ( enabledSubstitutions & ES2017SubstitutionFlags . AsyncMethodsWithSuper && isSuperContainer ( node ) ) {
929
- const superContainerFlags = resolver . getNodeCheckFlags ( node ) & ( NodeCheckFlags . MethodWithSuperPropertyAccessInAsync | NodeCheckFlags . MethodWithSuperPropertyAssignmentInAsync ) ;
929
+ const superContainerFlags = ( resolver . hasNodeCheckFlag ( node , NodeCheckFlags . MethodWithSuperPropertyAccessInAsync ) ? NodeCheckFlags . MethodWithSuperPropertyAccessInAsync : 0 ) | ( resolver . hasNodeCheckFlag ( node , NodeCheckFlags . MethodWithSuperPropertyAssignmentInAsync ) ? NodeCheckFlags . MethodWithSuperPropertyAssignmentInAsync : 0 ) ;
930
930
if ( superContainerFlags !== enclosingSuperContainerFlags ) {
931
931
const savedEnclosingSuperContainerFlags = enclosingSuperContainerFlags ;
932
932
enclosingSuperContainerFlags = superContainerFlags ;
@@ -1058,7 +1058,7 @@ export function transformES2017(context: TransformationContext): (x: SourceFile
1058
1058
export function createSuperAccessVariableStatement ( factory : NodeFactory , resolver : EmitResolver , node : FunctionLikeDeclaration , names : Set < __String > ) {
1059
1059
// Create a variable declaration with a getter/setter (if binding) definition for each name:
1060
1060
// const _super = Object.create(null, { x: { get: () => super.x, set: (v) => super.x = v }, ... });
1061
- const hasBinding = ( resolver . getNodeCheckFlags ( node ) & NodeCheckFlags . MethodWithSuperPropertyAssignmentInAsync ) !== 0 ;
1061
+ const hasBinding = resolver . hasNodeCheckFlag ( node , NodeCheckFlags . MethodWithSuperPropertyAssignmentInAsync ) ;
1062
1062
const accessors : PropertyAssignment [ ] = [ ] ;
1063
1063
names . forEach ( ( _ , key ) => {
1064
1064
const name = unescapeLeadingUnderscores ( key ) ;
0 commit comments