| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 | 
							- /*
 
- 	MIT License http://www.opensource.org/licenses/mit-license.php
 
- 	Author Tobias Koppers @sokra
 
- */
 
- "use strict";
 
- const SourceNode = require("source-map").SourceNode;
 
- const SourceListMap = require("source-list-map").SourceListMap;
 
- const Source = require("./Source");
 
- class ConcatSource extends Source {
 
- 	constructor() {
 
- 		super();
 
- 		this.children = [];
 
- 		for(var i = 0; i < arguments.length; i++) {
 
- 			var item = arguments[i];
 
- 			if(item instanceof ConcatSource) {
 
- 				var children = item.children;
 
- 				for(var j = 0; j < children.length; j++)
 
- 					this.children.push(children[j]);
 
- 			} else {
 
- 				this.children.push(item);
 
- 			}
 
- 		}
 
- 	}
 
- 	add(item) {
 
- 		if(item instanceof ConcatSource) {
 
- 			var children = item.children;
 
- 			for(var j = 0; j < children.length; j++)
 
- 				this.children.push(children[j]);
 
- 		} else {
 
- 			this.children.push(item);
 
- 		}
 
- 	}
 
- 	source() {
 
- 		let source = "";
 
- 		const children = this.children;
 
- 		for(let i = 0; i < children.length; i++) {
 
- 			const child = children[i];
 
- 			source += typeof child === "string" ? child : child.source();
 
- 		}
 
- 		return source;
 
- 	}
 
- 	size() {
 
- 		let size = 0;
 
- 		const children = this.children;
 
- 		for(let i = 0; i < children.length; i++) {
 
- 			const child = children[i];
 
- 			size += typeof child === "string" ? child.length : child.size();
 
- 		}
 
- 		return size;
 
- 	}
 
- 	node(options) {
 
- 		const node = new SourceNode(null, null, null, this.children.map(function(item) {
 
- 			return typeof item === "string" ? item : item.node(options);
 
- 		}));
 
- 		return node;
 
- 	}
 
- 	listMap(options) {
 
- 		const map = new SourceListMap();
 
- 		var children = this.children;
 
- 		for(var i = 0; i < children.length; i++) {
 
- 			var item = children[i];
 
- 			if(typeof item === "string")
 
- 				map.add(item);
 
- 			else
 
- 				map.add(item.listMap(options));
 
- 		}
 
- 		return map;
 
- 	}
 
- 	updateHash(hash) {
 
- 		var children = this.children;
 
- 		for(var i = 0; i < children.length; i++) {
 
- 			var item = children[i];
 
- 			if(typeof item === "string")
 
- 				hash.update(item);
 
- 			else
 
- 				item.updateHash(hash);
 
- 		}
 
- 	}
 
- }
 
- require("./SourceAndMapMixin")(ConcatSource.prototype);
 
- module.exports = ConcatSource;
 
 
  |