瀏覽代碼

added __current__

Nicolas Cannasse 19 年之前
父節點
當前提交
0ad6e3c6db
共有 1 個文件被更改,包括 4 次插入1 次删除
  1. 4 1
      std/haxe/Template.hx

+ 4 - 1
std/haxe/Template.hx

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