') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Optional parameters by ArcadeMode · Pull Request #118 · ArcadeMode/TypeShim · GitHub
Skip to content

Optional parameters - #118

Open
ArcadeMode wants to merge 7 commits into
masterfrom
optional-param-support
Open

Optional parameters#118
ArcadeMode wants to merge 7 commits into
masterfrom
optional-param-support

Conversation

@ArcadeMode

Copy link
Copy Markdown
Owner

#111

skips over part of the initializer object issues noted in #117

@github-actions

github-actionsBot commented Aug 30, 2026

Copy link
Copy Markdown

Test Results

10 files 90 suites 1m 16s ⏱️
813 tests 809 ✅ 4 💤 0 ❌
2 342 runs 2 317 ✅ 25 💤 0 ❌

Results for commit 7642b84.

♻️ This comment has been updated with latest results.

@github-actions

github-actionsBot commented Aug 30, 2026

Copy link
Copy Markdown

BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 7763 2.45GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.400
[Host] : .NET 10.0.11 (10.0.11, 10.0.1126.37416), X64 RyuJIT x86-64-v3
Job-MLTFGY : .NET 10.0.11 (10.0.11, 10.0.1126.37416), X64 RyuJIT x86-64-v3
InvocationCount=1 IterationCount=1 LaunchCount=10 RunStrategy=ColdStart UnrollFactor=1 WarmupCount=0 
MethodCompilationClassCountMeanErrorStdDevMinMax
GenerateAOT016.07 ms2.153 ms1.424 ms13.86 ms18.63 ms
GenerateAOT135.90 ms5.244 ms3.469 ms31.51 ms41.26 ms
GenerateAOT1034.73 ms4.060 ms2.685 ms30.52 ms39.23 ms
GenerateAOT2550.35 ms3.268 ms2.162 ms47.28 ms53.75 ms
GenerateAOT5063.37 ms4.430 ms2.930 ms60.04 ms68.72 ms
GenerateAOT100100.07 ms5.997 ms3.967 ms93.93 ms107.01 ms
GenerateAOT200103.31 ms3.598 ms2.380 ms98.98 ms107.07 ms
GenerateJIT047.50 ms7.129 ms4.715 ms43.00 ms55.87 ms
GenerateJIT1888.52 ms14.598 ms9.656 ms877.37 ms911.52 ms
GenerateJIT10886.14 ms16.838 ms11.137 ms867.39 ms905.26 ms
GenerateJIT25929.06 ms15.858 ms10.489 ms914.09 ms944.95 ms
GenerateJIT50956.32 ms10.973 ms7.258 ms945.15 ms965.69 ms
GenerateJIT1001,054.09 ms14.228 ms9.411 ms1,037.40 ms1,071.58 ms
GenerateJIT2001,039.47 ms15.840 ms10.477 ms1,024.41 ms1,054.27 ms

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ArcadeMode