Browse Source

added __arguments__

Nicolas Cannasse 18 năm trước cách đây
mục cha
commit
d631fd4d6d
2 tập tin đã thay đổi với 6 bổ sung2 xóa
  1. 5 1
      genswf9.ml
  2. 1 1
      std/Reflect.hx

+ 5 - 1
genswf9.ml

@@ -436,7 +436,7 @@ let debug ctx p =
 		ctx.last_line <- line;
 	end
 
-let begin_fun ctx ?(varargs=false) args tret el stat =
+let begin_fun ctx args tret el stat =
 	let old_locals = ctx.locals in
 	let old_code = ctx.code in
 	let old_infos = ctx.infos in
@@ -473,6 +473,10 @@ let begin_fun ctx ?(varargs=false) args tret el stat =
 			write ctx (A3Reg r.rid);
 			setvar ctx acc false
 	) args;
+	let args, varargs = (match args with
+		| ["__arguments__",_,_] -> [], true
+		| _ -> args, false
+	) in
 	let rec loop_try e =
 		match e.eexpr with
 		| TFunction _ -> ()

+ 1 - 1
std/Reflect.hx

@@ -296,7 +296,7 @@ class Reflect {
 		#if neko
 		return untyped __dollar__varargs(function(a) { return f(Array.new1(a,__dollar__asize(a))); });
 		#else flash9
-		return throw "Not implemented";
+		return function(__arguments__) { return f(__arguments__); };
 		#else js
 		return function() untyped {
 			var a = new Array();