UpdateHandlerResult: void | boolean | Promise<void | boolean>
void: if the return type is void, the API itself will automatically call delete() on the update. boolean: if the return value is true, the handler is considered to have captured the update, in which case update.delete() must be called at some point (to return the update to the emscripten heap). If the value is false, the API will automatically call delete() on the udpate. The return type can also be a Promise to void or boolean, and the same applies. delete() on the update will be deferred until the Promise is resolved. If the promise is rejected, the update is always delete()d.