     element = f.get(element, options)
     e.subtree(element, allSelector())
 
+  ###**
+  Returns a list of all viewports that are either contained within
+  the given element or that are ancestors of the given element.
+
+  This is relevant when updating a fragment with `{ scroll: 'restore' | 'reset' }`.
+  In tht case we restore / reset the scroll tops of all viewports around the fragment.
+
+  @function up.viewport.around
+  @param {string|Element|jQuery} element
+  @param {Object} options
+  @return List<Element>
+  @internal
+  ###
   getAround = (element, options = {}) ->
     element = f.get(element, options)
     e.around(element, allSelector())

    e.closest(element, allSelector())

  ###**
  Returns a jQuery collection of all the viewports contained within the
  given selector or element.

  @function up.viewport.subtree
  @param {string|Element|jQuery} target
  @return List<Element>
  @internal
  ###

    if args[0]
      viewports = [closest(args[0], options)]
    else if options.around
      # This is relevant when updating a fragment with { scroll: 'restore' | 'reset' }.
      # In tht case we restore / reset the scroll tops of all viewports around the fragment.
      viewports = getAround(options.around, options)
    else
      viewports = getAll(options)
