@@ -112,7 +112,6 @@ var OPERATORS = extend(createMap(), {
112
112
'/' :function ( self , locals , a , b ) { return a ( self , locals ) / b ( self , locals ) ; } ,
113
113
'%' :function ( self , locals , a , b ) { return a ( self , locals ) % b ( self , locals ) ; } ,
114
114
'^' :function ( self , locals , a , b ) { return a ( self , locals ) ^ b ( self , locals ) ; } ,
115
- '=' :noop ,
116
115
'===' :function ( self , locals , a , b ) { return a ( self , locals ) === b ( self , locals ) ; } ,
117
116
'!==' :function ( self , locals , a , b ) { return a ( self , locals ) !== b ( self , locals ) ; } ,
118
117
'==' :function ( self , locals , a , b ) { return a ( self , locals ) == b ( self , locals ) ; } ,
@@ -125,8 +124,11 @@ var OPERATORS = extend(createMap(), {
125
124
'||' :function ( self , locals , a , b ) { return a ( self , locals ) || b ( self , locals ) ; } ,
126
125
'&' :function ( self , locals , a , b ) { return a ( self , locals ) & b ( self , locals ) ; } ,
127
126
// '|':function(self, locals, a,b){return a|b;},
128
- '|' :function ( self , locals , a , b ) { return b ( self , locals ) ( self , locals , a ( self , locals ) ) ; } ,
129
- '!' :function ( self , locals , a ) { return ! a ( self , locals ) ; }
127
+ '!' :function ( self , locals , a ) { return ! a ( self , locals ) ; } ,
128
+
129
+ //Tokenized as operators but parsed as assignment/filters
130
+ '=' :true ,
131
+ '|' :true
130
132
} ) ;
131
133
/* jshint bitwise: true */
132
134
var ESCAPE = { "n" :"\n" , "f" :"\f" , "r" :"\r" , "t" :"\t" , "v" :"\v" , "'" :"'" , '"' :'"' } ;
@@ -537,12 +539,12 @@ Parser.prototype = {
537
539
var left = this . expression ( ) ;
538
540
var token ;
539
541
while ( ( token = this . expect ( '|' ) ) ) {
540
- left = this . binaryFn ( left , token . fn , this . filter ( ) ) ;
542
+ left = this . filter ( left ) ;
541
543
}
542
544
return left ;
543
545
} ,
544
546
545
- filter : function ( ) {
547
+ filter : function ( inputFn ) {
546
548
var token = this . expect ( ) ;
547
549
var fn = this . $filter ( token . text ) ;
548
550
var argsFn ;
@@ -556,7 +558,8 @@ Parser.prototype = {
556
558
}
557
559
}
558
560
559
- return valueFn ( function $parseFilter ( self , locals , input ) {
561
+ return function $parseFilter ( self , locals ) {
562
+ var input = inputFn ( self , locals ) ;
560
563
if ( args ) {
561
564
args [ 0 ] = input ;
562
565
@@ -569,7 +572,7 @@ Parser.prototype = {
569
572
}
570
573
571
574
return fn ( input ) ;
572
- } ) ;
575
+ } ;
573
576
} ,
574
577
575
578
expression : function ( ) {
0 commit comments