public JsTypeLinker(TreeLogger logger, JsAbstractTextTransformer textTransformer,
List<NamedRange> typeRanges, NamedRange programTypeRange,
MinimalRebuildCache minimalRebuildCache, JTypeOracle typeOracle) {
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(),