| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | /*	MIT License http://www.opensource.org/licenses/mit-license.php	Author Tobias Koppers @sokra*/"use strict";const getNumberOfLines = require("./helpers").getNumberOfLines;const getUnfinishedLine = require("./helpers").getUnfinishedLine;class CodeNode {	constructor(generatedCode) {		this.generatedCode = generatedCode;	}	clone() {		return new CodeNode(this.generatedCode);	}	getGeneratedCode() {		return this.generatedCode;	}	getMappings(mappingsContext) {		const lines = getNumberOfLines(this.generatedCode);		const mapping = Array(lines+1).join(";");		if(lines > 0) {			mappingsContext.unfinishedGeneratedLine = getUnfinishedLine(this.generatedCode);			if(mappingsContext.unfinishedGeneratedLine > 0) {				return mapping + "A";			} else {				return mapping;			}		} else {			const prevUnfinished = mappingsContext.unfinishedGeneratedLine;			mappingsContext.unfinishedGeneratedLine += getUnfinishedLine(this.generatedCode);			if(prevUnfinished === 0 && mappingsContext.unfinishedGeneratedLine > 0) {				return "A";			} else {				return "";			}		}	}	addGeneratedCode(generatedCode) {		this.generatedCode += generatedCode;	}	mapGeneratedCode(fn) {		const generatedCode = fn(this.generatedCode);		return new CodeNode(generatedCode);	}	getNormalizedNodes() {		return [this];	}	merge(otherNode) {		if(otherNode instanceof CodeNode) {			this.generatedCode += otherNode.generatedCode;			return this;		}		return false;	}}module.exports = CodeNode;
 |