run: |
git clone https://github.com/quickjs-ng/quickjs quickjs-ng
cd quickjs-ng
- git checkout v0.9.0
+ git checkout v0.11.0
CFLAGS="$CC_OPT -fPIC" LDFLAGS=$LD_OPT cmake -B build
cmake --build build --target qjs -j $(nproc)
. auto/feature
+ njs_feature="QuickJS JS_IsError()"
+ njs_feature_name=NJS_HAVE_QUICKJS_IS_ERROR_SINGLE_ARG
+ njs_feature_test="#include <quickjs_compat.h>
+
+ int main() {
+ JSRuntime *rt;
+ JSContext *ctx;
+
+ rt = JS_NewRuntime();
+ ctx = JS_NewContext(rt);
+ (void) JS_IsError(JS_UNDEFINED);
+ JS_FreeContext(ctx);
+ JS_FreeRuntime(rt);
+ return 0;
+ }"
+
+ . auto/feature
+
njs_feature="QuickJS JS_AddIntrinsicBigInt()"
njs_feature_name=NJS_HAVE_QUICKJS_ADD_INTRINSIC_BIG_INT
njs_feature_test="#include <quickjs_compat.h>
_Bool is_error;
JSValue val;
- is_error = JS_IsError(ctx, exception);
+ is_error = qjs_is_error(ctx, exception);
njs_qjs_dump_obj(ctx, stderr, exception, "Thrown:\n", "");
switch (calltype) {
case QJS_FS_DIRECT:
- if (JS_IsError(cx, result)) {
+ if (qjs_is_error(cx, result)) {
JS_Throw(cx, result);
return JS_EXCEPTION;
}
return result;
case QJS_FS_PROMISE:
- if (JS_IsError(cx, result)) {
+ if (qjs_is_error(cx, result)) {
JS_Throw(cx, result);
return qjs_promise_result(cx, JS_EXCEPTION);
}
return qjs_promise_result(cx, result);
case QJS_FS_CALLBACK:
- if (JS_IsError(cx, result)) {
+ if (qjs_is_error(cx, result)) {
arguments[0] = result;
arguments[1] = JS_UNDEFINED;
#define qjs_is_array(cx, a) JS_IsArray(cx, a)
#endif
+#ifdef NJS_HAVE_QUICKJS_IS_ERROR_SINGLE_ARG
+#define qjs_is_error(cx, a) JS_IsError(a)
+#else
+#define qjs_is_error(cx, a) JS_IsError(cx, a)
+#endif
+
extern qjs_module_t *qjs_modules[];
#endif /* _QJS_H_INCLUDED_ */