| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)exports.writableStream = isFunction(global.WritableStream)exports.abortController = isFunction(global.AbortController)exports.blobConstructor = falsetry {	new Blob([new ArrayBuffer(1)])	exports.blobConstructor = true} catch (e) {}// The xhr request to example.com may violate some restrictive CSP configurations,// so if we're running in a browser that supports `fetch`, avoid calling getXHR()// and assume support for certain features below.var xhrfunction getXHR () {	// Cache the xhr value	if (xhr !== undefined) return xhr	if (global.XMLHttpRequest) {		xhr = new global.XMLHttpRequest()		// If XDomainRequest is available (ie only, where xhr might not work		// cross domain), use the page location. Otherwise use example.com		// Note: this doesn't actually make an http request.		try {			xhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')		} catch(e) {			xhr = null		}	} else {		// Service workers don't have XHR		xhr = null	}	return xhr}function checkTypeSupport (type) {	var xhr = getXHR()	if (!xhr) return false	try {		xhr.responseType = type		return xhr.responseType === type	} catch (e) {}	return false}// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.// Safari 7.1 appears to have fixed this bug.var haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'var haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)// If fetch is supported, then arraybuffer will be supported too. Skip calling// checkTypeSupport(), since that calls getXHR().exports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))// These next two tests unavoidably show warnings in Chrome. Since fetch will always// be used if it's available, just return false for these to avoid the warnings.exports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')exports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&	checkTypeSupport('moz-chunked-arraybuffer')// If fetch is supported, then overrideMimeType will be supported too. Skip calling// getXHR().exports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)exports.vbArray = isFunction(global.VBArray)function isFunction (value) {	return typeof value === 'function'}xhr = null // Help gc
 |