code: function extendExportSymbols(target, source, lookupTable, exportNode) {
              for (var id in source) {
                  if (id !== "default" && !target[id]) {
                      target[id] = source[id];
                      if (lookupTable && exportNode) {
                          lookupTable[id] = {
                              specifierText: ts.getTextOfNode(exportNode.moduleSpecifier)
                          };
                      }
                  }
                  else if (lookupTable && exportNode && id !== "default" && target[id] && resolveSymbol(target[id]) !== resolveSymbol(source[id])) {
                      if (!lookupTable[id].exportsWithDuplicate) {
                          lookupTable[id].exportsWithDuplicate = [exportNode];
                      }
                      else {
                          lookupTable[id].exportsWithDuplicate.push(exportNode);
                      }
                  }
              }
          }
docs: Extends one symbol table with another while collecting information on name collisions for error message generation into the `lookupTable` argument
  Not passing `lookupTable` and `exportNode` disables this collection, and just extends the tables