Gee.ArrayList items are always undefined.
Any function that returns a Gee.ArrayList (and probably other Gee collections) has a non zero size but none of the items can actually be retrieved. Attached is a simple example. gjs_libgee_test.vala provides a single function that creates an ArrayList and adds a string. As you can see with test.c this string should be easily retrievable. Finally, in test.js we attempt to retrieve the string but only get undefined.