Skip to content

Commit

Permalink
JavaScript: Properly match every operator as a whole token. Fix #1133
Browse files Browse the repository at this point in the history
  • Loading branch information
Golmote committed May 8, 2017
1 parent ea8a2ca commit 9f649fb
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 17 deletions.
2 changes: 1 addition & 1 deletion components/prism-javascript.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Prism.languages.javascript = Prism.languages.extend('clike', {
'number': /\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,
// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)
'function': /[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i,
'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*\*?|\/|~|\^|%|\.{3}/
'operator': /-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/
});

Prism.languages.insertBefore('javascript', 'keyword', {
Expand Down
2 changes: 1 addition & 1 deletion components/prism-javascript.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion prism.js
Original file line number Diff line number Diff line change
Expand Up @@ -671,7 +671,7 @@ Prism.languages.javascript = Prism.languages.extend('clike', {
'number': /\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,
// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)
'function': /[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i,
'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*\*?|\/|~|\^|%|\.{3}/
'operator': /-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/
});

Prism.languages.insertBefore('javascript', 'keyword', {
Expand Down
36 changes: 22 additions & 14 deletions tests/languages/javascript/operator_feature.test
Original file line number Diff line number Diff line change
@@ -1,23 +1,31 @@
- + -- ++
< <= > >=
= == ===
- -- -=
+ ++ +=
< <= << <<=
> >= >> >>= >>> >>>=
= == === =>
! != !==
& && | ||
* **
? / ~ ^ %
...
& && &=
| || |=
* ** *= **=
/ /= ~
^ ^= % %=
? ...

----------------------------------------------------

[
["operator", "-"], ["operator", "+"], ["operator", "--"], ["operator", "++"],
["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="],
["operator", "="], ["operator", "=="], ["operator", "==="],
["operator", "-"], ["operator", "--"], ["operator", "-="],
["operator", "+"], ["operator", "++"], ["operator", "+="],
["operator", "<"], ["operator", "<="], ["operator", "<<"], ["operator", "<<="],
["operator", ">"], ["operator", ">="], ["operator", ">>"], ["operator", ">>="], ["operator", ">>>"], ["operator", ">>>="],
["operator", "="], ["operator", "=="], ["operator", "==="], ["operator", "=>"],
["operator", "!"], ["operator", "!="], ["operator", "!=="],
["operator", "&"], ["operator", "&&"], ["operator", "|"], ["operator", "||"],
["operator", "*"], ["operator", "**"],
["operator", "?"], ["operator", "/"], ["operator", "~"], ["operator", "^"], ["operator", "%"],
["operator", "..."]
["operator", "&"], ["operator", "&&"], ["operator", "&="],
["operator", "|"], ["operator", "||"], ["operator", "|="],
["operator", "*"], ["operator", "**"], ["operator", "*="], ["operator", "**="],
["operator", "/"], ["operator", "/="], ["operator", "~"],
["operator", "^"], ["operator", "^="], ["operator", "%"], ["operator", "%="],
["operator", "?"], ["operator", "..."]
]

----------------------------------------------------
Expand Down

0 comments on commit 9f649fb

Please sign in to comment.