index.js
function merge(oldMap, newMap) {
  if (!oldMap) return newMap
  if (!newMap) return oldMap

  var oldMapConsumer = new SourceMapConsumer(oldMap)
  var newMapConsumer = new SourceMapConsumer(newMap)
  var mergedMapGenerator = new SourceMapGenerator()

  // iterate on new map and overwrite original position of new map with one of old map
  newMapConsumer.eachMapping(function(m) {
    // pass when `originalLine` is null.
    // It occurs in case that the node does not have origin in original code.
    if (m.originalLine == null) return

    var origPosInOldMap = oldMapConsumer.originalPositionFor({
      line: m.originalLine,
      column: m.originalColumn
    })

    if (origPosInOldMap.source == null) return

    mergedMapGenerator.addMapping({
      original: {
        line: origPosInOldMap.line,
        column: origPosInOldMap.column
      },
      generated: {
        line: m.generatedLine,
        column: m.generatedColumn
      },
      source: origPosInOldMap.source,
      name: origPosInOldMap.name
    })
  })

  var consumers = [oldMapConsumer, newMapConsumer]
  consumers.forEach(function(consumer) {
    consumer.sources.forEach(function(sourceFile) {
      mergedMapGenerator._sources.add(sourceFile)
      var sourceContent = consumer.sourceContentFor(sourceFile)
      if (sourceContent != null) {
        mergedMapGenerator.setSourceContent(sourceFile, sourceContent)
      }
    })
  })

  mergedMapGenerator._sourceRoot = oldMap.sourceRoot
  mergedMapGenerator._file = oldMap.file

  return JSON.parse(mergedMapGenerator.toString())
}
function merge(oldMap, newMap) {
  if (!oldMap) return newMap
  if (!newMap) return oldMap

  var oldMapConsumer = new SourceMapConsumer(oldMap)
  var newMapConsumer = new SourceMapConsumer(newMap)
  var mergedMapGenerator = new SourceMapGenerator()

  // iterate on new map and overwrite original position of new map with one of old map
  newMapConsumer.eachMapping(function(m) {
    // pass when `originalLine` is null.
    // It occurs in case that the node does not have origin in original code.
    if (m.originalLine == null) return

    var origPosInOldMap = oldMapConsumer.originalPositionFor({
      line: m.originalLine,
      column: m.originalColumn
    })

    if (origPosInOldMap.source == null) return

    mergedMapGenerator.addMapping({
      original: {
        line: origPosInOldMap.line,
        column: origPosInOldMap.column
      },
      generated: {
        line: m.generatedLine,
        column: m.generatedColumn
      },
      source: origPosInOldMap.source,
      name: origPosInOldMap.name
    })
  })

  var consumers = [oldMapConsumer, newMapConsumer]
  consumers.forEach(function(consumer) {
    consumer.sources.forEach(function(sourceFile) {
      mergedMapGenerator._sources.add(sourceFile)
      var sourceContent = consumer.sourceContentFor(sourceFile)
      if (sourceContent != null) {
        mergedMapGenerator.setSourceContent(sourceFile, sourceContent)
      }
    })
  })

  mergedMapGenerator._sourceRoot = oldMap.sourceRoot
  mergedMapGenerator._file = oldMap.file

  return JSON.parse(mergedMapGenerator.toString())
}
function merge ( oldMap , newMap ) { if ( ! oldMap ) return newMap if ( ! newMap ) return oldMap var oldMapConsumer = new SourceMapConsumer ( oldMap ) var newMapConsumer = new SourceMapConsumer ( newMap ) var mergedMapGenerator = new SourceMapGenerator ( ) // iterate on new map and overwrite original position of new map with one of old map newMapConsumer . eachMapping ( function ( m ) { // pass when `originalLine` is null. // It occurs in case that the node does not have origin in original code. if ( m . originalLine == null ) return var origPosInOldMap = oldMapConsumer . originalPositionFor ( { line : m . originalLine , column : m . originalColumn } ) if ( origPosInOldMap . source == null ) return mergedMapGenerator . addMapping ( { original : { line : origPosInOldMap . line , column : origPosInOldMap . column } , generated : { line : m . generatedLine , column : m . generatedColumn } , source : origPosInOldMap . source , name : origPosInOldMap . name } ) } ) var consumers = [ oldMapConsumer , newMapConsumer ] consumers . forEach ( function ( consumer ) { consumer . sources . forEach ( function ( sourceFile ) { mergedMapGenerator . _sources . add ( sourceFile ) var sourceContent = consumer . sourceContentFor ( sourceFile ) if ( sourceContent != null ) { mergedMapGenerator . setSourceContent ( sourceFile , sourceContent ) } } ) } ) mergedMapGenerator . _sourceRoot = oldMap . sourceRoot mergedMapGenerator . _file = oldMap . file return JSON . parse ( mergedMapGenerator . toString ( ) ) }
Merge old source map and new source map and return merged.
If old or new source map value is falsy, return another one as it is.

@param {object|string} [oldMap] old source map object
@param {object|string} [newmap] new source map object
@return {object|undefined} merged source map object, or undefined when both old and new source map are undefined
Merge old source map and new source map and return merged . If old or new source map value is falsy return another one as it is .