function instantiate(bufferSource, importObject = {}, logger = console.log) {
	    const env = new environment.Environment(importObject, logger);
	    return WebAssembly.instantiate(bufferSource, env.imports).then((result) => {
	        return new Instance(result.module, {}, result.instance, env);
	    });
	}
Asynchrously instantiate a new {@link Instance}.

importObject can also be a {@link LibraryProvider} object,
a WASI object, or an object containing wasmLibraryProvider field.
We can take benefit of syslib implementations from the Emscripten
by passing its generated js Module as the imports.

@param bufferSource The source to be compiled.
@param importObject The import objects.
@param logger The system logger.