code: function getPreviousVisibleNode(self) {
          var prev = self.prev();
          if (!prev) {
              prev = self.get('parent');
          } else {
              prev = getLastVisibleDescendant(prev);
          }
          return prev;
      }
docs: not same with _4ePreviousSourceNode in editor ! not same with _4ePreviousSourceNode in editor !