@@ -200,10 +200,11 @@ describe('Test expressions', function() {
200
200
ast . children [ 2 ] . right . what . kind . should . be . exactly ( 'class' ) ;
201
201
} ) ;
202
202
203
- it ( 'test nested expressions' , function ( ) {
203
+ it ( 'test nested expressions precedence ' , function ( ) {
204
204
var ast = parser . parseEval ( [
205
205
'$a = 5 * 2 + 1;' , // same as (1 + (5 * 2))
206
206
'$b = 5 * (2 + 1);' ,
207
+ '$c = 1 + 2 / 3 + 4;' , // same as (1 + (4 + (2 / 3)))
207
208
] . join ( '\n' ) , {
208
209
parser : { debug : false }
209
210
} ) ;
@@ -226,6 +227,20 @@ describe('Test expressions', function() {
226
227
bExpr . right . inner . type . should . be . exactly ( '+' ) ;
227
228
bExpr . right . inner . right . value . should . be . exactly ( '1' ) ;
228
229
230
+ var cExpr = ast . children [ 2 ] . right ;
231
+ cExpr . kind . should . be . exactly ( 'bin' ) ;
232
+ cExpr . left . value . should . be . exactly ( '1' ) ;
233
+ cExpr . type . should . be . exactly ( '+' ) ;
234
+
235
+ cExpr . right . kind . should . be . exactly ( 'bin' ) ;
236
+ cExpr . right . left . value . should . be . exactly ( '4' ) ;
237
+ cExpr . right . type . should . be . exactly ( '+' ) ;
238
+
239
+ cExpr . right . right . kind . should . be . exactly ( 'bin' ) ;
240
+ cExpr . right . right . left . value . should . be . exactly ( '2' ) ;
241
+ cExpr . right . right . type . should . be . exactly ( '/' ) ;
242
+ cExpr . right . right . right . value . should . be . exactly ( '3' ) ;
243
+
229
244
} ) ;
230
245
231
246
} ) ;
0 commit comments