google / google/closure-compiler
Static methods that reference `this` don't work correctly with CollapseProperties
Open
- Dominant language
- JavaScript
- Stars
- 7.7k
- Forks
- 1.2k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 6
Description
```js
class Base {
/** @return {Function} */
static foo() { return this; }
}
Base.foo();
```
With CollapseProperties on, this compiles to
```js
function Base$foo() { return this; }
Base$foo();
```
This returns `undefined` rather than `Base`. We should either warn upon collapsing a static method with a reference to `this`, or else automatically add `@nocollapse` upon transpiling such a method.
Contributor guide
Assessment
This issue has not been assessed yet.