src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.ts/TaskDefinitionRegistryImpl/constructor
class TaskDefinitionRegistryImpl:	constructor() {
		this.taskTypes = Object.create(null);
		this.readyPromise = new Promise<void>((resolve, reject) => {
			taskDefinitionsExtPoint.setHandler((extensions, delta) => {
				this._schema = undefined;
				try {
					for (const extension of delta.removed) {
						const taskTypes = extension.value;
						for (const taskType of taskTypes) {
							if (this.taskTypes && taskType.type && this.taskTypes[taskType.type]) {
								delete this.taskTypes[taskType.type];
							}
						}
					}
					for (const extension of delta.added) {
						const taskTypes = extension.value;
						for (const taskType of taskTypes) {
							const type = Configuration.from(taskType, extension.description.identifier, extension.collector);
							if (type) {
								this.taskTypes[type.taskType] = type;
							}
						}
					}
					if ((delta.removed.length > 0) || (delta.added.length > 0)) {
						this._onDefinitionsChanged.fire();
					}
				} catch (error) {
				}
				resolve(undefined);
			});
		});
	}