1/* Wavswap V1036: retire duplicate AI promos above Popular Packs. 2 * The canonical Discovery AI experience is #ws-ai-home-v336 further down the 3 * page. This guard prevents the historical Angular promo and removes any stale 4 * node left by an older cached shell. No observer, polling or UI layer is used. 5 */ 6(function () { 7 'use strict'; 8 9 window.__wavswapHomeDiscoveryV1021 = true; 10 window.__wavswapPopularAiPromoV439 = true; 11 if (window.__wavswapRetireDuplicateAiV1036) return; 12 window.__wavswapRetireDuplicateAiV1036 = true; 13 14 var IDS = [ 15 'wavswap-discovery-ai-v1021', 16 'wavswap-discovery-ai-v1021-style', 17 'ws-ai-popular-promo-v439', 18 'ws-ai-popular-promo-v439-style' 19 ]; 20 var timers = []; 21 22 function removeObsoletePromos() { 23 for (var i = 0; i < IDS.length; i++) { 24 var node = document.getElementById(IDS[i]); 25 if (node && node.parentNode) node.parentNode.removeChild(node); 26 } 27 } 28 29 function scheduleCleanup() { 30 while (timers.length) window.clearTimeout(timers.pop()); 31 [0, 80, 240, 700, 1600].forEach(function (delay) { 32 timers.push(window.setTimeout(removeObsoletePromos, delay)); 33 }); 34 } 35 36 ['DOMContentLoaded', 'pageshow', 'popstate', 'hashchange', 'wavswap:page-ready-v457'].forEach(function (name) { 37 window.addEventListener(name, scheduleCleanup, true); 38 }); 39 scheduleCleanup(); 40 window.WavswapHomeDiscoveryV1021 = {mount: removeObsoletePromos, schedule: scheduleCleanup}; 41}());
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.