diff --git a/lib/6to5/transformation/helpers/name-method.js b/lib/6to5/transformation/helpers/name-method.js index 8df977dafb..6f47ac95cc 100644 --- a/lib/6to5/transformation/helpers/name-method.js +++ b/lib/6to5/transformation/helpers/name-method.js @@ -36,15 +36,18 @@ exports.property = function (node, file, scope) { scope.traverse(node, visitor, state); + var method = node.value; + if (state.selfReference) { - // todo: support generators - node.value = util.template("property-method-assignment-wrapper", { - FUNCTION: node.value, + var templateName = "property-method-assignment-wrapper"; + if (method.generator) templateName += "-generator"; + node.value = util.template(templateName, { + FUNCTION: method, FUNCTION_ID: key, FUNCTION_KEY: scope.generateUidIdentifier(id), WRAPPER_KEY: scope.generateUidIdentifier(id + "Wrapper") }); } else { - node.value.id = key; + method.id = key; } };