function WasmModule( binary, memory, imports ) {
	if ( !( this instanceof WasmModule ) ) {
		if ( arguments.length > 2 ) {
			return new WasmModule( binary, memory, imports );
		}
		return new WasmModule( binary, memory, {} );
	}
	if ( !HAS_WASM_SUPPORT ) {
		throw new Error( 'unexpected error. Environment does not support WebAssembly.' );
	}
	if ( isArrayBuffer( binary ) ) {
		binary = new Uint8Array( binary );
	}
	this._binary = binary;
	this._module = null;
	this._instance = null;
	this._imports = imports;

	if ( memory ) {
		this._memory = memory;
		this._view = new DataView( memory.buffer );
		this._buffer = new Uint8Array( memory.buffer );
	} else {
		this._memory = null;
		this._view = null;
		this._buffer = null;
	}

	return this;
}
WebAssembly module wrapper constructor.

@constructor
@param {(Uint8Array|ArrayBuffer)} binary - WebAssembly binary code
@param {(Object|null)} memory - WebAssembly memory instance
@param {Object} [imports] - WebAssembly module import object
@throws {Error} environment does not support WebAssembly
@returns {WasmModule} wrapper instance