text: (function(__global) {
  
    var isWorker = typeof window == 'undefined' && typeof self != 'undefined' && typeof importScripts != 'undefined';
    var isBrowser = typeof window != 'undefined' && typeof document != 'undefined';
    var isWindows = typeof process != 'undefined' && !!process.platform.match(/^win/);
  
    if (!__global.console)
      __global.console = { assert: function() {} };
  
    // IE8 support
    var indexOf = Array.prototype.indexOf || function(item) {
      for (var i = 0, thisLen = this.length; i < thisLen; i++) {
        if (this[i] === item) {
          return i;
        }
      }
      return -1;
    };
    
    var defineProperty;
    (function () {
      try {
        if (!!Object.defineProperty({}, 'a', {}))
          defineProperty = Object.defineProperty;
      }
      catch (e) {
        defineProperty = function(obj, prop, opt) {
          try {
            obj[prop] = opt.value || opt.get.call(obj);
          }
          catch(e) {}
        }
      }
    })();
  
    function addToError(err, msg) {
      var newErr;
      if (err instanceof Error) {
        var newErr = new Error(err.message, err.fileName, err.lineNumber);
        if (isBrowser) {
          newErr.message = err.message + '\n\t' + msg;
          newErr.stack = err.stack;
        }
        else {
          // node errors only look correct with the stack modified
          newErr.message = err.message;
          newErr.stack = err.stack + '\n\t' + msg;
        }
      }
      else {
        newErr = err + '\n\t' + msg;
      }
        
      return newErr;
    }
  
    function __eval(source, debugName, context) {
      try {
        new Function(source).call(context);
      }
      catch(e) {
        throw addToError(e, 'Evaluating ' + debugName);
      }
    }
  
    var baseURI;
    // environent baseURI detection
    if (typeof document != 'undefined' && document.getElementsByTagName) {
      baseURI = document.baseURI;
  
      if (!baseURI) {
        var bases = document.getElementsByTagName('base');
        baseURI = bases[0] && bases[0].href || window.location.href;
      }
  
      // sanitize out the hash and querystring
      baseURI = baseURI.split('#')[0].split('?')[0];
      baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1);
    }
    else if (typeof process != 'undefined' && process.cwd) {
      baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd() + '/';
      if (isWindows)
        baseURI = baseURI.replace(/\\/g, '/');
    }
    else if (typeof location != 'undefined') {
      baseURI = __global.location.href;
    }
    else {
      throw new TypeError('No environment baseURI');
    }
  
    var URL = __global.URLPolyfill || __global.URL;
  