<commit_before>define([
	'./has'
], function (has) {
	// module:
	//		dojo/sniff

	/*=====
	return function () {
		// summary:
		//		This module sets has() flags based on the current browser.
		//		It returns the has() function.
	};
	=====*/

	if (has('host-browser')) {
		var n = navigator,
			dua = n.userAgent,
			dav = n.appVersion,
			tv = parseFloat(dav);

		has.add('air', dua.indexOf('AdobeAIR') >= 0);
		has.add('msapp', parseFloat(dua.split('MSAppHost/')[1]) || undefined);
		has.add('khtml', dav.indexOf('Konqueror') >= 0 ? tv : undefined);
		has.add('webkit', parseFloat(dua.split('WebKit/')[1]) || undefined);
		has.add('chrome', parseFloat(dua.split('Chrome/')[1]) || undefined);
		has.add('safari', dav.indexOf('Safari') >= 0 && !has('chrome') ? parseFloat(dav.split('Version/')[1]) : undefined);
		has.add('mac', dav.indexOf('Macintosh') >= 0);
		has.add('quirks', document.compatMode === 'BackCompat');
		if (dua.match(/(iPhone|iPod|iPad)/)) {
			var p = RegExp.$1.replace(/P/, 'p');
			var v = dua.match(/OS ([\d_]+)/) ? RegExp.$1 : '1';
			var os = parseFloat(v.replace(/_/, '.').replace(/_/g, ''));
			has.add(p, os);		// 'iphone', 'ipad' or 'ipod'
			has.add('ios', os);
		}
		has.add('android', parseFloat(dua.split('Android ')[1]) || undefined);
		has.add('bb', (dua.indexOf('BlackBerry') >= 0 || dua.indexOf('BB10') >= 0) && parseFloat(dua.split('Version/')[1]) || undefined);

		has.add('svg', typeof SVGAngle !== 'undefined');

		if (!has('webkit')) {
			// Opera
			if (dua.indexOf('Opera') >= 0) {
				// see http://dev.opera.com/articles/view/opera-ua-string-changes and http://www.useragentstring.com/pages/Opera/
				// 9.8 has both styles; <9.8, 9.9 only old style
				has.add('opera', tv >= 9.8 ? parseFloat(dua.split('Version/')[1]) || tv : tv);
			}

			// Mozilla and firefox
			if (dua.indexOf('Gecko') >= 0 && !has('khtml') && !has('webkit')) {
				has.add('mozilla', tv);
			}
			if (has('mozilla')) {
				//We really need to get away from this. Consider a sane isGecko approach for the future.
				has.add('ff', parseFloat(dua.split('Firefox/')[1] || dua.split('Minefield/')[1]) || undefined);
			}

			// IE
			if (document.all && !has('opera')) {
				var isIE = parseFloat(dav.split('MSIE ')[1]) || undefined;

				//In cases where the page has an HTTP header or META tag with
				//X-UA-Compatible, then it is in emulation mode.
				//Make sure isIE reflects the desired version.
				//document.documentMode of 5 means quirks mode.
				//Only switch the value if documentMode's major version<commit_msg>Add IE 11+ feature detection.<commit_after>define([
	'./has'
], function (has) {
	// module:
	//		dojo/sniff

	/*=====
	return function () {
		// summary:
		//		This module sets has() flags based on the current browser.
		//		It returns the has() function.
	};
	=====*/

	if (has('host-browser')) {
		var n = navigator,
			dua = n.userAgent,
			dav = n.appVersion,
			tv = parseFloat(dav);

		has.add('air', dua.indexOf('AdobeAIR') >= 0);
		has.add('msapp', parseFloat(dua.split('MSAppHost/')[1]) || undefined);
		has.add('khtml', dav.indexOf('Konqueror') >= 0 ? tv : undefined);
		has.add('webkit', parseFloat(dua.split('WebKit/')[1]) || undefined);
		has.add('chrome', parseFloat(dua.split('Chrome/')[1]) || undefined);
		has.add('safari', dav.indexOf('Safari') >= 0 && !has('chrome') ? parseFloat(dav.split('Version/')[1])
			: undefined);
		has.add('mac', dav.indexOf('Macintosh') >= 0);
		if (dua.match(/(iPhone|iPod|iPad)/)) {
			var p = RegExp.$1.replace(/P/, 'p');
			var v = dua.match(/OS ([\d_]+)/) ? RegExp.$1 : '1';
			var os = parseFloat(v.replace(/_/, '.').replace(/_/g, ''));
			has.add(p, os);		// 'iphone', 'ipad' or 'ipod'
			has.add('ios', os);
		}
		has.add('android', parseFloat(dua.split('Android ')[1]) || undefined);
		has.add('bb', (dua.indexOf('BlackBerry') >= 0 || dua.indexOf('BB10') >= 0)
			&& parseFloat(dua.split('Version/')[1]) || undefined);
		// Used for detecting IE 11 +
		has.add('trident', parseFloat(dav.split('Trident/')[1]) || undefined);

		has.add('svg', typeof SVGAngle !== 'undefined');

		if (!has('webkit')) {
			// Opera
			if (dua.indexOf('Opera') >= 0) {
				// see http://dev.opera.com/articles/view/opera-ua-string-changes and
				// http://www.useragentstring.com/pages/Opera/
				// 9.8 has both styles; <9.8, 9.9 only old style
				has.add('opera', tv >= 9.8 ? parseFloat(dua.split('Version/')[1]) || tv : tv);
			}

			// Mozilla and firefox
			if (dua.indexOf('Gecko') >= 0 && !has('khtml') && !has('webkit') && !has('trident')) {
				has.add('mozilla', tv);
			}
			if (has('mozilla')) {
				//We really need to get away from this. Consider a sane isGecko approach for the future.
				has.add('ff', parseFloat(dua.split('Firefox/')[1] || dua.split('Minefield/')[1]) || undefined);
			}

			// IE
			if (document.all && !has('opera')) {
				var isIE = parseFloat(dav.split('MSIE ')[1]) || undefined;

				//In cases where the page has an HTTP header or META tag with
				//X-UA-Compatible, then it is in emulation mode.
				//Make sure isIE reflects the desired version.
				//document.documentMode of 5 means quirks mode.
				//Only switch the value if documentMode's major version
{'fraction_non_alphanumeric': 0.22252217508677208, 'fraction_numerical': 0.013305052063247204, 'mean_word_length': 3.3846153846153846, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, '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': '1282013', 'n_tokens_mistral': 2165, 'n_tokens_neox': 1885, 'n_words': 429}