QuickJS: fix empty stack in errors created by the host
An error created outside of a JS frame, from a fetch() completion
callback for instance, records an empty stack. Up to QuickJS-NG 0.15.1
deleting the recorded "stack" property let the engine attach a real one
where the error was thrown. Since 0.16.0 the stack is kept in the error
internal data behind an accessor, the property to delete no longer
exists and the empty stack became final.
JS_NewError() is JS_NewObjectClass() plus the stack recording, and the
first half alone is reachable through the public API. Creating the
object that way records nothing, so the engine attaches the stack at the
throw site. This works the same way for every supported engine, hence
the feature test is gone.