Fix handling of class property value this in module transforms. (#9857)

Prevent module transforms from rewriting `this` to `void 0` when found in the values of private class properties.  Add tests to prevent regressions.
This commit is contained in:
Corey Farrell 2019-04-15 16:45:10 -04:00 committed by Nicolò Ribaudo
parent e4072752bc
commit f31c72f310
8 changed files with 38 additions and 0 deletions

View File

@ -17,4 +17,7 @@ const rewriteThisVisitor = {
ClassProperty(path) { ClassProperty(path) {
path.skip(); path.skip();
}, },
ClassPrivateProperty(path) {
path.skip();
},
}; };

View File

@ -0,0 +1,6 @@
{
"parserOpts": {
"plugins": ["classProperties", "classPrivateProperties", "classPrivateMethods"]
},
"plugins": ["transform-modules-commonjs"]
}

View File

@ -0,0 +1,5 @@
class Example {
#method() {
console.log(this);
}
}

View File

@ -0,0 +1,8 @@
"use strict";
class Example {
#method() {
console.log(this);
}
}

View File

@ -0,0 +1,3 @@
class Example {
#property = this;
}

View File

@ -0,0 +1,5 @@
"use strict";
class Example {
#property = this;
}

View File

@ -0,0 +1,3 @@
class Example {
property = this;
}

View File

@ -0,0 +1,5 @@
"use strict";
class Example {
property = this;
}