proper feature call isLoose function #9424

This commit is contained in:
pnowak 2019-03-19 22:03:18 +01:00 committed by Nicolò Ribaudo
parent ff04d3535c
commit 3aaafae053
No known key found for this signature in database
GPG Key ID: A4A1F3B82CA4542E
7 changed files with 51 additions and 3 deletions

View File

@ -54,9 +54,7 @@ export function createClassFeaturePlugin({
verifyUsedFeatures(path, this.file);
// Only fields are currently supported, this needs to be moved somewhere
// else when other features are added.
const loose = isLoose(this.file, FEATURES.fields);
const loose = isLoose(this.file, feature);
let constructor;
let isDecorated = hasOwnDecorators(path.node);

View File

@ -0,0 +1,5 @@
class X {
#privateMethod() {
return 42;
}
}

View File

@ -0,0 +1,5 @@
{
"plugins": [
["proposal-private-methods", { "loose": false }]
]
}

View File

@ -0,0 +1,12 @@
class X {
constructor() {
_privateMethod.add(this);
}
}
var _privateMethod = new WeakSet();
var _privateMethod2 = function _privateMethod2() {
return 42;
};

View File

@ -0,0 +1,5 @@
class X {
#privateMethod() {
return 42;
}
}

View File

@ -0,0 +1,5 @@
{
"plugins": [
["proposal-private-methods", { "loose": true }]
]
}

View File

@ -0,0 +1,18 @@
var id = 0;
function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
class X {
constructor() {
Object.defineProperty(this, _privateMethod, {
value: _privateMethod2
});
}
}
var _privateMethod = _classPrivateFieldLooseKey("privateMethod");
var _privateMethod2 = function _privateMethod2() {
return 42;
};