src/js/util.js
function parseString(endQuote) {
    chars.push('"');
    i++;
    var c = curr();
    while (i < jsString.length && c !== endQuote) {
      if (c === '"' && prev() !== '\\') {
        // unescaped double quote, escape it
        chars.push('\\"');
      }
      else if (controlChars.hasOwnProperty(c)) {
        // replace unescaped control characters with escaped ones
        chars.push(controlChars[c])
      }
      else if (c === '\\') {
        // remove the escape character when followed by a single quote ', not needed
        i++;
        c = curr();
        if (c !== '\'') {
          chars.push('\\');
        }
        chars.push(c);
      }
      else {
        // regular character
        chars.push(c);
      }

      i++;
      c = curr();
    }
    if (c === endQuote) {
      chars.push('"');
      i++;
    }
  }
function parseString(endQuote) {
    chars.push('"');
    i++;
    var c = curr();
    while (i < jsString.length && c !== endQuote) {
      if (c === '"' && prev() !== '\\') {
        // unescaped double quote, escape it
        chars.push('\\"');
      }
      else if (controlChars.hasOwnProperty(c)) {
        // replace unescaped control characters with escaped ones
        chars.push(controlChars[c])
      }
      else if (c === '\\') {
        // remove the escape character when followed by a single quote ', not needed
        i++;
        c = curr();
        if (c !== '\'') {
          chars.push('\\');
        }
        chars.push(c);
      }
      else {
        // regular character
        chars.push(c);
      }

      i++;
      c = curr();
    }
    if (c === endQuote) {
      chars.push('"');
      i++;
    }
  }
function parseString ( endQuote ) { chars . push ( '"' ) ; i ++ ; var c = curr ( ) ; while ( i < jsString . length && c !== endQuote ) { if ( c === '"' && prev ( ) !== '\\' ) { // unescaped double quote, escape it chars . push ( '\\"' ) ; } else if ( controlChars . hasOwnProperty ( c ) ) { // replace unescaped control characters with escaped ones chars . push ( controlChars [ c ] ) } else if ( c === '\\' ) { // remove the escape character when followed by a single quote ', not needed i ++ ; c = curr ( ) ; if ( c !== '\'' ) { chars . push ( '\\' ) ; } chars . push ( c ) ; } else { // regular character chars . push ( c ) ; } i ++ ; c = curr ( ) ; } if ( c === endQuote ) { chars . push ( '"' ) ; i ++ ; } }
parse single or double quoted string
parse single or double quoted string