function AdvanceStringIndex(string, index, unicode) {
  var increment = 1;
  if (unicode) {
    var first = %_StringCharCodeAt(string, index);
    if (first >= 0xD800 && first <= 0xDBFF && string.length > index + 1) {
      var second = %_StringCharCodeAt(string, index + 1);
      if (second >= 0xDC00 && second <= 0xDFFF) {
        increment = 2;
      }
    }
  }
  return increment;
}
function AdvanceStringIndex(string, index, unicode) {
  var increment = 1;
  if (unicode) {
    var first = %_StringCharCodeAt(string, index);
    if (first >= 0xD800 && first <= 0xDBFF && string.length > index + 1) {
      var second = %_StringCharCodeAt(string, index + 1);
      if (second >= 0xDC00 && second <= 0xDFFF) {
        increment = 2;
      }
    }
  }
  return increment;
}
function AdvanceStringIndex ( string , index , unicode ) { var increment = 1 ; if ( unicode ) { var first = % _StringCharCodeAt ( string , index ) ; if ( first >= 0xD800 && first <= 0xDBFF && string . length > index + 1 ) { var second = % _StringCharCodeAt ( string , index + 1 ) ; if ( second >= 0xDC00 && second <= 0xDFFF ) { increment = 2 ; } } } return increment ; }
ES#sec-advancestringindex AdvanceStringIndex ( S, index, unicode )
ES#sec - advancestringindex AdvanceStringIndex ( S index unicode )