ti: function parameter named "undefined" is optional

to avoid problems reported for the following code:

(function(parameters, undefined) {
...
})(values);
some simple test to just stop when a comment string is encountered. (and
that comment ended on .)
faster copy into, not first build up that intermediate Set<String> of
all the child names and then copy them over one by one.
Array.isArray() support