Underscores should be treated as whitespace: spelling should ignore them. To test manually, type 'Hi, _wellcome_ home.', select '_wellcome_', and context-click on the selection. The test succeeds when the context menu has spell check suggestions.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS spellingMarkerRange.toString() is "wellcome"
PASS window.getSelection().toString() is ""
PASS window.getSelection().toString() is "_wellcome_"
PASS spellingMarkerRange.toString() is "wellcome"
PASS window.getSelection().toString() is "_wellcome_"
PASS contextMenuElements[contextMenuElements.length - 1] is "welcome"
PASS successfullyParsed is true

TEST COMPLETE
Hi, _wellcome_ home.
