propertyExpression(prop, name) {
    var expr = new nodes.Expression
      , val = prop.expr.clone();

    // name
    expr.push(new nodes.String(prop.name));

    // replace cyclic call with __CALL__
    function replace(node) {
      if ('call' == node.nodeName && name == node.name) {
        return new nodes.Literal('__CALL__');
      }

      if (node.nodes) node.nodes = node.nodes.map(replace);
      return node;
    }

    replace(val);
    expr.push(val);
    return expr;
  }
Return `Expression` based on the given `prop`,
replacing cyclic calls to the given function `name`
with "__CALL__".

@param {Property} prop
@param {String} name
@return {Expression}
@api private