Propertly handling NJS_DECLINE in promise native functions.
Previously, NJS_DECLINE was returned from a Promise.all() and friends
when "resolve" property was not found in a promise constructor.
NJS_DECLINE was treated as NJS_ERROR in one place, but as NJS_OK in a
different place during the promise function evaluation. As a result,
the VM was left in inconsistent state during stack unwinding which
resulted in a garbage return value.
The fix is to ensure that only NJS_ERROR or NJS_OK is returned
from ordinary native functions.
This closes #545 issue on Github.
2 files changed