in loader/lib/Scanner.js [345:383]
Scanner.prototype.handleQuotedString = function(doEval) {
if(udebug.is_debug) { doEval = true; }
var inquote, value, consume, scanner;
if(doEval) {
scanner = this;
value = "";
consume = function() { value += scanner.c; };
} else {
consume = function() {};
}
assert(this.c === this.opt.fieldQuoteStart);
inquote = true;
do {
this.advance(1);
if(this.isQuote() && (this.c === this.peek())) { /**** Doubled quote */
consume(); /* CONSUME A QUOTE */
this.advance(2); /* SKIP PAST A QUOTE */
}
else if(this.c === this.opt.fieldQuoteEnd) { /**** Closing quote */
// this.advance(1); /* ADVANCE PAST CLOSING QUOTE CHAR */
inquote = false; /* TERMINATE LOOP */
}
else if(this.isEsc()) { /** Escape Sequence */
this.advance(1); /* SKIP PAST ESCAPE CHAR */
if(this.isQuote()) { // quote
consume();
this.advance(1);
}
}
else { /* Normal character */
consume();
}
} while(inquote && this.c);
return value;
};