<commit_before>(function() 
{
	/** {Map} Keys are all URIs which are currently loading */
	var loading = {};

	/** {Map} Keys are all URIs which are completely loaded */
	var completed = {};
	
	/** {Map} Maps extensions to loader classes */
	var typeLoader = 
	{
		js : jasy.io.Script,
		css : jasy.io.StyleSheet
	};


	/**
	 * Returns the extension of the given filename
	 *
	 * @param filename {String} Name of file or full URI
	 * @return {String} Extension part or <code>null</code> if no extension was found
	 */
	var extractExtension = function(filename) 
	{
		var dot = filename.lastIndexOf(".");
		return dot > 0 ? filename.slice(dot+1) : null;
	};
	

	/** {Array} List of function, context where each entry consumes two array fields */
	var cachedCallbacks = [];


	/**
	 * Flushes the cached callbacks as soon as no more active scripts are detected.
	 * This methods is called by the different complete scenarios from the loader functions.
	 */<commit_msg>Added better extension extration. Thanks Ivo. + Initial image loading class.<commit_after>(function() 
{
	/** {Map} Keys are all URIs which are currently loading */
	var loading = {};

	/** {Map} Keys are all URIs which are completely loaded */
	var completed = {};
	
	/** {Map} Maps extensions to loader classes */
	var typeLoader = 
	{
		js : jasy.io.Script,
		css : jasy.io.StyleSheet,
		png : jasy.io.Image,
		jpeg : jasy.io.Image,
		jpg : jasy.io.Image,
		gif : jasy.io.Image
	};


	/**
	 * Returns the extension of the given filename
	 *
	 * @param filename {String} Name of file or full URI
	 * @return {String} Extension part or <code>null</code> if no extension was found
	 */
	var extractExtension = function(filename) 
	{
		// Filter out query string and find last dot to split extension
		var result = filename.match(/\.([^\.\?]+)(?:\?|$)/);
		return result ? result[1] : null;
	};
	

	/** {Array} List of function, context where each entry consumes two array fields */
	var cachedCallbacks = [];


	/**
	 * Flushes the cached callbacks as soon as no more active scripts are detected.
	 * This methods is called by the different complete scenarios from the loader functions.
	 */
{'fraction_non_alphanumeric': 0.11961057023643949, 'fraction_numerical': 0.0013908205841446453, 'mean_word_length': 3.248031496062992, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 8, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3375521', 'n_tokens_mistral': 680, 'n_tokens_neox': 615, 'n_words': 253}