function instantiate( resolve, reject ) {
		var p = WebAssembly.instantiate( self._binary, self._imports ); // TODO: replace with `@stdlib/wasm/instantiate`
		p.then( onResolve, onReject );

		/**
		* Callback invoked upon fulfilling a promise.
		*
		* @private
		* @param {Object} module - WebAssembly module
		* @param {Object} instance - WebAssembly instance
		* @returns {void}
		*/
		function onResolve( module, instance ) {
			self._module = module;
			self._instance = instance;
			resolve( self );
		}

		/**
		* Callback invoked upon rejecting a promise.
		*
		* @private
		* @param {*} reason - reason for rejecting a promise
		*/
		function onReject( reason ) {
			reject( reason );
		}
	}
Instantiates a WebAssembly instance.

@private
@param {Function} resolve - callback to invoke upon fulfilling a promise
@param {Function} reject - callback to invoke upon rejecting a promise
@returns {void}