This was discussed before but when enumerating an object only a few properties are shown.
Use Case
Mikeal is working on a plugin and adds a list to his plugin. On the list change he is trying to find the selected option but doesn’t know how. So he enumerates through all the properties on the list. Only the properties starting with an underscore are shown.
You’re actually seeing the private internals of UXP UI rendering here… the reason being is that they are just simple fields. Unfortunately in JS getters and setters are not enumerable by default (or when using get/set syntax), and that means fields like innerHTML don’t show. This is why you may often get objects that render as {}.
When CDT lands (it’s enabled in the panels prerelease, btw), this may be less of an issue, since Chrome lets you inspect the object more directly.