code: func (p *pathObject) FollowRecursive(call goja.FunctionCall) goja.Value {
  	preds, maxDepth, tags, ok := toViaDepthData(exportArgs(call.Arguments))
  	if !ok || len(preds) == 0 {
  		return throwErr(p.s.vm, errNoVia)
  	} else if len(preds) != 1 {
  		return throwErr(p.s.vm, fmt.Errorf("expected one predicate or path for recursive follow"))
  	}
  	np := p.clonePath()
  	np = np.FollowRecursive(preds[0], maxDepth, tags)
  	return p.newVal(np)
  }
docs: // FollowRecursive is the same as Follow but follows the chain recursively.
  //
  // Starts as if at the g.M() and follows through the morphism path multiple times, returning all nodes encountered.
  //
  // Example:
  // 	// javascript:
  //	var friend = g.Morphism().Out("<follows>")
  //	// Returns all people in Charlie's network.
  //	// Returns bob and dani (from charlie), fred (from bob) and greg (from dani).
  //	g.V("<charlie>").FollowRecursive(friend).All()