function string_split ( __this, separator, limit ) {  var S = String(__this );					  // 1  var A = new Array();                          // 2  if ( limit == undefined ) {                   // 3    lim = Math.pow(2, 31 ) -1;  } else {    lim = ToUint32( limit );  }  var s = S.length;                              // 4  var p = 0;                                     // 5  if  ( separator == undefined ) {              // 8    A[0] = S;    return A;  }	  if ( separator.constructor == RegExp )         // 6    R = separator;  else    R = separator.toString();  if (lim == 0) return A;                       // 7  if  ( separator == undefined ) {              // 8    A[0] = S;    return A;  }	  if (s == 0) {		                          // 9    z = SplitMatch(R, S, 0);    if (z != false) return A;    A[0] = S;    return A;  }  var q = p;									  // 10loop:  while (true ) { 		    if ( q == s ) break;					  // 11	    z = SplitMatch(R, S, q);                  // 12//print("Returned ", z);    if (z != false) {							// 13      e = z.endIndex;							// 14      cap = z.captures;						// 14      if (e != p) {							// 15//print("S = ", S, ", p = ", p, ", q = ", q);	T = S.slice(p, q);					// 16//print("T = ", T);	A[A.length] = T;					// 17	if (A.length == lim) return A;		// 18	p = e;								// 19	i = 0;								// 20	while (true) {						// 25	  if (i == cap.length) {              // 21	    q = p;                          // 10	    continue loop;	  }	  i = i + 1;							// 22	  A[A.length] = cap[i]				// 23	    if (A.length == lim) return A;		// 24	}       }    }    q = q + 1;                               // 26  }	  T = S.slice(p, q);  A[A.length] = T;  return A;}
5872	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/5872/3703c3c05f398a63e55992f7687ef65273b26d6a/split-002.js/buggy/js/tests/ecma_2/String/split-002.js