function mergeEventDocumentation(allSymbols) {

	debug("merging JSDoc event documentation into UI5 metadata");

	const aTypes = allSymbols.filter((symbol) => isaClass(symbol));

	aTypes.forEach((symbol) => {

		const metadata = symbol.__ui5.metadata;
		const members = symbol.__ui5.members;

		if ( !metadata || !metadata.events || Object.keys(metadata.events).length <= 0 || !members ) {
			return;
		}

		// debug(`merging events for '${symbol.longname}'`);
		members.forEach(($) => {
			if ( $.kind === 'event' && !$.inherited
				 && ($.access === 'public' || $.access === 'protected' || $.access == null)
				 && metadata.events[$.name]
				 && Array.isArray($.params)
				 && !$.synthetic ) {

				const event = metadata.events[$.name];
				let modified = false;

				$.params.forEach((param) => {
					const m = /^\w+\.getParameters\.(.*)$/.exec(param.name);
					if ( m ) {
						const pname = m[1];
						const ui5param = event.parameters[pname] || ( event.parameters[pname] = {});
						if ( ui5param.type == null ) {
							ui5param.type = listTypes(param.type);
							modified = true;
						}
						if ( ui5param.doc == null ) {
							ui5param.doc = param.description;
							modified = true;
						}
					}
				});

				if ( modified ) {
					info(`  merged documentation for managed event ${symbol.longname}#${$.name}`);
				}

			}
		});

	});

}
Searches for JSDoc events that are also described in UI5 metadata
and merges the parameter description from the JSDoc event into the UI5 event.

@param {Array<doclet.Doclet>} allSymbols Array of all symbols to be published