11import { isBlank , isPresent , FunctionWrapper , BaseException } from "angular2/src/facade/lang" ;
22import { List , Map , ListWrapper , StringMapWrapper } from "angular2/src/facade/collection" ;
3+ import { Locals } from "./locals" ;
34
45export class AST {
5- eval ( context , locals ) { throw new BaseException ( "Not supported" ) ; }
6+ eval ( context , locals : Locals ) { throw new BaseException ( "Not supported" ) ; }
67
78 get isAssignable ( ) : boolean { return false ; }
89
9- assign ( context , locals , value ) { throw new BaseException ( "Not supported" ) ; }
10+ assign ( context , locals : Locals , value ) { throw new BaseException ( "Not supported" ) ; }
1011
1112 visit ( visitor : AstVisitor ) : any { return null ; }
1213
1314 toString ( ) : string { return "AST" ; }
1415}
1516
1617export class EmptyExpr extends AST {
17- eval ( context , locals ) { return null ; }
18+ eval ( context , locals : Locals ) { return null ; }
1819
1920 visit ( visitor : AstVisitor ) {
2021 // do nothing
2122 }
2223}
2324
2425export class ImplicitReceiver extends AST {
25- eval ( context , locals ) { return context ; }
26+ eval ( context , locals : Locals ) { return context ; }
2627
2728 visit ( visitor : AstVisitor ) { return visitor . visitImplicitReceiver ( this ) ; }
2829}
@@ -33,7 +34,7 @@ export class ImplicitReceiver extends AST {
3334export class Chain extends AST {
3435 constructor ( public expressions : List < any > ) { super ( ) ; }
3536
36- eval ( context , locals ) {
37+ eval ( context , locals : Locals ) {
3738 var result ;
3839 for ( var i = 0 ; i < this . expressions . length ; i ++ ) {
3940 var last = this . expressions [ i ] . eval ( context , locals ) ;
@@ -48,7 +49,7 @@ export class Chain extends AST {
4849export class Conditional extends AST {
4950 constructor ( public condition : AST , public trueExp : AST , public falseExp : AST ) { super ( ) ; }
5051
51- eval ( context , locals ) {
52+ eval ( context , locals : Locals ) {
5253 if ( this . condition . eval ( context , locals ) ) {
5354 return this . trueExp . eval ( context , locals ) ;
5455 } else {
@@ -65,7 +66,7 @@ export class AccessMember extends AST {
6566 super ( ) ;
6667 }
6768
68- eval ( context , locals ) {
69+ eval ( context , locals : Locals ) {
6970 if ( this . receiver instanceof ImplicitReceiver && isPresent ( locals ) &&
7071 locals . contains ( this . name ) ) {
7172 return locals . get ( this . name ) ;
@@ -77,7 +78,7 @@ export class AccessMember extends AST {
7778
7879 get isAssignable ( ) : boolean { return true ; }
7980
80- assign ( context , locals , value ) {
81+ assign ( context , locals : Locals , value ) {
8182 var evaluatedContext = this . receiver . eval ( context , locals ) ;
8283
8384 if ( this . receiver instanceof ImplicitReceiver && isPresent ( locals ) &&
@@ -97,7 +98,7 @@ export class SafeAccessMember extends AST {
9798 super ( ) ;
9899 }
99100
100- eval ( context , locals ) {
101+ eval ( context , locals : Locals ) {
101102 var evaluatedReceiver = this . receiver . eval ( context , locals ) ;
102103 return isBlank ( evaluatedReceiver ) ? null : this . getter ( evaluatedReceiver ) ;
103104 }
@@ -108,15 +109,15 @@ export class SafeAccessMember extends AST {
108109export class KeyedAccess extends AST {
109110 constructor ( public obj : AST , public key : AST ) { super ( ) ; }
110111
111- eval ( context , locals ) {
112+ eval ( context , locals : Locals ) {
112113 var obj : any = this . obj . eval ( context , locals ) ;
113114 var key : any = this . key . eval ( context , locals ) ;
114115 return obj [ key ] ;
115116 }
116117
117118 get isAssignable ( ) : boolean { return true ; }
118119
119- assign ( context , locals , value ) {
120+ assign ( context , locals : Locals , value ) {
120121 var obj : any = this . obj . eval ( context , locals ) ;
121122 var key : any = this . key . eval ( context , locals ) ;
122123 obj [ key ] = value ;
@@ -138,15 +139,15 @@ export class Pipe extends AST {
138139export class LiteralPrimitive extends AST {
139140 constructor ( public value ) { super ( ) ; }
140141
141- eval ( context , locals ) { return this . value ; }
142+ eval ( context , locals : Locals ) { return this . value ; }
142143
143144 visit ( visitor : AstVisitor ) { return visitor . visitLiteralPrimitive ( this ) ; }
144145}
145146
146147export class LiteralArray extends AST {
147148 constructor ( public expressions : List < any > ) { super ( ) ; }
148149
149- eval ( context , locals ) {
150+ eval ( context , locals : Locals ) {
150151 return ListWrapper . map ( this . expressions , ( e ) => e . eval ( context , locals ) ) ;
151152 }
152153
@@ -156,7 +157,7 @@ export class LiteralArray extends AST {
156157export class LiteralMap extends AST {
157158 constructor ( public keys : List < any > , public values : List < any > ) { super ( ) ; }
158159
159- eval ( context , locals ) {
160+ eval ( context , locals : Locals ) {
160161 var res = StringMapWrapper . create ( ) ;
161162 for ( var i = 0 ; i < this . keys . length ; ++ i ) {
162163 StringMapWrapper . set ( res , this . keys [ i ] , this . values [ i ] . eval ( context , locals ) ) ;
@@ -178,7 +179,7 @@ export class Interpolation extends AST {
178179export class Binary extends AST {
179180 constructor ( public operation : string , public left : AST , public right : AST ) { super ( ) ; }
180181
181- eval ( context , locals ) {
182+ eval ( context , locals : Locals ) {
182183 var left : any = this . left . eval ( context , locals ) ;
183184 switch ( this . operation ) {
184185 case '&&' :
@@ -229,15 +230,15 @@ export class Binary extends AST {
229230export class PrefixNot extends AST {
230231 constructor ( public expression : AST ) { super ( ) ; }
231232
232- eval ( context , locals ) { return ! this . expression . eval ( context , locals ) ; }
233+ eval ( context , locals : Locals ) { return ! this . expression . eval ( context , locals ) ; }
233234
234235 visit ( visitor : AstVisitor ) { return visitor . visitPrefixNot ( this ) ; }
235236}
236237
237238export class Assignment extends AST {
238239 constructor ( public target : AST , public value : AST ) { super ( ) ; }
239240
240- eval ( context , locals ) {
241+ eval ( context , locals : Locals ) {
241242 return this . target . assign ( context , locals , this . value . eval ( context , locals ) ) ;
242243 }
243244
@@ -250,7 +251,7 @@ export class MethodCall extends AST {
250251 super ( ) ;
251252 }
252253
253- eval ( context , locals ) {
254+ eval ( context , locals : Locals ) {
254255 var evaluatedArgs = evalList ( context , locals , this . args ) ;
255256 if ( this . receiver instanceof ImplicitReceiver && isPresent ( locals ) &&
256257 locals . contains ( this . name ) ) {
@@ -271,7 +272,7 @@ export class SafeMethodCall extends AST {
271272 super ( ) ;
272273 }
273274
274- eval ( context , locals ) {
275+ eval ( context , locals : Locals ) {
275276 var evaluatedReceiver = this . receiver . eval ( context , locals ) ;
276277 if ( isBlank ( evaluatedReceiver ) ) return null ;
277278 var evaluatedArgs = evalList ( context , locals , this . args ) ;
@@ -284,7 +285,7 @@ export class SafeMethodCall extends AST {
284285export class FunctionCall extends AST {
285286 constructor ( public target : AST , public args : List < any > ) { super ( ) ; }
286287
287- eval ( context , locals ) {
288+ eval ( context , locals : Locals ) {
288289 var obj : any = this . target . eval ( context , locals ) ;
289290 if ( ! ( obj instanceof Function ) ) {
290291 throw new BaseException ( `${ obj } is not a function` ) ;
@@ -298,11 +299,11 @@ export class FunctionCall extends AST {
298299export class ASTWithSource extends AST {
299300 constructor ( public ast : AST , public source : string , public location : string ) { super ( ) ; }
300301
301- eval ( context , locals ) { return this . ast . eval ( context , locals ) ; }
302+ eval ( context , locals : Locals ) { return this . ast . eval ( context , locals ) ; }
302303
303304 get isAssignable ( ) : boolean { return this . ast . isAssignable ; }
304305
305- assign ( context , locals , value ) { return this . ast . assign ( context , locals , value ) ; }
306+ assign ( context , locals : Locals , value ) { return this . ast . assign ( context , locals , value ) ; }
306307
307308 visit ( visitor : AstVisitor ) { return this . ast . visit ( visitor ) ; }
308309
@@ -413,7 +414,7 @@ var _evalListCache = [
413414 [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
414415] ;
415416
416- function evalList ( context , locals , exps : List < any > ) {
417+ function evalList ( context , locals : Locals , exps : List < any > ) {
417418 var length = exps . length ;
418419 if ( length > 10 ) {
419420 throw new BaseException ( "Cannot have more than 10 argument" ) ;
0 commit comments