nl_tokens: @callback YoastSEO . App~updatedKeywordsResults
pl_tokens: function ( args ) { if ( ! isObject ( args ) ) { args = { } ; } defaultsDeep ( args , defaults ) ; verifyArguments ( args ) ; this . config = args ; if ( args . debouncedRefresh === true ) { this . refresh = debounce ( this . refresh . bind ( this ) , inputDebounceDelay ) ; } this . _pureRefresh = throttle ( this . _pureRefresh . <mask> ( this ) , this . config . typeDelay ) ; this . callbacks = this . config . callbacks ; this . i18n = this . constructI18n ( this . config . translations ) ; this . initializeAssessors ( args ) ; this . pluggable = new Pluggable ( this ) ; this . getData ( ) ; this . defaultOutputElement = this . getDefaultOutputElement ( args ) ; if ( this . defaultOutputElement !== "" ) { this . showLoadingDialog ( ) ; } if ( isValidSnippetPreview ( args . snippetPreview ) ) { this . snippetPreview = args . snippetPreview ; /* Hack to make sure the snippet preview always has a reference to this App. This way we solve the circular
  		dependency issue. In the future this should be solved by the snippet preview not having a reference to the
  		app.*/ if ( this . snippetPreview . refObj !== this ) { this . snippetPreview . refObj = this ; this . snippetPreview . _i18n = this . i18n ; } } else if ( args . hasSnippetPreview ) { this . snippetPreview = createDefaultSnippetPreview . call ( this ) ; } this . _assessorOptions = { useCornerStone : false , useKeywordDistribution : false , } ; this . initSnippetPreview ( ) ; this . initAssessorPresenters ( ) ; }