Looks like QuickJS doesn't use setjmp/longjmp, as opposed to duktape. I really like this, as it will simplify memory management inside C functions, and allow to use gcc cleanup functions.
I can't be happier that it doesn't use setjmp/longjmp to handle exceptions. It makes memory management easier.
Everything is very straightforward. You can even get ref leaks report if you use -DDUMP_LEAKS.