whole_func_string: 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;
  				}
  			}
func_code_string: 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;
  				}
  			}
func_documentation_string: main driver for executing each part of the chain