Disable unicorn/no-this-outside-of-class#287
Merged
Merged
Conversation
All 30 hits are legitimate, unavoidable `this`-outside-a-class that can't be class methods: native-prototype monkeypatches (Element.prototype .attachShadow etc.), defineProperty get/set accessors, page-world executeScript entry fns (`this: Window`), and webext-messaging handlers. Every one would need an inline disable, so the rule is pure noise here — turn it off rather than leave ~30 standing warnings. See #279. Refs #279 Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This was referenced Jun 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
From #279. This rule only fires on legitimate, unavoidable
this-outside-a-class in this codebase, so it's turned off rather than left as ~30 standing warnings.Why off, not ratcheted
All 30 hits are
thisin standalone functions that must use the dynamic receiver and can't be class methods:Element.prototype.attachShadow = function (this: Element) {…}and friends (shadow-root interception, defenses)definePropertyget/set accessors —get(this: object) {…}(jsdom test polyfills)executeScriptentry fns —function install…(this: Window)getTabUrl(this: MessengerMeta) {…}(the library's calling convention)None can be rewritten as a class, so enabling it would mean ~30 inline disables across the most security-sensitive interception code. Pure noise → off.
Change
eslint.config.js:no-this-outside-of-classwarn→off, grouped with the other disabled rules, with rationale.Verification
bun run checkexit 0Refs #279