anchor.diff:  
     If no element matches the given `#hash` anchor, a resolved promise is returned.
   
  +  \#\#\# Example
  +
  +      up.revealHash('#chapter2')
  +
     @function up.viewport.revealHash
  +  @param {string} hash
  +
     @return {Promise}
       A promise that is fulfilled when scroll position has changed to match the location hash.
     @experimental
  
positive.code: you should so Unpoly can pick the right viewport to scroll for each fragment update.
  
  
  Bootstrap integration
  ---------------------
  
  When using Bootstrap integration (`unpoly-bootstrap3.js` and `unpoly-bootstrap3.css`)
  Unpoly will automatically be aware of sticky Bootstrap components such as
  
negative.code: define additional viewports by giving the CSS property `{ overflow-y: scroll }` to any `<div>`.
  
  
  \#\#\# Revealing new content
  
  When following a [link to a fragment](/a-up-target) Unpoly will automatically
  scroll the document's viewport to [reveal](/up.viewport) the updated content.
  