@@ -58,6 +58,7 @@ import {
5858 ConstructorDeclaration ,
5959 ConstructorTypeNode ,
6060 ConstructSignatureDeclaration ,
61+ containsObjectRestOrSpread ,
6162 ContinueStatement ,
6263 createBaseNodeFactory ,
6364 createNodeConverters ,
@@ -114,7 +115,6 @@ import {
114115 getAllUnscopedEmitHelpers ,
115116 getBuildInfo ,
116117 getCommentRange ,
117- getElementsOfBindingOrAssignmentPattern ,
118118 getEmitFlags ,
119119 getIdentifierTypeArguments ,
120120 getJSDocTypeAliasName ,
@@ -124,7 +124,6 @@ import {
124124 getSourceMapRange ,
125125 getSyntheticLeadingComments ,
126126 getSyntheticTrailingComments ,
127- getTargetOfBindingOrAssignmentElement ,
128127 getTextOfIdentifierOrLiteral ,
129128 hasInvalidEscape ,
130129 HasModifiers ,
@@ -150,7 +149,6 @@ import {
150149 isArray ,
151150 isArrayLiteralExpression ,
152151 isArrowFunction ,
153- isAssignmentPattern ,
154152 isBinaryExpression ,
155153 isCallChain ,
156154 isClassDeclaration ,
@@ -3326,24 +3324,7 @@ export function createNodeFactory(flags: NodeFactoryFlags, baseFactory: BaseNode
33263324 }
33273325
33283326 function propagateAssignmentPatternFlags ( node : AssignmentPattern ) : TransformFlags {
3329- if ( node . transformFlags & TransformFlags . ContainsObjectRestOrSpread ) return TransformFlags . ContainsObjectRestOrSpread ;
3330- if ( node . transformFlags & TransformFlags . ContainsES2018 ) {
3331- // check for nested spread assignments, otherwise '{ x: { a, ...b } = foo } = c'
3332- // will not be correctly interpreted by the ES2018 transformer
3333- for ( const element of getElementsOfBindingOrAssignmentPattern ( node ) ) {
3334- const target = getTargetOfBindingOrAssignmentElement ( element ) ;
3335- if ( target && isAssignmentPattern ( target ) ) {
3336- if ( target . transformFlags & TransformFlags . ContainsObjectRestOrSpread ) {
3337- return TransformFlags . ContainsObjectRestOrSpread ;
3338- }
3339- if ( target . transformFlags & TransformFlags . ContainsES2018 ) {
3340- const flags = propagateAssignmentPatternFlags ( target ) ;
3341- if ( flags ) return flags ;
3342- }
3343- }
3344- }
3345- }
3346- return TransformFlags . None ;
3327+ return containsObjectRestOrSpread ( node ) ? TransformFlags . ContainsObjectRestOrSpread : TransformFlags . None ;
33473328 }
33483329
33493330 // @api
0 commit comments