{"remainingRequest":"/data/node_modules/babel-loader/lib/index.js!/data/node_modules/source-map/lib/source-node.js","dependencies":[{"path":"/data/node_modules/source-map/lib/source-node.js","mtime":1553611387364},{"path":"/data/.babelrc","mtime":1553611371556},{"path":"/data/node_modules/cache-loader/dist/cjs.js","mtime":1553611387012},{"path":"/data/node_modules/babel-loader/lib/index.js","mtime":1553611386992}],"contextDependencies":[],"result":["'use strict';\n\n/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n *        generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n  this.children = [];\n  this.sourceContents = {};\n  this.line = aLine == null ? null : aLine;\n  this.column = aColumn == null ? null : aColumn;\n  this.source = aSource == null ? null : aSource;\n  this.name = aName == null ? null : aName;\n  this[isSourceNode] = true;\n  if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n *        SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap = function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n  // The SourceNode we want to fill with the generated code\n  // and the SourceMap\n  var node = new SourceNode();\n\n  // All even indices of this array are one line of the generated code,\n  // while all odd indices are the newlines between two adjacent lines\n  // (since `REGEX_NEWLINE` captures its match).\n  // Processed fragments are accessed by calling `shiftNextLine`.\n  var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n  var remainingLinesIndex = 0;\n  var shiftNextLine = function shiftNextLine() {\n    var lineContents = getNextLine();\n    // The last line of a file might not have a newline.\n    var newLine = getNextLine() || \"\";\n    return lineContents + newLine;\n\n    function getNextLine() {\n      return remainingLinesIndex < remainingLines.length ? remainingLines[remainingLinesIndex++] : undefined;\n    }\n  };\n\n  // We need to remember the position of \"remainingLines\"\n  var lastGeneratedLine = 1,\n      lastGeneratedColumn = 0;\n\n  // The generate SourceNodes we need a code range.\n  // To extract it current and last mapping is used.\n  // Here we store the last mapping.\n  var lastMapping = null;\n\n  aSourceMapConsumer.eachMapping(function (mapping) {\n    if (lastMapping !== null) {\n      // We add the code from \"lastMapping\" to \"mapping\":\n      // First check if there is a new line in between.\n      if (lastGeneratedLine < mapping.generatedLine) {\n        // Associate first line with \"lastMapping\"\n        addMappingWithCode(lastMapping, shiftNextLine());\n        lastGeneratedLine++;\n        lastGeneratedColumn = 0;\n        // The remaining code is added without mapping\n      } else {\n        // There is no new line in between.\n        // Associate the code between \"lastGeneratedColumn\" and\n        // \"mapping.generatedColumn\" with \"lastMapping\"\n        var nextLine = remainingLines[remainingLinesIndex];\n        var code = nextLine.substr(0, mapping.generatedColumn - lastGeneratedColumn);\n        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - lastGeneratedColumn);\n        lastGeneratedColumn = mapping.generatedColumn;\n        addMappingWithCode(lastMapping, code);\n        // No more remaining code, continue\n        lastMapping = mapping;\n        return;\n      }\n    }\n    // We add the generated code until the first mapping\n    // to the SourceNode without any mapping.\n    // Each line is added as separate string.\n    while (lastGeneratedLine < mapping.generatedLine) {\n      node.add(shiftNextLine());\n      lastGeneratedLine++;\n    }\n    if (lastGeneratedColumn < mapping.generatedColumn) {\n      var nextLine = remainingLines[remainingLinesIndex];\n      node.add(nextLine.substr(0, mapping.generatedColumn));\n      remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n      lastGeneratedColumn = mapping.generatedColumn;\n    }\n    lastMapping = mapping;\n  }, this);\n  // We have processed all mappings.\n  if (remainingLinesIndex < remainingLines.length) {\n    if (lastMapping) {\n      // Associate the remaining code in the current line with \"lastMapping\"\n      addMappingWithCode(lastMapping, shiftNextLine());\n    }\n    // and add the remaining lines without any mapping\n    node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n  }\n\n  // Copy sourcesContent into SourceNode\n  aSourceMapConsumer.sources.forEach(function (sourceFile) {\n    var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n    if (content != null) {\n      if (aRelativePath != null) {\n        sourceFile = util.join(aRelativePath, sourceFile);\n      }\n      node.setSourceContent(sourceFile, content);\n    }\n  });\n\n  return node;\n\n  function addMappingWithCode(mapping, code) {\n    if (mapping === null || mapping.source === undefined) {\n      node.add(code);\n    } else {\n      var source = aRelativePath ? util.join(aRelativePath, mapping.source) : mapping.source;\n      node.add(new SourceNode(mapping.originalLine, mapping.originalColumn, source, code, mapping.name));\n    }\n  }\n};\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n  if (Array.isArray(aChunk)) {\n    aChunk.forEach(function (chunk) {\n      this.add(chunk);\n    }, this);\n  } else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    if (aChunk) {\n      this.children.push(aChunk);\n    }\n  } else {\n    throw new TypeError(\"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk);\n  }\n  return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n  if (Array.isArray(aChunk)) {\n    for (var i = aChunk.length - 1; i >= 0; i--) {\n      this.prepend(aChunk[i]);\n    }\n  } else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    this.children.unshift(aChunk);\n  } else {\n    throw new TypeError(\"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk);\n  }\n  return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n  var chunk;\n  for (var i = 0, len = this.children.length; i < len; i++) {\n    chunk = this.children[i];\n    if (chunk[isSourceNode]) {\n      chunk.walk(aFn);\n    } else {\n      if (chunk !== '') {\n        aFn(chunk, { source: this.source,\n          line: this.line,\n          column: this.column,\n          name: this.name });\n      }\n    }\n  }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n  var newChildren;\n  var i;\n  var len = this.children.length;\n  if (len > 0) {\n    newChildren = [];\n    for (i = 0; i < len - 1; i++) {\n      newChildren.push(this.children[i]);\n      newChildren.push(aSep);\n    }\n    newChildren.push(this.children[i]);\n    this.children = newChildren;\n  }\n  return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n  var lastChild = this.children[this.children.length - 1];\n  if (lastChild[isSourceNode]) {\n    lastChild.replaceRight(aPattern, aReplacement);\n  } else if (typeof lastChild === 'string') {\n    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n  } else {\n    this.children.push(''.replace(aPattern, aReplacement));\n  }\n  return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent = function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n  this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n};\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents = function SourceNode_walkSourceContents(aFn) {\n  for (var i = 0, len = this.children.length; i < len; i++) {\n    if (this.children[i][isSourceNode]) {\n      this.children[i].walkSourceContents(aFn);\n    }\n  }\n\n  var sources = Object.keys(this.sourceContents);\n  for (var i = 0, len = sources.length; i < len; i++) {\n    aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n  }\n};\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n  var str = \"\";\n  this.walk(function (chunk) {\n    str += chunk;\n  });\n  return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n  var generated = {\n    code: \"\",\n    line: 1,\n    column: 0\n  };\n  var map = new SourceMapGenerator(aArgs);\n  var sourceMappingActive = false;\n  var lastOriginalSource = null;\n  var lastOriginalLine = null;\n  var lastOriginalColumn = null;\n  var lastOriginalName = null;\n  this.walk(function (chunk, original) {\n    generated.code += chunk;\n    if (original.source !== null && original.line !== null && original.column !== null) {\n      if (lastOriginalSource !== original.source || lastOriginalLine !== original.line || lastOriginalColumn !== original.column || lastOriginalName !== original.name) {\n        map.addMapping({\n          source: original.source,\n          original: {\n            line: original.line,\n            column: original.column\n          },\n          generated: {\n            line: generated.line,\n            column: generated.column\n          },\n          name: original.name\n        });\n      }\n      lastOriginalSource = original.source;\n      lastOriginalLine = original.line;\n      lastOriginalColumn = original.column;\n      lastOriginalName = original.name;\n      sourceMappingActive = true;\n    } else if (sourceMappingActive) {\n      map.addMapping({\n        generated: {\n          line: generated.line,\n          column: generated.column\n        }\n      });\n      lastOriginalSource = null;\n      sourceMappingActive = false;\n    }\n    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n        generated.line++;\n        generated.column = 0;\n        // Mappings end at eol\n        if (idx + 1 === length) {\n          lastOriginalSource = null;\n          sourceMappingActive = false;\n        } else if (sourceMappingActive) {\n          map.addMapping({\n            source: original.source,\n            original: {\n              line: original.line,\n              column: original.column\n            },\n            generated: {\n              line: generated.line,\n              column: generated.column\n            },\n            name: original.name\n          });\n        }\n      } else {\n        generated.column++;\n      }\n    }\n  });\n  this.walkSourceContents(function (sourceFile, sourceContent) {\n    map.setSourceContent(sourceFile, sourceContent);\n  });\n\n  return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;",{"version":3,"sources":["node_modules/source-map/lib/source-node.js"],"names":["SourceMapGenerator","require","util","REGEX_NEWLINE","NEWLINE_CODE","isSourceNode","SourceNode","aLine","aColumn","aSource","aChunks","aName","children","sourceContents","line","column","source","name","add","fromStringWithSourceMap","SourceNode_fromStringWithSourceMap","aGeneratedCode","aSourceMapConsumer","aRelativePath","node","remainingLines","split","remainingLinesIndex","shiftNextLine","lineContents","getNextLine","newLine","length","undefined","lastGeneratedLine","lastGeneratedColumn","lastMapping","eachMapping","mapping","generatedLine","addMappingWithCode","nextLine","code","substr","generatedColumn","splice","join","sources","forEach","sourceFile","content","sourceContentFor","setSourceContent","originalLine","originalColumn","prototype","SourceNode_add","aChunk","Array","isArray","chunk","push","TypeError","prepend","SourceNode_prepend","i","unshift","walk","SourceNode_walk","aFn","len","SourceNode_join","aSep","newChildren","replaceRight","SourceNode_replaceRight","aPattern","aReplacement","lastChild","replace","SourceNode_setSourceContent","aSourceFile","aSourceContent","toSetString","walkSourceContents","SourceNode_walkSourceContents","Object","keys","fromSetString","toString","SourceNode_toString","str","toStringWithSourceMap","SourceNode_toStringWithSourceMap","aArgs","generated","map","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","original","addMapping","idx","charCodeAt","sourceContent","exports"],"mappings":"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","file":"source-node.js","sourceRoot":"/data","sourcesContent":["/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n *        generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n  this.children = [];\n  this.sourceContents = {};\n  this.line = aLine == null ? null : aLine;\n  this.column = aColumn == null ? null : aColumn;\n  this.source = aSource == null ? null : aSource;\n  this.name = aName == null ? null : aName;\n  this[isSourceNode] = true;\n  if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n *        SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n    // The SourceNode we want to fill with the generated code\n    // and the SourceMap\n    var node = new SourceNode();\n\n    // All even indices of this array are one line of the generated code,\n    // while all odd indices are the newlines between two adjacent lines\n    // (since `REGEX_NEWLINE` captures its match).\n    // Processed fragments are accessed by calling `shiftNextLine`.\n    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n    var remainingLinesIndex = 0;\n    var shiftNextLine = function() {\n      var lineContents = getNextLine();\n      // The last line of a file might not have a newline.\n      var newLine = getNextLine() || \"\";\n      return lineContents + newLine;\n\n      function getNextLine() {\n        return remainingLinesIndex < remainingLines.length ?\n            remainingLines[remainingLinesIndex++] : undefined;\n      }\n    };\n\n    // We need to remember the position of \"remainingLines\"\n    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n    // The generate SourceNodes we need a code range.\n    // To extract it current and last mapping is used.\n    // Here we store the last mapping.\n    var lastMapping = null;\n\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      if (lastMapping !== null) {\n        // We add the code from \"lastMapping\" to \"mapping\":\n        // First check if there is a new line in between.\n        if (lastGeneratedLine < mapping.generatedLine) {\n          // Associate first line with \"lastMapping\"\n          addMappingWithCode(lastMapping, shiftNextLine());\n          lastGeneratedLine++;\n          lastGeneratedColumn = 0;\n          // The remaining code is added without mapping\n        } else {\n          // There is no new line in between.\n          // Associate the code between \"lastGeneratedColumn\" and\n          // \"mapping.generatedColumn\" with \"lastMapping\"\n          var nextLine = remainingLines[remainingLinesIndex];\n          var code = nextLine.substr(0, mapping.generatedColumn -\n                                        lastGeneratedColumn);\n          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n                                              lastGeneratedColumn);\n          lastGeneratedColumn = mapping.generatedColumn;\n          addMappingWithCode(lastMapping, code);\n          // No more remaining code, continue\n          lastMapping = mapping;\n          return;\n        }\n      }\n      // We add the generated code until the first mapping\n      // to the SourceNode without any mapping.\n      // Each line is added as separate string.\n      while (lastGeneratedLine < mapping.generatedLine) {\n        node.add(shiftNextLine());\n        lastGeneratedLine++;\n      }\n      if (lastGeneratedColumn < mapping.generatedColumn) {\n        var nextLine = remainingLines[remainingLinesIndex];\n        node.add(nextLine.substr(0, mapping.generatedColumn));\n        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n        lastGeneratedColumn = mapping.generatedColumn;\n      }\n      lastMapping = mapping;\n    }, this);\n    // We have processed all mappings.\n    if (remainingLinesIndex < remainingLines.length) {\n      if (lastMapping) {\n        // Associate the remaining code in the current line with \"lastMapping\"\n        addMappingWithCode(lastMapping, shiftNextLine());\n      }\n      // and add the remaining lines without any mapping\n      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n    }\n\n    // Copy sourcesContent into SourceNode\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aRelativePath != null) {\n          sourceFile = util.join(aRelativePath, sourceFile);\n        }\n        node.setSourceContent(sourceFile, content);\n      }\n    });\n\n    return node;\n\n    function addMappingWithCode(mapping, code) {\n      if (mapping === null || mapping.source === undefined) {\n        node.add(code);\n      } else {\n        var source = aRelativePath\n          ? util.join(aRelativePath, mapping.source)\n          : mapping.source;\n        node.add(new SourceNode(mapping.originalLine,\n                                mapping.originalColumn,\n                                source,\n                                code,\n                                mapping.name));\n      }\n    }\n  };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n  if (Array.isArray(aChunk)) {\n    aChunk.forEach(function (chunk) {\n      this.add(chunk);\n    }, this);\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    if (aChunk) {\n      this.children.push(aChunk);\n    }\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n  if (Array.isArray(aChunk)) {\n    for (var i = aChunk.length-1; i >= 0; i--) {\n      this.prepend(aChunk[i]);\n    }\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    this.children.unshift(aChunk);\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n  var chunk;\n  for (var i = 0, len = this.children.length; i < len; i++) {\n    chunk = this.children[i];\n    if (chunk[isSourceNode]) {\n      chunk.walk(aFn);\n    }\n    else {\n      if (chunk !== '') {\n        aFn(chunk, { source: this.source,\n                     line: this.line,\n                     column: this.column,\n                     name: this.name });\n      }\n    }\n  }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n  var newChildren;\n  var i;\n  var len = this.children.length;\n  if (len > 0) {\n    newChildren = [];\n    for (i = 0; i < len-1; i++) {\n      newChildren.push(this.children[i]);\n      newChildren.push(aSep);\n    }\n    newChildren.push(this.children[i]);\n    this.children = newChildren;\n  }\n  return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n  var lastChild = this.children[this.children.length - 1];\n  if (lastChild[isSourceNode]) {\n    lastChild.replaceRight(aPattern, aReplacement);\n  }\n  else if (typeof lastChild === 'string') {\n    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n  }\n  else {\n    this.children.push(''.replace(aPattern, aReplacement));\n  }\n  return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n  };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n  function SourceNode_walkSourceContents(aFn) {\n    for (var i = 0, len = this.children.length; i < len; i++) {\n      if (this.children[i][isSourceNode]) {\n        this.children[i].walkSourceContents(aFn);\n      }\n    }\n\n    var sources = Object.keys(this.sourceContents);\n    for (var i = 0, len = sources.length; i < len; i++) {\n      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n    }\n  };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n  var str = \"\";\n  this.walk(function (chunk) {\n    str += chunk;\n  });\n  return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n  var generated = {\n    code: \"\",\n    line: 1,\n    column: 0\n  };\n  var map = new SourceMapGenerator(aArgs);\n  var sourceMappingActive = false;\n  var lastOriginalSource = null;\n  var lastOriginalLine = null;\n  var lastOriginalColumn = null;\n  var lastOriginalName = null;\n  this.walk(function (chunk, original) {\n    generated.code += chunk;\n    if (original.source !== null\n        && original.line !== null\n        && original.column !== null) {\n      if(lastOriginalSource !== original.source\n         || lastOriginalLine !== original.line\n         || lastOriginalColumn !== original.column\n         || lastOriginalName !== original.name) {\n        map.addMapping({\n          source: original.source,\n          original: {\n            line: original.line,\n            column: original.column\n          },\n          generated: {\n            line: generated.line,\n            column: generated.column\n          },\n          name: original.name\n        });\n      }\n      lastOriginalSource = original.source;\n      lastOriginalLine = original.line;\n      lastOriginalColumn = original.column;\n      lastOriginalName = original.name;\n      sourceMappingActive = true;\n    } else if (sourceMappingActive) {\n      map.addMapping({\n        generated: {\n          line: generated.line,\n          column: generated.column\n        }\n      });\n      lastOriginalSource = null;\n      sourceMappingActive = false;\n    }\n    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n        generated.line++;\n        generated.column = 0;\n        // Mappings end at eol\n        if (idx + 1 === length) {\n          lastOriginalSource = null;\n          sourceMappingActive = false;\n        } else if (sourceMappingActive) {\n          map.addMapping({\n            source: original.source,\n            original: {\n              line: original.line,\n              column: original.column\n            },\n            generated: {\n              line: generated.line,\n              column: generated.column\n            },\n            name: original.name\n          });\n        }\n      } else {\n        generated.column++;\n      }\n    }\n  });\n  this.walkSourceContents(function (sourceFile, sourceContent) {\n    map.setSourceContent(sourceFile, sourceContent);\n  });\n\n  return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n"]}]}