code: function first_in_statement(output) {
          var a = output.stack(), i = a.length, node = a[--i], p = a[--i];
          while (i > 0) {
              if (p instanceof AST_Statement && p.body === node)
                  return true;
              if ((p instanceof AST_Seq           && p.car === node        ) ||
                  (p instanceof AST_Call          && p.expression === node && !(p instanceof AST_New) ) ||
                  (p instanceof AST_Dot           && p.expression === node ) ||
                  (p instanceof AST_Sub           && p.expression === node ) ||
                  (p instanceof AST_Conditional   && p.condition === node  ) ||
                  (p instanceof AST_Binary        && p.left === node       ) ||
                  (p instanceof AST_UnaryPostfix  && p.expression === node ))
              {
                  node = p;
                  p = a[--i];
              } else {
                  return false;
              }
          }
      }
docs: return true if the node at the top of the stack (that means the innermost node in the current output) is lexically the first in a statement.