anchor.diff:        WHEN 'stage'.
           lv_key   = iv_getdata.
           ei_page  = get_page_stage( lv_key ).
  -        ev_state = gc_event_state-new_page.
  +        ev_state = gc_event_state-new_page_w_bookmark.
   
         WHEN OTHERS.
           ev_state = gc_event_state-not_handled.
  
positive.code:             render( ).
            WHEN gc_event_state-new_page.
              call_page( li_page ).
            WHEN gc_event_state-go_back.
              back( ).
            WHEN gc_event_state-no_more_act.
              " Do nothing, handling completed
            WHEN OTHERS.
  
negative.code:       RETURN.
      ENDIF.
  
      DO lv_index TIMES.
        READ TABLE mt_stack INDEX lv_index INTO ls_stack.
        ASSERT sy-subrc = 0.
  
        DELETE mt_stack INDEX lv_index.
        ASSERT sy-subrc = 0.
  
        lv_index = lv_index - 1.
  
        IF iv_to_bookmark = abap_false OR ls_stack-bookmark = abap_true.
          EXIT.
        ENDIF.
      ENDDO.
  
      mi_cur_page = ls_stack-page. " last page always stays
      render( ).
  
    ENDMETHOD.
  
    METHOD call_page.
  
      DATA:         lt_assets  TYPE tt_web_assets,
                    ls_stack   TYPE ty_page_stack.
      FIELD-SYMBOLS <ls_asset> LIKE LINE OF lt_assets.
  
      IF NOT mi_cur_page IS INITIAL.
        ls_stack-page     = mi_cur_page.
        ls_stack-bookmark = iv_with_bookmark.
        APPEND ls_stack TO mt_stack.
      ENDIF.
  
      lt_assets = ii_page->get_assets( ).
  