Steps to replicate the issue (include links if applicable):
- Enable "New wikitext mode" and "refToolbar" in preferences on testwiki
- Start editing a page
What happens?:
Uncaught TypeError: range is null
getCaretPosition https://test.wikipedia.org/w/load.php?lang=en&modules=ext.visualEditor.articleTarget%2Cbase%2Ccore%2CdesktopArticleTarget%2CdesktopTarget%2Cdiffing%2CeditCheck%2Cicons%2Clanguage%2Cmediawiki%2Cmwalienextension%2Cmwcore%2Cmwextensions%2Cmwformatting%2Cmwgallery%2Cmwimage%2Cmwlanguage%2Cmwlink%2Cmwmeta%2Cmwsave%2Cmwsignature%2Cmwtransclusion%2Cmwwikitext%2Csanitize%2Cswitching%2Cwelcome%7Cext.visualEditor.core.desktop%2Cutils%7Cext.visualEditor.mwextensions.desktop%7Cext.visualEditor.mwimage.core&skin=vector&version=edjc8:53343
textSelection index.php:403
wikiEditor https://test.wikipedia.org/w/load.php?lang=en&modules=ext.wikiEditor&skin=vector&version=13zx4:18
init https://test.wikipedia.org/w/index.php?title=MediaWiki:RefToolbar.js&action=raw&ctype=text/javascript:128
<anonymous> https://test.wikipedia.org/w/index.php?title=MediaWiki:RefToolbar.js&action=raw&ctype=text/javascript:233What should have happened instead?:
No console error.
Other information (browser name/version, screenshots, etc.):
Intermittent. Clearing cache and site data seems to increase the chance for the error.
range.end in getCaretPosition() in ve.ui.MWWikitextSurface.js appears to be unsafely referenced even though range.start isn't three lines before.
getCaretPosition: function ( options ) { var range = surface.getModel().getSelection().getCoveringRange(), surfaceModel = surface.getModel(), caretPos = range ? surfaceModel.getSourceOffsetFromOffset( range.start ) : 0; return options.startAndEnd ? [ caretPos, surfaceModel.getSourceOffsetFromOffset( range.end ) ] : caretPos; }