whole_func_string: function getNodeEndMark(_x) {
    var _again = true;
  
    _function: while (_again) {
      var ast = _x;
      _again = false;
  
      if ((0, _lodash.isArray)(ast.value) && ast.value.length) {
        var lastItem = (0, _lodash.last)(ast.value);
  
        if ((0, _lodash.isArray)(lastItem) && lastItem.length) {
          _x = (0, _lodash.last)(lastItem);
          _again = true;
          lastItem = undefined;
          continue _function;
        }
  
        _x = lastItem;
        _again = true;
        lastItem = undefined;
        continue _function;
      }
  
      return ast.end_mark;
    }
  }
func_code_string: function getNodeEndMark(_x) {
    var _again = true;
  
    _function: while (_again) {
      var ast = _x;
      _again = false;
  
      if ((0, _lodash.isArray)(ast.value) && ast.value.length) {
        var lastItem = (0, _lodash.last)(ast.value);
  
        if ((0, _lodash.isArray)(lastItem) && lastItem.length) {
          _x = (0, _lodash.last)(lastItem);
          _again = true;
          lastItem = undefined;
          continue _function;
        }
  
        _x = lastItem;
        _again = true;
        lastItem = undefined;
        continue _function;
      }
  
      return ast.end_mark;
    }
  }
func_documentation_string: /*
  Gets end mark of an AST
  
  @param {Node} ast
  
  @returns {Mark}