code: function Mirror(options) {
  		this._modes = {};
  		// This internal variable must be named "mimeModes" otherwise CodeMirror's "less" mode will fail.
  		this.mimeModes = {};
  		this.options = {};
  	
  		// Expose Stream as a property named "StringStream". This is required to support CodeMirror's Perl mode,
  		// which monkey-patches CodeMirror.StringStream.prototype and will fail if that object doesn't exist.
  		this.StringStream = Stream;
  
  		this.defineMode("null", NullModeFactory);
  		this.defineMIME("text/plain", "null");
  	}
docs: @name orion.mirror.Mirror
  @class A shim for CodeMirror's <code>CodeMirror</code> API.
  @description A Mirror is a partial implementation of the API provided by the <code><a href="http://codemirror.net/doc/manual.html#api">CodeMirror object</a></code>.
  Mirror provides functionality related to mode and MIME management.
  
  <p>If clients intend to reuse modes provided by CodeMirror without modification, they must expose a Mirror as
  a property named <code>"CodeMirror"</code> of the global object so that modes may access it to register themselves,
  and to load other modes. For example:
  </p>
  <p><code>
  &lt;script&gt;<br>
  window.CodeMirror = new Mirror();<br>
  // Now you can load the CodeMirror mode scripts.<br>
  &lt/script&gt;
  </code></p>
  @see <a href="http://codemirror.net/manual.html">http://codemirror.net/manual.html</a>