constructor(importObject = {}, logger = console.log) {
	        /**
	         * Maintains a table of FTVMWasmPackedCFunc that the C part
	         * can call via TVMWasmPackedCFunc.
	         *
	         * We maintain a separate table so that we can have un-limited amount
	         * of functions that do not maps to the address space.
	         */
	        this.packedCFuncTable = [
	            undefined,
	        ];
	        /**
	         * Free table index that can be recycled.
	         */
	        this.packedCFuncTableFreeId = [];
	        this.logger = logger;
	        this.libProvider = detectLibraryProvider(importObject);
	        // get imports from the provider
	        if (this.libProvider !== undefined) {
	            this.imports = this.libProvider.imports;
	        }
	        else {
	            this.imports = importObject;
	        }
	        // update with more functions
	        this.imports.env = this.environment(this.imports.env);
	    }
Environment to impelement most of the JS library functions.