Release 1.33.2
Introduce special marshalling for GErrors

Previously GErrors were transformed into plain Error with a custom
message, which removed the code and domain metadata. This commit
introduces a new class hierarchy (derived from GLib.Error) for each
enumeration representing an error domain, and modifies existing
code to throw instances of that when a function fails.

https://bugzilla.gnome.org/show_bug.cgi?id=591480
GError: add stack, fileName and lineNumber

Similar to native Errors(), GLib.Error is extended to provide debug
information in the form of fileName, lineNumber and stack (obtained
using the JS debug API). At the same time, the existing stack logging
facility is modified to be similar in format to the native one, and
logError is modified to avoid iterating object properties (which
gives an undefined order, and does not include prototype properties)

https://bugzilla.gnome.org/show_bug.cgi?id=591480
Complete implementation of GError marshalling

GErrors that are not used for "throws" are not reported as regular
boxed types but with special ERROR type tag, so we need to special
case it everywhere. This was already done for out arguments and
return values, but not for in arguments, array elements and argument
releasing.

https://bugzilla.gnome.org/show_bug.cgi?id=669350
Gio: split GDBus implementation into helpers

Soon new API wrappers will be introduced, and this will help
reusing code.

https://bugzilla.gnome.org/show_bug.cgi?id=669350
Gio: modernize DBus bindings

Remove tabs, use modern GError bindings, remove comments that
are no longer relevant.

https://bugzilla.gnome.org/show_bug.cgi?id=669350
Trace signal closures from the object instead of the context keep-alive

Implement tracing for GObjects and use it so that signal handlers
are rooted to the objects they're connected, and not the global
object. This means that if the object goes away and the only thing
referring to it is the handler function, it is recognized as a
cycle by the GC and collected, reducing memory leaks.
Other closures, as well as callback trampolines and vfuncs, are still
rooted in the usual way.

https://bugzilla.gnome.org/show_bug.cgi?id=678504
Release 1.33.3
build: Link everything to gio

Should fix a linker error building the test suite when using
-Wl,--no-undefined.  This is a fairly aggressive fix; we probably
don't need to link all of the modules to gio, but on the other hand,
there's really not a strong reason not to, and for people using
-Wl,--as-needed any unnecessary linkage due to this will be removed.

https://bugzilla.gnome.org/show_bug.cgi?id=678957
fix mem leak in gjs_value_to_g_argument()

https://bugzilla.gnome.org/show_bug.cgi?id=679138
fix mem leak in gjs_value_from_g_argument()

https://bugzilla.gnome.org/show_bug.cgi?id=679138
Do not call priv_from_js from the GObject tracer

priv_from_js calls JS_BeginRequest when it refers to a dynamic JSClass
(such as that used by GObjects), and that causes a deadlock when
called from the GC thread

https://bugzilla.gnome.org/show_bug.cgi?id=678908
Use a GTypeModule for registering custom types

This makes so that the types are installed as dynamic types, and
thus loaded and unloaded on demand. In particular, resources such
as signal class closures are now properly released when the use count
of these types drops to zero.
Additionally, to avoid unloading too early, each GObject prototype
has a now a reference on the GObjectClass. This means that the above
only applies at context destruction, and preserves previous semantics
wrt property and signal installation.
Fix object counters

Previously object counters were defined as int, which allowed them
to be negative. Replacing with unsigned int revealed a number of
places where we weren't incrementing properly, in particular in
dynamic class definitions (prototypes are finalized, and thus would
decrement the counter).
GIRepositoryFunction: don't install a resolve hook

GI functions don't have lazy properties, so they don't need a
resolve hook.
This is mainly a code cleanup.
Keep Alive: add a debugging method to print all active roots

Adds a print_roots() to keep-alive objects (such as
__gc_this_on_context_destroy, where GObjects are stored), which
prints a dump of all objects known to it on stderr.
This is primarily meant to debug GObject cycles and leaks that
are not detected.
Rework typechecking and private data access

Previously, all type safety checks were inside priv_from_js, which
returned NULL if the object was of the wrong class. Except that a
lot of code was not checking for NULL, causing potential crashes.
Also, we were only checking the JSClass, not the actual type of
object, so for example a function accepting a boxed would take in
any boxed instance, not just the right one (and then that could
crash JS code).
Rework this by splitting typechecking and private data access.
Internal API for typechecking is provided by all object classes
(object, boxed, union, param, gerror) and it takes the necessary
amount of information (GType, GIBaseInfo) to ensure type safety.
priv_from_js becomes unsafe, and thus ok to call in dangerous
data paths such as tracing and finalization.