@babel/helper-create-class-features-plugin
Advanced tools
Comparing version 7.3.2 to 7.3.4
@@ -22,3 +22,3 @@ "use strict"; | ||
function _helperReplaceSupers() { | ||
const data = require("@babel/helper-replace-supers"); | ||
const data = _interopRequireWildcard(require("@babel/helper-replace-supers")); | ||
@@ -54,2 +54,4 @@ _helperReplaceSupers = function () { | ||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } | ||
function buildPrivateNamesMap(props) { | ||
@@ -493,3 +495,34 @@ const privateNamesMap = new Map(); | ||
function buildFieldsInitNodes(ref, props, privateNamesMap, state, loose) { | ||
const thisContextVisitor = _core().traverse.visitors.merge([{ | ||
ThisExpression(path, state) { | ||
state.needsClassRef = true; | ||
path.replaceWith(_core().types.cloneNode(state.classRef)); | ||
} | ||
}, _helperReplaceSupers().environmentVisitor]); | ||
function replaceThisContext(path, ref, superRef, file, loose) { | ||
const state = { | ||
classRef: ref, | ||
needsClassRef: false | ||
}; | ||
const replacer = new (_helperReplaceSupers().default)({ | ||
methodPath: path, | ||
isLoose: loose, | ||
superRef, | ||
file, | ||
getObjectRef() { | ||
state.needsClassRef = true; | ||
return ref; | ||
} | ||
}); | ||
replacer.isStatic = true; | ||
replacer.replace(); | ||
path.traverse(thisContextVisitor, state); | ||
return state.needsClassRef; | ||
} | ||
function buildFieldsInitNodes(ref, superRef, props, privateNamesMap, state, loose) { | ||
const staticNodes = []; | ||
@@ -507,2 +540,7 @@ const instanceNodes = []; | ||
if (isStatic && isField) { | ||
const replaced = replaceThisContext(prop, ref, superRef, state, loose); | ||
needsClassRef = needsClassRef || replaced; | ||
} | ||
switch (true) { | ||
@@ -509,0 +547,0 @@ case isStatic && isPrivate && isField && loose: |
@@ -158,3 +158,3 @@ "use strict"; | ||
wrapClass | ||
} = (0, _fields.buildFieldsInitNodes)(ref, props, privateNamesMap, state, loose)); | ||
} = (0, _fields.buildFieldsInitNodes)(ref, path.node.superClass, props, privateNamesMap, state, loose)); | ||
} | ||
@@ -161,0 +161,0 @@ |
{ | ||
"name": "@babel/helper-create-class-features-plugin", | ||
"version": "7.3.2", | ||
"version": "7.3.4", | ||
"author": "The Babel Team (https://babeljs.io/team)", | ||
@@ -21,3 +21,4 @@ "license": "MIT", | ||
"@babel/helper-plugin-utils": "^7.0.0", | ||
"@babel/helper-replace-supers": "^7.2.3" | ||
"@babel/helper-replace-supers": "^7.3.4", | ||
"@babel/helper-split-export-declaration": "^7.0.0" | ||
}, | ||
@@ -28,6 +29,6 @@ "peerDependencies": { | ||
"devDependencies": { | ||
"@babel/core": "^7.2.2", | ||
"@babel/core": "^7.3.4", | ||
"@babel/helper-plugin-test-runner": "^7.0.0" | ||
}, | ||
"gitHead": "d896ce2b53f64742feeea27dd33ee45934cd041a" | ||
"gitHead": "1f6454cc90fe33e0a32260871212e2f719f35741" | ||
} |
36915
977
7