src/vs/platform/extensionManagement/common/implicitActivationEvents.ts/ImplicitActivationEventsImpl/updateManifest
class ImplicitActivationEventsImpl:	public updateManifest(manifest: IExtensionManifest) {
		if (typeof manifest.main === 'undefined' && typeof manifest.browser === 'undefined') {
			return;
		}
		if (manifest.activationEvents === undefined) {
			Object.assign(manifest, { activationEvents: [] });
		}
		if (!Array.isArray(manifest.activationEvents) || !manifest.contributes) {
			return;
		}

		for (const extPointName in manifest.contributes) {
			const generator = this._generators.get(extPointName);
			if (!generator) {
				// There's no generator for this extension point
				continue;
			}
			const contrib = (manifest.contributes as any)[extPointName];
			const contribArr = Array.isArray(contrib) ? contrib : [contrib];
			try {
				generator(contribArr, manifest.activationEvents);
			} catch (err) {
				onUnexpectedError(err);
			}
		}
	}