skit.define("skit.platform.net:browser", ["skit.platform.iter:js"], function() { return ((function(skit_platform_iter) { var module = {exports: {}}; var defined = null; function define() { for (var i = 0; i < arguments.length; i++) { if (typeof arguments[i] == 'function') { defined = arguments[i](); break; } } } define.amd = true; var result = (function skit_platform_net_browser() {'use strict'; 'browser-only'; /** * @module * @ignore * @license * (c) 2014 Cluster Labs, Inc. https://cluster.co/ * License: MIT */ var iter = skit_platform_iter; function createXHR() { var xhr; if (window.ActiveXObject) { try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) { xhr = null; } } else { xhr = new XMLHttpRequest(); } return xhr; } function send(method, url, headers, body, onComplete) { var xhr = createXHR(); xhr.onreadystatechange = function() { if (xhr.readyState != 4) { return; } var headersText = xhr.getAllResponseHeaders(); var headers = {}; iter.forEach(headersText.split(/[\n\r]+/), function(line) { var result = /^([\w-]+):\s*(.+)$/.exec(line); if (result) { headers[result[1]] = result[2]; } }); onComplete(xhr.status, headers, xhr.responseText); }; xhr.open(method, url, true); for (var key in headers) { xhr.setRequestHeader(key, headers[key]); } xhr.send(body); } module.exports = { send: send };})(); return result || defined || module.exports; })).apply(this, arguments)});