Skip to content

Commit b28f21b

Browse files
JS: Added support for logical assignment operators (#2378)
1 parent ba5ac1d commit b28f21b

File tree

4 files changed

+9
-9
lines changed

4 files changed

+9
-9
lines changed

components/prism-javascript.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Prism.languages.javascript = Prism.languages.extend('clike', {
1919
'number': /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,
2020
// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)
2121
'function': /#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,
22-
'operator': /--|\+\+|\*\*=?|=>|&&|\|\||[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?[.?]?|[~:]/
22+
'operator': /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/
2323
});
2424

2525
Prism.languages.javascript['class-name'][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/;

components/prism-javascript.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

prism.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -996,7 +996,7 @@ Prism.languages.javascript = Prism.languages.extend('clike', {
996996
'number': /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,
997997
// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)
998998
'function': /#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,
999-
'operator': /--|\+\+|\*\*=?|=>|&&|\|\||[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?[.?]?|[~:]/
999+
'operator': /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/
10001000
});
10011001

10021002
Prism.languages.javascript['class-name'][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/;

tests/languages/javascript/operator_feature.test

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
> >= >> >>= >>> >>>=
55
= == === =>
66
! != !==
7-
& && &=
8-
| || |=
7+
& && &= &&=
8+
| || |= ||=
99
* ** *= **=
1010
/ /= ~
1111
^ ^= % %=
1212
? : ...
13-
?? ?.
13+
?? ?. ??=
1414

1515
----------------------------------------------------
1616

@@ -21,13 +21,13 @@
2121
["operator", ">"], ["operator", ">="], ["operator", ">>"], ["operator", ">>="], ["operator", ">>>"], ["operator", ">>>="],
2222
["operator", "="], ["operator", "=="], ["operator", "==="], ["operator", "=>"],
2323
["operator", "!"], ["operator", "!="], ["operator", "!=="],
24-
["operator", "&"], ["operator", "&&"], ["operator", "&="],
25-
["operator", "|"], ["operator", "||"], ["operator", "|="],
24+
["operator", "&"], ["operator", "&&"], ["operator", "&="], ["operator", "&&="],
25+
["operator", "|"], ["operator", "||"], ["operator", "|="], ["operator", "||="],
2626
["operator", "*"], ["operator", "**"], ["operator", "*="], ["operator", "**="],
2727
["operator", "/"], ["operator", "/="], ["operator", "~"],
2828
["operator", "^"], ["operator", "^="], ["operator", "%"], ["operator", "%="],
2929
["operator", "?"], ["operator", ":"], ["operator", "..."],
30-
["operator", "??"], ["operator", "?."]
30+
["operator", "??"], ["operator", "?."], ["operator", "??="]
3131
]
3232

3333
----------------------------------------------------

0 commit comments

Comments
 (0)