google / google/closure-compiler

Static methods that reference `this` don't work correctly with CollapseProperties

Open
#2,305 5 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.