code: function (aNode, sourceBuffer, owner) {
  
          // output main if
          var ifDirective = aNode.directives['if']; // eslint-disable-line dot-notation
          sourceBuffer.addRaw('if (' + compileExprSource.expr(ifDirective.value) + ') {');
          sourceBuffer.addRaw(
              aNodeCompiler.compile(
                  aNode.ifRinsed,
                  sourceBuffer,
                  owner
              )
          );
          sourceBuffer.addRaw('}');
  
          // output elif and else
          each(aNode.elses, function (elseANode) {
              var elifDirective = elseANode.directives.elif;
              if (elifDirective) {
                  sourceBuffer.addRaw('else if (' + compileExprSource.expr(elifDirective.value) + ') {');
              }
              else {
                  sourceBuffer.addRaw('else {');
              }
  
              sourceBuffer.addRaw(
                  aNodeCompiler.compile(
                      elseANode,
                      sourceBuffer,
                      owner
                  )
              );
              sourceBuffer.addRaw('}');
          });
      }
docs: 编译 if 节点
  
  @param {ANode} aNode 节点对象
  @param {CompileSourceBuffer} sourceBuffer 编译源码的中间buffer
  @param {Component} owner 所属组件实例环境