From c5214ffe708e76c8c6767c6019952ecea0e3e503 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 5 Dec 2014 23:06:36 +1100 Subject: [PATCH] enumerable es6 class methods --- .../transformers/es6-classes.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/6to5/transformation/transformers/es6-classes.js b/lib/6to5/transformation/transformers/es6-classes.js index 801b3687d5..d44d6c6f25 100644 --- a/lib/6to5/transformation/transformers/es6-classes.js +++ b/lib/6to5/transformation/transformers/es6-classes.js @@ -162,17 +162,22 @@ Class.prototype.buildBody = function () { Class.prototype.pushMethod = function (node) { var methodName = node.key; - var mutatorMap = this.instanceMutatorMap; - if (node.static) mutatorMap = this.staticMutatorMap; - var kind = node.kind; if (kind === "") { - kind = "value"; - util.pushMutatorMap(mutatorMap, methodName, "writable", t.identifier("true")); - } + // method - util.pushMutatorMap(mutatorMap, methodName, kind, node); + var className = this.className; + if (!node.static) className = t.memberExpression(className, t.identifier("prototype")); + methodName = t.memberExpression(className, methodName, node.computed); + + this.body.push(t.expressionStatement(t.assignmentExpression("=", methodName, node.value))); + } else { + // mutator + var mutatorMap = this.instanceMutatorMap; + if (node.static) mutatorMap = this.staticMutatorMap; + util.pushMutatorMap(mutatorMap, methodName, kind, node); + } }; /**