tc39 / Function-prototype-toString-revision

:fishing_pole_and_fish: ECMA-262 proposal to update Function.prototype.toString
https://tc39.github.io/Function-prototype-toString-revision
26 stars 10 forks source link

Include static keyword in method toString #34

Open jridgewell opened 5 years ago

jridgewell commented 5 years ago

Static is currently excluded from a method's toString:

class Ex {
  static test() { /* hello */ }
}

console.log(Ex.test.toString());
// => 'test() { /* hello */ }'

The decorators group would like to include it in the toString, since it can't go before the decorators.

ljharb commented 5 years ago

Even unrelated to decorators, it makes sense, and follows the mental model, that if you eval Ex.test.toString() inside a similar lexical context (the body of class Ex, with the same variable bindings in scope) that it should result in a static method.

littledan commented 5 years ago

Intutiively, I like this change. To me, it seems like static is part of the method declaration just as much as async is. I don't think we should put too much stock into the details of a particular version of the spec's grammar when making these sorts of decisions.