_sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
		let shadowNode;

		const shadowIterator = _createIterator(fragment);
		/* Execute a hook if present */


		_executeHook('beforeSanitizeShadowDOM', fragment, null);

		while (shadowNode = shadowIterator.nextNode()) {
			/* Execute a hook if present */
			_executeHook('uponSanitizeShadowNode', shadowNode, null);
			/* Sanitize tags and elements */


			if (_sanitizeElements(shadowNode)) {
				continue;
			}
			/* Deep shadow DOM detected */


			if (shadowNode.content instanceof DocumentFragment) {
				_sanitizeShadowDOM(shadowNode.content);
			}
			/* Check attributes, sanitize if necessary */


			_sanitizeAttributes(shadowNode);
		}
		/* Execute a hook if present */


		_executeHook('afterSanitizeShadowDOM', fragment, null);
	}
_sanitizeShadowDOM

@param  {DocumentFragment} fragment to iterate over recursively