function advance_exec_cursor() {
				if (chain_is_corked) return;
				while (exec_cursor < chain.length) {
					if (is_func(chain[exec_cursor])) {
						if (chain_opts[_Debug]) log_msg("$LAB.wait() executing: "+chain[exec_cursor]);
						try { chain[exec_cursor++](); } catch (err) {
							if (chain_opts[_Debug]) log_error("$LAB.wait() error caught: ",err);
						}
						continue;
					}
					else if (!chain[exec_cursor].finished) {
						if (check_chain_group_scripts_ready(chain[exec_cursor])) continue;
						break;
					}
					exec_cursor++;
				}
				// we've reached the end of the chain (so far)
				if (exec_cursor == chain.length) {
					scripts_currently_loading = false;
					group = false;
				}
			}
function advance_exec_cursor() {
				if (chain_is_corked) return;
				while (exec_cursor < chain.length) {
					if (is_func(chain[exec_cursor])) {
						if (chain_opts[_Debug]) log_msg("$LAB.wait() executing: "+chain[exec_cursor]);
						try { chain[exec_cursor++](); } catch (err) {
							if (chain_opts[_Debug]) log_error("$LAB.wait() error caught: ",err);
						}
						continue;
					}
					else if (!chain[exec_cursor].finished) {
						if (check_chain_group_scripts_ready(chain[exec_cursor])) continue;
						break;
					}
					exec_cursor++;
				}
				
				if (exec_cursor == chain.length) {
					scripts_currently_loading = false;
					group = false;
				}
			}
function advance_exec_cursor ( ) { if ( chain_is_corked ) return ; while ( exec_cursor < chain . length ) { if ( is_func ( chain [ exec_cursor ] ) ) { if ( chain_opts [ _Debug ] ) log_msg ( "$LAB.wait() executing: " + chain [ exec_cursor ] ) ; try { chain [ exec_cursor ++ ] ( ) ; } catch ( err ) { if ( chain_opts [ _Debug ] ) log_error ( "$LAB.wait() error caught: " , err ) ; } continue ; } else if ( ! chain [ exec_cursor ] . finished ) { if ( check_chain_group_scripts_ready ( chain [ exec_cursor ] ) ) continue ; break ; } exec_cursor ++ ; } // we've reached the end of the chain (so far) if ( exec_cursor == chain . length ) { scripts_currently_loading = false ; group = false ; } }
main driver for executing each part of the chain
main driver for executing each part of the chain