Forráskód Böngészése

[benchs] benchmark actual TAnon calls too

Simon Krajewski 6 éve
szülő
commit
0c8596349e
1 módosított fájl, 26 hozzáadás és 3 törlés
  1. 26 3
      tests/benchs/src/cases/Calls.hx

+ 26 - 3
tests/benchs/src/cases/Calls.hx

@@ -42,6 +42,12 @@ class Calls extends TestCase {
 		var cSub:CallClass = new CallClassChild();
 		var cInterface:CallInterface = c;
 		var cAnon:{ function instanceCall0():String; } = c;
+		var cActualAnon = {
+			instanceCall0: function ():String {
+				return null;
+			}
+		};
+		escape(cActualAnon);
 		var cDynamic:Dynamic = c;
 		var staticClosureCall0 = CallClass.staticCall0;
 		var memberClosureCall0 = c.instanceCall0;
@@ -54,7 +60,8 @@ class Calls extends TestCase {
 		suite.add("override", cSub.overrideCall0());
 		suite.add("final", cSub.finalCall0());
 		suite.add("interface", cInterface.instanceCall0());
-		suite.add("anon", cAnon.instanceCall0());
+		suite.add("class-to-anon", cAnon.instanceCall0());
+		suite.add("anon", cActualAnon.instanceCall0());
 		suite.add("dynamic", cDynamic.instanceCall0());
 		suite.add("local function", localFunctionCall0());
 		suite.add("local closure", closureCall0());
@@ -71,6 +78,12 @@ class Calls extends TestCase {
 		var cAnon:{
 			function instanceCall1(s1:String):String;
 		} = c;
+		var cActualAnon = {
+			instanceCall1: function (s1:String):String {
+				return null;
+			}
+		};
+		escape(cActualAnon);
 		var cDynamic:Dynamic = c;
 		var staticClosureCall1 = CallClass.staticCall1;
 		var memberClosureCall1 = c.instanceCall1;
@@ -83,7 +96,8 @@ class Calls extends TestCase {
 		suite.add("override", cSub.overrideCall1("foo"));
 		suite.add("final", cSub.finalCall1("foo"));
 		suite.add("interface", cInterface.instanceCall1("foo"));
-		suite.add("anon", cAnon.instanceCall1("foo"));
+		suite.add("class-to-anon", cAnon.instanceCall1("foo"));
+		suite.add("anon", cActualAnon.instanceCall1("foo"));
 		suite.add("dynamic", cDynamic.instanceCall1("foo"));
 		suite.add("local function", localFunctionCall1("foo"));
 		suite.add("local closure", closureCall1("foo"));
@@ -100,6 +114,12 @@ class Calls extends TestCase {
 		var cAnon:{
 			function instanceCall2(s1:String, s2:String):String;
 		} = c;
+		var cActualAnon = {
+			instanceCall2: function (s1:String, s2:String):String {
+				return null;
+			}
+		};
+		escape(cActualAnon);
 		var cDynamic:Dynamic = c;
 		var staticClosureCall2 = CallClass.staticCall2;
 		var memberClosureCall2 = c.instanceCall2;
@@ -112,7 +132,8 @@ class Calls extends TestCase {
 		suite.add("override", cSub.overrideCall2("foo", "bar"));
 		suite.add("final", cSub.finalCall2("foo", "bar"));
 		suite.add("interface", cInterface.instanceCall2("foo", "bar"));
-		suite.add("anon", cAnon.instanceCall2("foo", "bar"));
+		suite.add("class-to-anon", cAnon.instanceCall2("foo", "bar"));
+		suite.add("anon", cActualAnon.instanceCall2("foo", "bar"));
 		suite.add("dynamic", cDynamic.instanceCall2("foo", "bar"));
 		suite.add("local function", localFunctionCall2("foo", "bar"));
 		suite.add("local closure", closureCall2("foo", "bar"));
@@ -120,4 +141,6 @@ class Calls extends TestCase {
 		suite.add("field closure", memberClosureCall2("foo", "bar"));
 		return suite.run();
 	}
+
+	static function escape(d:Dynamic) { }
 }