Code coverage report for 6to5/lib/6to5/transformation/transformers/playground-object-getter-memoization.js

Statements: 93.75% (15 / 16)      Branches: 91.67% (11 / 12)      Functions: 100% (2 / 2)      Lines: 100% (14 / 14)      Ignored: none     

All files » 6to5/lib/6to5/transformation/transformers/ » playground-object-getter-memoization.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 321 1   1   14162 4   4 4   4   4 2     4   40   40 4                  
var traverse = require("../../traverse");
var t        = require("../../types");
 
exports.Property =
exports.MethodDefinition = function (node, parent, file) {
  if (node.kind !== "memo") return;
  node.kind = "get";
 
  var value = node.value;
  t.ensureBlock(value);
 
  var key = node.key;
 
  if (t.isIdentifier(key) && !node.computed) {
    key = t.literal(key.name);
  }
 
  traverse(value, {
    enter: function (node) {
      Iif (t.isFunction(node)) return;
 
      if (t.isReturnStatement(node) && node.argument) {
        node.argument = t.memberExpression(t.callExpression(file.addHelper("define-property"), [
          t.thisExpression(),
          key,
          node.argument
        ]), key, true);
      }
    }
  });
};