UNPKG

babel-core

Version:

Turn ES6 code into readable vanilla ES5 with source maps

35 lines (27 loc) 843 B
"use strict"; var ReplaceSupers = require("../../helpers/replace-supers"); var t = require("../../../types"); exports.check = function (node) { return t.isIdentifier(node, { name: "super" }); }; exports.Property = function (node, parent, scope, file) { if (!node.method) return; var value = node.value; var thisExpr = scope.generateUidIdentifier("this"); var replaceSupers = new ReplaceSupers({ topLevelThisReference: thisExpr, methodNode: node, className: thisExpr, isStatic: true, scope: scope, file: file }); replaceSupers.replace(); if (replaceSupers.hasSuper) { value.body.body.unshift( t.variableDeclaration("var", [ t.variableDeclarator(thisExpr, t.thisExpression()) ]) ); } };