class Foo { method0() { return "no args"; } method1(a) { return a; } method2(a, b) { return a + b; } method3(a, b, c) { return a + b + c; } method4(a, b, c, d) { return a + b + c + d; } method5(a, b, c, d, e) { return a + b + c + d + e; } method6(a, b, c, d, e, f) { return a + b + c + d + e + f; } method7(a, b, c, d, e, f, g) { return a + b + c + d + e + f + g; } method8(a, b, c, d, e, f, g, h) { return a + b + c + d + e + f + g + h; } } var foo = Foo(); print(foo.method0()); # expect: no args print(foo.method1(1)); # expect: 1 print(foo.method2(1, 2)); # expect: 3 print(foo.method3(1, 2, 3)); # expect: 6 print(foo.method4(1, 2, 3, 4)); # expect: 10 print(foo.method5(1, 2, 3, 4, 5)); # expect: 15 print(foo.method6(1, 2, 3, 4, 5, 6)); # expect: 21 print(foo.method7(1, 2, 3, 4, 5, 6, 7)); # expect: 28 print(foo.method8(1, 2, 3, 4, 5, 6, 7, 8)); # expect: 36