super(textTransformer);
this.logger = logger;
this.statementRangesExtractor = new StatementRangesExtractor(statementRanges);
this.jsSourceMapExtractor = sourceInfoMap.createExtractor();
this.typeRanges = typeRanges;
this.headerRange = new NamedRange(HEADER_NAME, 0, programTypeRange.getStartPosition(), 0,
programTypeRange.getStartLineNumber());
this.footerRange = new NamedRange(FOOTER_NAME, programTypeRange.getEndPosition(), js.length(),
programTypeRange.getEndLineNumber(), sourceInfoMap.getLines());
this.minimalRebuildCache = minimalRebuildCache;
this.typeOracle = typeOracle;
// Presize the jsBuilder to avoid content copying during expansion.