rem: T = S.slice(p, q); A[A.length] = T; return A; 
add: T = S.slice(p, q); A[A.length] = T; return A; 
context: 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;}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/4218d0f5950d93cb2609d946f6af7ce1b2e89575/split-002.js/clean/js/tests/ecma_2/String/split-002.js