From 3cf8a6df01cd29212757ed3519e2815049cb6a71 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 15 Jan 2015 23:08:28 +1100 Subject: [PATCH] rename replaceInstanceSuperReferences to replaceSuperReferences in classes transformer and add breaks on method definitions --- lib/6to5/transformation/transformers/es6-classes.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/6to5/transformation/transformers/es6-classes.js b/lib/6to5/transformation/transformers/es6-classes.js index 1259e39f31..1bffd19f76 100644 --- a/lib/6to5/transformation/transformers/es6-classes.js +++ b/lib/6to5/transformation/transformers/es6-classes.js @@ -136,7 +136,7 @@ Class.prototype.buildBody = function () { for (var i in classBody) { var node = classBody[i]; if (t.isMethodDefinition(node)) { - this.replaceInstanceSuperReferences(node); + this.replaceSuperReferences(node); if (node.key.name === "constructor") { this.pushConstructor(node); @@ -301,7 +301,7 @@ Class.prototype.looseSuperProperty = function (methodNode, id, parent) { * @param {Node} methodNode MethodDefinition */ -Class.prototype.replaceInstanceSuperReferences = function (methodNode) { +Class.prototype.replaceSuperReferences = function (methodNode) { var method = methodNode.value; var self = this; @@ -324,6 +324,11 @@ Class.prototype.replaceInstanceSuperReferences = function (methodNode) { return this.skip(); } + if (t.isProperty(node, { method: true }) || t.isMethodDefinition(node)) { + // break on object methods + return this.skip(); + } + var getThisReference = function () { if (topLevel) { // top level so `this` is the instance