PageSourceSearch

https://wavswap.com/client/wavswap-home-discovery-v841.js?v=20260928-v1036-retire-duplicate-ai

js wavswap.com collected 2026-10-02 00:59:58 UTC 1,454 bytes, 41 lines download raw bytes

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.