arg: Don't convert GHashTable keys via GIArgument
This caused problems with sign extension. An example would be a hash table with key-type int on the GObject introspection side, and inserting the key "-1" into it. The key that actually gets passed to g_hash_table_insert() is 0xffffffff, whereas when you try to look up the key on the C side, GINT_TO_POINTER(-1) is 0xffffffffffffffff, so the lookup fails. Moreover, JavaScript only has string properties on its objects (which can be represented as int32 or string JS::Values internally) so we can cut out a lot of code to deal with other value types, as well as issue a clear message that we don't support certain key-types for hashtables in GObject introspection. (We could move to using Map objects for the unsupported types in the future.) https://bugzilla.gnome.org/show_bug.cgi?id=773763
parent
de5dd654