function init (format, entry, chunks, globals = {}, async = false) {
    logbuffer = [];

    return new Promise((resolve, reject) => {
        let impl = (resolve, reject) => {
            global._evaluatorResultListener = msg => {
                if (msg.log) {
                    logbuffer.push(msg.log);
                    return;
                }

                if (msg.error) {
                    return reject(msg.error);
                }

                resolve({ globals: msg.globals, exports: msg.result });
            };

            global._evaluatorInstance.send({ format, entry, chunks, globals, async });
        };

        // The forked node may not be ready yet when the test starts.
        // This will push the test into a backlog.
        if (!global._evaluatorReady) {
            global._evaluatorReadyListeners.push(() => impl(resolve, reject));
        } else {
            impl(resolve, reject);
        }
    });
}
Evaluates the VM with the provided code.

@param {String} format 
@param {String} entry 
@param {Object[]} chunks 
@param {Object} globals 
@param {Boolean} async 
@returns {Object}