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:233
What 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; }