src/vs/workbench/services/themes/common/iconExtensionPoint.ts/IconExtensionPoint/constructor
class IconExtensionPoint:	constructor() {
		iconConfigurationExtPoint.setHandler((extensions, delta) => {
			for (const extension of delta.added) {
				const extensionValue = <IIconExtensionPoint>extension.value;
				const collector = extension.collector;

				if (!extensionValue || typeof extensionValue !== 'object') {
					collector.error(nls.localize('invalid.icons.configuration', "'configuration.icons' must be an object with the icon names as properties."));
					return;
				}

				for (const id in extensionValue) {
					if (!id.match(iconIdPattern)) {
						collector.error(nls.localize('invalid.icons.id.format', "'configuration.icons' keys represent the icon id and can only contain letter, digits and minuses. They need to consist of at least two segments in the form `component-iconname`."));
						return;
					}
					const iconContribution = extensionValue[id];
					if (typeof iconContribution.description !== 'string' || iconContribution.description.length === 0) {
						collector.error(nls.localize('invalid.icons.description', "'configuration.icons.description' must be defined and can not be empty"));
						return;
					}
					let defaultIcon = iconContribution.default;
					if (typeof defaultIcon === 'string') {
						iconRegistry.registerIcon(id, { id: defaultIcon }, iconContribution.description);
					} else if (typeof defaultIcon === 'object' && typeof defaultIcon.fontPath === 'string' && typeof defaultIcon.fontCharacter === 'string') {
						const format = extname(defaultIcon.fontPath).substring(1);
						if (['woff', 'woff2', 'ttf'].indexOf(format) === -1) {
							collector.warn(nls.localize('invalid.icons.default.fontPath.extension', "Expected `contributes.icons.default.fontPath` to have file extension 'woff', woff2' or 'ttf', is '{0}'.", format));
							return;
						}
						const extensionLocation = extension.description.extensionLocation;
						const iconFontLocation = resources.joinPath(extensionLocation, defaultIcon.fontPath);
						if (!resources.isEqualOrParent(iconFontLocation, extensionLocation)) {
							collector.warn(nls.localize('invalid.icons.default.fontPath.path', "Expected `contributes.icons.default.fontPath` ({0}) to be included inside extension's folder ({0}).", iconFontLocation.path, extensionLocation.path));
							return;
						}
						const fontId = getFontId(extension.description, defaultIcon.fontPath);
						const definition = iconRegistry.registerIconFont(fontId, { src: [{ location: iconFontLocation, format }] });
						iconRegistry.registerIcon(id, {
							fontCharacter: defaultIcon.fontCharacter,
							font: {
								id: fontId,
								definition
							}
						}, iconContribution.description);
					} else {
						collector.error(nls.localize('invalid.icons.default', "'configuration.icons.default' must be either a reference to the id of an other theme icon (string) or a icon definition (object) with properties `fontPath` and `fontCharacter`."));
					}
				}
			}
			for (const extension of delta.removed) {
				const extensionValue = <IIconExtensionPoint>extension.value;
				for (const id in extensionValue) {
					iconRegistry.deregisterIcon(id);
				}
			}
		});
	}