| 1234567891011121314151617181920212223242526272829303132333435363738 | @:native("test.MathOperation")extern class MathOperation {	public static inline overload function perform(op:Int->Int, value:Int) {		return op(value);	}	public static inline overload function perform(op:Int->Int->Int, value:Int) {		return op(value, value);	}}@:native("test.MathOperation")class MathOperationNotExtern {	public static extern inline overload function perform(op:Int->Int, value:Int) {		return op(value);	}	public static extern inline overload function perform(op:Int->Int->Int, value:Int) {		return op(value, value);	}}class Main {	static function main() {		Sys.println(MathOperation.perform(double, 3));		Sys.println(MathOperation.perform(multiply, 3));		Sys.println(MathOperationNotExtern.perform(double, 3));		Sys.println(MathOperationNotExtern.perform(multiply, 3));	}	static function double(a):Int {		return a * 2;	}	static function multiply(a, b):Int {		return a * b;	}}
 |