Quellcode durchsuchen

added __current__

Nicolas Cannasse vor 19 Jahren
Ursprung
Commit
0ad6e3c6db
1 geänderte Dateien mit 4 neuen und 1 gelöschten Zeilen
  1. 4 1
      std/haxe/Template.hx

+ 4 - 1
std/haxe/Template.hx

@@ -77,12 +77,14 @@ class Template {
 		return buf.toString();
 	}
 
-	public function resolve( v : String ) : Dynamic {
+	function resolve( v : String ) : Dynamic {
 		if( Reflect.hasField(context,v) )
 			return Reflect.field(context,v);
 		for( ctx in stack )
 			if( Reflect.hasField(ctx,v) )
 				return Reflect.field(ctx,v);
+		if( v == "__current__" )
+			return context;
 		return Reflect.field(globals,v);
 	}
 
@@ -334,6 +336,7 @@ class Template {
 			var v : Dynamic = Reflect.field(macros,m);
 			var pl = new Array<Dynamic>();
 			var old = buf;
+			pl.push(resolve);
 			for( p in params ) {
 				switch( p ) {
 				case OpVar(v): pl.push(resolve(v));