lib/functions/operate.js
function operate(op, left, right){
  utils.assertType(op, 'string', 'op');
  utils.assertPresent(left, 'left');
  utils.assertPresent(right, 'right');
  return left.operate(op.val, right);
}
function operate(op, left, right){
  utils.assertType(op, 'string', 'op');
  utils.assertPresent(left, 'left');
  utils.assertPresent(right, 'right');
  return left.operate(op.val, right);
}
function operate ( op , left , right ) { utils . assertType ( op , 'string' , 'op' ) ; utils . assertPresent ( left , 'left' ) ; utils . assertPresent ( right , 'right' ) ; return left . operate ( op . val , right ) ; }
Perform `op` on the `left` and `right` operands.

@param {String} op
@param {Node} left
@param {Node} right
@return {Node}
@api public
Perform op on the left and right operands .