lookupProperty(name) {
    var i = this.stack.length
      , index = this.currentBlock.index
      , top = i
      , nodes
      , block
      , len
      , other;

    while (i--) {
      block = this.stack[i].block;
      if (!block.node) continue;
      switch (block.node.nodeName) {
        case 'group':
        case 'function':
        case 'if':
        case 'each':
        case 'atrule':
        case 'media':
        case 'atblock':
        case 'call':
          nodes = block.nodes;
          // scan siblings from the property index up
          if (i + 1 == top) {
            while (index--) {
              // ignore current property
              if (this.property == nodes[index]) continue;
              other = this.interpolate(nodes[index]);
              if (name == other) return nodes[index].clone();
            }
            // sequential lookup for non-siblings (for now)
          } else {
            len = nodes.length;
            while (len--) {
              if ('property' != nodes[len].nodeName
                || this.property == nodes[len]) continue;
              other = this.interpolate(nodes[len]);
              if (name == other) return nodes[len].clone();
            }
          }
          break;
      }
    }

    return nodes.null;
  }
Lookup property `name`.

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