code: function Transport(name) {
  	this.port1 = window.top
  	this.port2 = global
  	this.origin = '*'
  	this.listener = null
  	this.name = name
  	this.key = key
  }
docs: /*
  Known issues:
  1. Safari detection of a structured clonning support when DOM is sent. String(e.data).indexOf("Null") !== -1. See https://gist.github.com/ryanseddon/4583494
  2. IE8's events are triggered synchronously, which may lead to to unexpected results.
  3. Firefox 41 and below do not support sending File/Blob objects see bug
  5. Probbaly: IE<=9 doesn't like you to call postMessage as soon as page loads. Use a setTimeout to wait one or two seconds before calling postMessage.
  6. IE8-11 doesn't support postMessage on different tabs and origins.
  7. Worker structured clonning support (from MDN): Chrome >=13, Firefox >=8, IE>=10.0, Opera >=11.5, Safari>=6
  
  Links:
  http://blogs.msdn.com/b/ieinternals/archive/2009/09/16/bugs-in-ie8-support-for-html5-postmessage-sessionstorage-and-localstorage.aspx
  
  Todo:
  1. Add `window.open` & `window.opener` messaging