@@ -9,6 +9,7 @@ import { PREC_MULT } from '../src/const.js'
99
1010test ( 'parse: basic' , t => {
1111 parse ( "a==2" )
12+ parse ( "a!=2" )
1213 is ( parse ( 'a >> b' ) , [ '>>' , 'a' , 'b' ] )
1314 is ( parse ( 'a || b' ) , [ '||' , 'a' , 'b' ] )
1415 is ( parse ( 'a && b || c' ) , [ '||' , [ '&&' , 'a' , 'b' ] , 'c' ] )
@@ -73,6 +74,53 @@ test('parse: basic', t => {
7374 )
7475} )
7576
77+ test ( 'parse: default operators' , t => {
78+ is ( parse ( `a.b` ) , [ '.' , 'a' , 'b' ] )
79+ is ( parse ( `a[b]` ) , [ '[]' , 'a' , 'b' ] )
80+ is ( parse ( `a(b)` ) , [ '()' , 'a' , 'b' ] )
81+ is ( parse ( `a++` ) , [ '++' , 'a' , null , ] )
82+ is ( parse ( `a--` ) , [ '--' , 'a' , null , ] )
83+ is ( parse ( `++a` ) , [ '++' , 'a' ] )
84+ is ( parse ( `--a` ) , [ '--' , 'a' ] )
85+ is ( parse ( `a * b` ) , [ '*' , 'a' , 'b' ] )
86+ is ( parse ( `a / b` ) , [ '/' , 'a' , 'b' ] )
87+ is ( parse ( `a % b` ) , [ '%' , 'a' , 'b' ] )
88+ is ( parse ( `+a` ) , [ '+' , 'a' ] )
89+ is ( parse ( `-a` ) , [ '-' , 'a' ] )
90+ is ( parse ( `a + b` ) , [ '+' , 'a' , 'b' ] )
91+ is ( parse ( `a - b` ) , [ '-' , 'a' , 'b' ] )
92+ is ( parse ( `a < b` ) , [ '<' , 'a' , 'b' ] )
93+ is ( parse ( `a <= b` ) , [ '<=' , 'a' , 'b' ] )
94+ is ( parse ( `a > b` ) , [ '>' , 'a' , 'b' ] )
95+ is ( parse ( `a >= b` ) , [ '>=' , 'a' , 'b' ] )
96+ is ( parse ( `a == b` ) , [ '==' , 'a' , 'b' ] )
97+ is ( parse ( `a != b` ) , [ '!=' , 'a' , 'b' ] )
98+ is ( parse ( `~a` ) , [ '~' , 'a' ] )
99+ is ( parse ( `a & b` ) , [ '&' , 'a' , 'b' ] )
100+ is ( parse ( `a ^ b` ) , [ '^' , 'a' , 'b' ] )
101+ is ( parse ( `a | b` ) , [ '|' , 'a' , 'b' ] )
102+ is ( parse ( `a << b` ) , [ '<<' , 'a' , 'b' ] )
103+ is ( parse ( `a >> b` ) , [ '>>' , 'a' , 'b' ] )
104+ is ( parse ( `!a` ) , [ '!' , 'a' ] )
105+ is ( parse ( `a && b` ) , [ '&&' , 'a' , 'b' ] )
106+ is ( parse ( `a || b` ) , [ '||' , 'a' , 'b' ] )
107+ is ( parse ( `a = b` ) , [ '=' , 'a' , 'b' ] )
108+ is ( parse ( `a += b` ) , [ '+=' , 'a' , 'b' ] )
109+ is ( parse ( `a -= b` ) , [ '-=' , 'a' , 'b' ] )
110+ is ( parse ( `a *= b` ) , [ '*=' , 'a' , 'b' ] )
111+ is ( parse ( `a /= b` ) , [ '/=' , 'a' , 'b' ] )
112+ is ( parse ( `a %= b` ) , [ '%=' , 'a' , 'b' ] )
113+ is ( parse ( `a <<= b` ) , [ '<<=' , 'a' , 'b' ] )
114+ is ( parse ( `a >>= b` ) , [ '>>=' , 'a' , 'b' ] )
115+ is ( parse ( `(a(b))` ) , [ '()' , [ '()' , 'a' , 'b' ] ] )
116+ is ( parse ( `a; b;` ) , [ ';' , 'a' , 'b' , null ] )
117+ is ( parse ( `"abc"` ) , [ , 'abc' ] )
118+ is ( parse ( `'abc'` ) , [ , 'abc' ] )
119+ is ( parse ( `0.1` ) , [ , 0.1 ] )
120+ is ( parse ( `1.2e+3` ) , [ , 1.2e+3 ] )
121+
122+ } )
123+
76124test ( 'parse: strings' , t => {
77125 throws ( ( ) => parse ( '"a' ) , 'bad string' )
78126 is ( parse ( 'a + b' ) , [ '+' , 'a' , 'b' ] )
@@ -132,8 +180,8 @@ test('parse: unaries', t => {
132180 is ( parse ( 'a-+!b' ) , [ '-' , 'a' , [ '+' , [ '!' , 'b' ] ] ] )
133181 is ( parse ( 'a * -a' ) , [ '*' , 'a' , [ '-' , 'a' ] ] )
134182
135- is ( parse ( 'a--' ) , [ '--+ ' , 'a' ] )
136- is ( parse ( 'a++' ) , [ '++- ' , 'a' ] )
183+ is ( parse ( 'a--' ) , [ '--' , 'a' , null ] )
184+ is ( parse ( 'a++' ) , [ '++' , 'a' , null ] )
137185} )
138186
139187test ( 'parse: prop access' , t => {
0 commit comments