package runtime_test

import "testing"

func TestCall(t *testing.T) {
	expect(t, `a := { b: func(x) { return x + 2 } }; out = a.b(5)`, 7)
	expect(t, `a := { b: { c: func(x) { return x + 2 } } }; out = a.b.c(5)`, 7)
	expect(t, `a := { b: { c: func(x) { return x + 2 } } }; out = a["b"].c(5)`, 7)

	// "this" binding
	//	expect(t, `
	//a = {
	//	b: {
	//		c: func(x) {
	//			return x + this.d  // this -> a.b
	//		},
	//		d: 5
	//	}
	//}
	//out = a["b"].c(2)`, 7)
}