--- /dev/null
+// Generated by CoffeeScript 1.10.0
+(function() {
+ var LineMap, SourceMap;
+
+ LineMap = (function() {
+ function LineMap(line1) {
+ this.line = line1;
+ this.columns = [];
+ }
+
+ LineMap.prototype.add = function(column, arg, options) {
+ var sourceColumn, sourceLine;
+ sourceLine = arg[0], sourceColumn = arg[1];
+ if (options == null) {
+ options = {};
+ }
+ if (this.columns[column] && options.noReplace) {
+ return;
+ }
+ return this.columns[column] = {
+ line: this.line,
+ column: column,
+ sourceLine: sourceLine,
+ sourceColumn: sourceColumn
+ };
+ };
+
+ LineMap.prototype.sourceLocation = function(column) {
+ var mapping;
+ while (!((mapping = this.columns[column]) || (column <= 0))) {
+ column--;
+ }
+ return mapping && [mapping.sourceLine, mapping.sourceColumn];
+ };
+
+ return LineMap;
+
+ })();
+
+ SourceMap = (function() {
+ var BASE64_CHARS, VLQ_CONTINUATION_BIT, VLQ_SHIFT, VLQ_VALUE_MASK;
+
+ function SourceMap() {
+ this.lines = [];
+ }
+
+ SourceMap.prototype.add = function(sourceLocation, generatedLocation, options) {
+ var base, column, line, lineMap;
+ if (options == null) {
+ options = {};
+ }
+ line = generatedLocation[0], column = generatedLocation[1];
+ lineMap = ((base = this.lines)[line] || (base[line] = new LineMap(line)));
+ return lineMap.add(column, sourceLocation, options);
+ };
+
+ SourceMap.prototype.sourceLocation = function(arg) {
+ var column, line, lineMap;
+ line = arg[0], column = arg[1];
+ while (!((lineMap = this.lines[line]) || (line <= 0))) {
+ line--;
+ }
+ return lineMap && lineMap.sourceLocation(column);
+ };
+
+ SourceMap.prototype.generate = function(options, code) {
+ var buffer, i, j, lastColumn, lastSourceColumn, lastSourceLine, len, len1, lineMap, lineNumber, mapping, needComma, ref, ref1, v3, writingline;
+ if (options == null) {
+ options = {};
+ }
+ if (code == null) {
+ code = null;
+ }
+ writingline = 0;
+ lastColumn = 0;
+ lastSourceLine = 0;
+ lastSourceColumn = 0;
+ needComma = false;
+ buffer = "";
+ ref = this.lines;
+ for (lineNumber = i = 0, len = ref.length; i < len; lineNumber = ++i) {
+ lineMap = ref[lineNumber];
+ if (lineMap) {
+ ref1 = lineMap.columns;
+ for (j = 0, len1 = ref1.length; j < len1; j++) {
+ mapping = ref1[j];
+ if (!(mapping)) {
+ continue;
+ }
+ while (writingline < mapping.line) {
+ lastColumn = 0;
+ needComma = false;
+ buffer += ";";
+ writingline++;
+ }
+ if (needComma) {
+ buffer += ",";
+ needComma = false;
+ }
+ buffer += this.encodeVlq(mapping.column - lastColumn);
+ lastColumn = mapping.column;
+ buffer += this.encodeVlq(0);
+ buffer += this.encodeVlq(mapping.sourceLine - lastSourceLine);
+ lastSourceLine = mapping.sourceLine;
+ buffer += this.encodeVlq(mapping.sourceColumn - lastSourceColumn);
+ lastSourceColumn = mapping.sourceColumn;
+ needComma = true;
+ }
+ }
+ }
+ v3 = {
+ version: 3,
+ file: options.generatedFile || '',
+ sourceRoot: options.sourceRoot || '',
+ sources: options.sourceFiles || [''],
+ names: [],
+ mappings: buffer
+ };
+ if (options.inline) {
+ v3.sourcesContent = [code];
+ }
+ return JSON.stringify(v3, null, 2);
+ };
+
+ VLQ_SHIFT = 5;
+
+ VLQ_CONTINUATION_BIT = 1 << VLQ_SHIFT;
+
+ VLQ_VALUE_MASK = VLQ_CONTINUATION_BIT - 1;
+
+ SourceMap.prototype.encodeVlq = function(value) {
+ var answer, nextChunk, signBit, valueToEncode;
+ answer = '';
+ signBit = value < 0 ? 1 : 0;
+ valueToEncode = (Math.abs(value) << 1) + signBit;
+ while (valueToEncode || !answer) {
+ nextChunk = valueToEncode & VLQ_VALUE_MASK;
+ valueToEncode = valueToEncode >> VLQ_SHIFT;
+ if (valueToEncode) {
+ nextChunk |= VLQ_CONTINUATION_BIT;
+ }
+ answer += this.encodeBase64(nextChunk);
+ }
+ return answer;
+ };
+
+ BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+
+ SourceMap.prototype.encodeBase64 = function(value) {
+ return BASE64_CHARS[value] || (function() {
+ throw new Error("Cannot Base64 encode value: " + value);
+ })();
+ };
+
+ return SourceMap;
+
+ })();
+
+ module.exports = SourceMap;
+
+}).call(this);