소스 검색

Lua : fix Type.createInstance

Justin Donaldson 9 년 전
부모
커밋
3ac1d745e0
1개의 변경된 파일2개의 추가작업 그리고 23개의 파일을 삭제
  1. 2 23
      std/lua/_std/Type.hx

+ 2 - 23
std/lua/_std/Type.hx

@@ -20,6 +20,7 @@
  * DEALINGS IN THE SOFTWARE.
  */
 import lua.Lua;
+import lua.Table;
 
 enum ValueType {
 	TNull;
@@ -81,29 +82,7 @@ enum ValueType {
 	}
 
 	public static function createInstance<T>( cl : Class<T>, args : Array<Dynamic> ) : T untyped {
-		switch( args.length ) {
-		case 0:
-			return __new__(cl);
-		case 1:
-			return __new__(cl,args[0]);
-		case 2:
-			return __new__(cl,args[0],args[1]);
-		case 3:
-			return __new__(cl,args[0],args[1],args[2]);
-		case 4:
-			return __new__(cl,args[0],args[1],args[2],args[3]);
-		case 5:
-			return __new__(cl,args[0],args[1],args[2],args[3],args[4]);
-		case 6:
-			return __new__(cl,args[0],args[1],args[2],args[3],args[4],args[5]);
-		case 7:
-			return __new__(cl,args[0],args[1],args[2],args[3],args[4],args[5],args[6]);
-		case 8:
-			return __new__(cl,args[0],args[1],args[2],args[3],args[4],args[5],args[6],args[7]);
-		default:
-			throw "Too many arguments";
-		}
-		return null;
+		return __new__(cl, lua.Table.unpack(cast args, 0));
 	}
 
 	public static function createEmptyInstance<T>( cl : Class<T> ) : T untyped {