code: func MakeWrapper(i interface{}) *Object {
  	v := InternalObject(i)
  	o := Global.Get("Object").New()
  	o.Set("__internal_object__", v)
  	methods := v.Get("constructor").Get("methods")
  	for i := 0; i < methods.Length(); i++ {
  		m := methods.Index(i)
  		if m.Get("pkg").String() != "" { // not exported
  			continue
  		}
  		o.Set(m.Get("name").String(), func(args ...*Object) *Object {
  			return Global.Call("$externalizeFunction", v.Get(m.Get("prop").String()), m.Get("typ"), true).Call("apply", v, args)
  		})
  	}
  	return o
  }
docs: // MakeWrapper creates a JavaScript object which has wrappers for the exported methods of i. Use explicit getter and setter methods to expose struct fields to JavaScript.