瀏覽代碼

fix haxe.Template.resolve stack issue (closes #5293)

Simon Krajewski 9 年之前
父節點
當前提交
47881f32ef
共有 2 個文件被更改,包括 10 次插入2 次删除
  1. 2 2
      std/haxe/Template.hx
  2. 8 0
      tests/unit/src/unit/issues/Issue5293.hx

+ 2 - 2
std/haxe/Template.hx

@@ -116,8 +116,8 @@ class Template {
 		if( value != null || Reflect.hasField(context,v) )
 		if( value != null || Reflect.hasField(context,v) )
 			return value;
 			return value;
 		for( ctx in stack ) {
 		for( ctx in stack ) {
-			var v = Reflect.getProperty(ctx,v);
-			if( v != null || Reflect.hasField(ctx,v) )
+			value = Reflect.getProperty(ctx,v);
+			if( value != null || Reflect.hasField(ctx,v) )
 				return v;
 				return v;
 		}
 		}
 		if( v == "__current__" )
 		if( v == "__current__" )

+ 8 - 0
tests/unit/src/unit/issues/Issue5293.hx

@@ -0,0 +1,8 @@
+package unit.issues;
+
+class Issue5293 extends unit.Test {
+	function test() {
+		var template = new haxe.Template("::foreach names:: hello ::__current__:: ::end::");
+		eq(" hello wwx2016 ", template.execute({names:["wwx2016"]}));
+	}
+}