question: public Destructurer ( final Tree . Pattern that , final GenerateJsVisitor gen , final Set < Declaration > directAccess , final String expvar , boolean first , final boolean forAssert ) { this . gen = gen ; jsw = gen == null ? null : gen . out ; names = gen == null ? null : gen . getNames ( ) ; this . directAccess = directAccess ; this . expvar = expvar ; this . first = first ; this . forAssert = forAssert ; that . visit ( this ) ; if ( jsw != null && ! attribs . isEmpty ( ) ) { for ( Value attr : attribs ) { jsw . write ( ";" , names . self ( ( TypeDeclaration ) attr . getContainer ( ) ) , "." , names . name ( attr ) , "=" , names . name ( attr ) ) ; } } }
target:  Generate the code for the specified pattern. If null is passed instead of a generator, no code is output but the patterns are still visited and their declarations gathered.