about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorCharlie Gordon <github@chqrlie.org>2024-02-10 16:18:11 +0100
committerbptato <nincsnevem662@gmail.com>2024-03-02 18:12:23 +0100
commitccbcccf3d7fbd88cc56387a989cdec82d51d8f3a (patch)
tree1f222b1207d720ccc88bd5f91cd6abcaf274066f
parent58440e5b3714bf37c19a37c24029d398e573ed19 (diff)
downloadchawan-ccbcccf3d7fbd88cc56387a989cdec82d51d8f3a.tar.gz
Strip trailing spaces
-rw-r--r--lib/quickjs/cutils.c4
-rw-r--r--lib/quickjs/cutils.h16
-rw-r--r--lib/quickjs/libbf.c538
-rw-r--r--lib/quickjs/libbf.h20
-rw-r--r--lib/quickjs/libregexp-opcode.h2
-rw-r--r--lib/quickjs/libregexp.c98
-rw-r--r--lib/quickjs/libregexp.h4
-rw-r--r--lib/quickjs/libunicode.c56
-rw-r--r--lib/quickjs/libunicode.h2
-rw-r--r--lib/quickjs/list.h4
-rw-r--r--lib/quickjs/quickjs-atom.h6
-rw-r--r--lib/quickjs/quickjs-opcode.h10
-rw-r--r--lib/quickjs/quickjs.c752
-rw-r--r--lib/quickjs/quickjs.h8
14 files changed, 760 insertions, 760 deletions
diff --git a/lib/quickjs/cutils.c b/lib/quickjs/cutils.c
index a02fb768..b4960f9c 100644
--- a/lib/quickjs/cutils.c
+++ b/lib/quickjs/cutils.c
@@ -1,6 +1,6 @@
 /*
  * C utilities
- * 
+ *
  * Copyright (c) 2017 Fabrice Bellard
  * Copyright (c) 2018 Charlie Gordon
  *
@@ -172,7 +172,7 @@ int __attribute__((format(printf, 2, 3))) dbuf_printf(DynBuf *s,
     va_list ap;
     char buf[128];
     int len;
-    
+
     va_start(ap, fmt);
     len = vsnprintf(buf, sizeof(buf), fmt, ap);
     va_end(ap);
diff --git a/lib/quickjs/cutils.h b/lib/quickjs/cutils.h
index 8399d614..a9077f54 100644
--- a/lib/quickjs/cutils.h
+++ b/lib/quickjs/cutils.h
@@ -1,6 +1,6 @@
 /*
  * C utilities
- * 
+ *
  * Copyright (c) 2017 Fabrice Bellard
  * Copyright (c) 2018 Charlie Gordon
  *
@@ -223,13 +223,13 @@ static inline uint32_t bswap32(uint32_t v)
 
 static inline uint64_t bswap64(uint64_t v)
 {
-    return ((v & ((uint64_t)0xff << (7 * 8))) >> (7 * 8)) | 
-        ((v & ((uint64_t)0xff << (6 * 8))) >> (5 * 8)) | 
-        ((v & ((uint64_t)0xff << (5 * 8))) >> (3 * 8)) | 
-        ((v & ((uint64_t)0xff << (4 * 8))) >> (1 * 8)) | 
-        ((v & ((uint64_t)0xff << (3 * 8))) << (1 * 8)) | 
-        ((v & ((uint64_t)0xff << (2 * 8))) << (3 * 8)) | 
-        ((v & ((uint64_t)0xff << (1 * 8))) << (5 * 8)) | 
+    return ((v & ((uint64_t)0xff << (7 * 8))) >> (7 * 8)) |
+        ((v & ((uint64_t)0xff << (6 * 8))) >> (5 * 8)) |
+        ((v & ((uint64_t)0xff << (5 * 8))) >> (3 * 8)) |
+        ((v & ((uint64_t)0xff << (4 * 8))) >> (1 * 8)) |
+        ((v & ((uint64_t)0xff << (3 * 8))) << (1 * 8)) |
+        ((v & ((uint64_t)0xff << (2 * 8))) << (3 * 8)) |
+        ((v & ((uint64_t)0xff << (1 * 8))) << (5 * 8)) |
         ((v & ((uint64_t)0xff << (0 * 8))) << (7 * 8));
 }
 
diff --git a/lib/quickjs/libbf.c b/lib/quickjs/libbf.c
index e24c1673..a7d36c28 100644
--- a/lib/quickjs/libbf.c
+++ b/lib/quickjs/libbf.c
@@ -1,6 +1,6 @@
 /*
  * Tiny arbitrary precision floating point library
- * 
+ *
  * Copyright (c) 2017-2021 Fabrice Bellard
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -57,8 +57,8 @@
 #define UDIV1NORM_THRESHOLD 3
 
 #if LIMB_BITS == 64
-#define FMT_LIMB1 "%" PRIx64 
-#define FMT_LIMB "%016" PRIx64 
+#define FMT_LIMB1 "%" PRIx64
+#define FMT_LIMB "%016" PRIx64
 #define PRId_LIMB PRId64
 #define PRIu_LIMB PRIu64
 
@@ -213,7 +213,7 @@ void bf_init(bf_context_t *s, bf_t *r)
 int bf_resize(bf_t *r, limb_t len)
 {
     limb_t *tab;
-    
+
     if (len != r->len) {
         tab = bf_realloc(r->ctx, r->tab, len * sizeof(limb_t));
         if (!tab && len != 0)
@@ -231,7 +231,7 @@ int bf_set_ui(bf_t *r, uint64_t a)
     if (a == 0) {
         r->expn = BF_EXP_ZERO;
         bf_resize(r, 0); /* cannot fail */
-    } 
+    }
 #if LIMB_BITS == 32
     else if (a <= 0xffffffff)
 #else
@@ -393,7 +393,7 @@ static inline limb_t scan_bit_nz(const bf_t *r, slimb_t bit_pos)
 {
     slimb_t pos;
     limb_t v;
-    
+
     pos = bit_pos >> LIMB_LOG2_BITS;
     if (pos < 0)
         return 0;
@@ -416,7 +416,7 @@ static int bf_get_rnd_add(int *pret, const bf_t *r, limb_t l,
 {
     int add_one, inexact;
     limb_t bit1, bit0;
-    
+
     if (rnd_mode == BF_RNDF) {
         bit0 = 1; /* faithful rounding does not honor the INEXACT flag */
     } else {
@@ -427,7 +427,7 @@ static int bf_get_rnd_add(int *pret, const bf_t *r, limb_t l,
     /* get the bit at 'prec' */
     bit1 = get_bit(r->tab, l, l * LIMB_BITS - 1 - prec);
     inexact = (bit1 | bit0) != 0;
-    
+
     add_one = 0;
     switch(rnd_mode) {
     case BF_RNDZ:
@@ -458,7 +458,7 @@ static int bf_get_rnd_add(int *pret, const bf_t *r, limb_t l,
     default:
         abort();
     }
-    
+
     if (inexact)
         *pret |= BF_ST_INEXACT;
     return add_one;
@@ -468,7 +468,7 @@ static int bf_set_overflow(bf_t *r, int sign, limb_t prec, bf_flags_t flags)
 {
     slimb_t i, l, e_max;
     int rnd_mode;
-    
+
     rnd_mode = flags & BF_RND_MASK;
     if (prec == BF_PREC_INF ||
         rnd_mode == BF_RNDN ||
@@ -511,7 +511,7 @@ static int __bf_round(bf_t *r, limb_t prec1, bf_flags_t flags, limb_t l,
     e_range = (limb_t)1 << (bf_get_exp_bits(flags) - 1);
     e_min = -e_range + 3;
     e_max = e_range;
-    
+
     if (flags & BF_FLAG_RADPNT_PREC) {
         /* 'prec' is the precision after the radix point */
         if (prec1 != BF_PREC_INF)
@@ -530,7 +530,7 @@ static int __bf_round(bf_t *r, limb_t prec1, bf_flags_t flags, limb_t l,
     /* round to prec bits */
     rnd_mode = flags & BF_RND_MASK;
     add_one = bf_get_rnd_add(&ret, r, l, prec, rnd_mode);
-    
+
     if (prec <= 0) {
         if (add_one) {
             bf_resize(r, 1); /* cannot fail */
@@ -543,12 +543,12 @@ static int __bf_round(bf_t *r, limb_t prec1, bf_flags_t flags, limb_t l,
         }
     } else if (add_one) {
         limb_t carry;
-        
+
         /* add one starting at digit 'prec - 1' */
         bit_pos = l * LIMB_BITS - 1 - (prec - 1);
         pos = bit_pos >> LIMB_LOG2_BITS;
         carry = (limb_t)1 << (bit_pos & (LIMB_BITS - 1));
-        
+
         for(i = pos; i < l; i++) {
             v = r->tab[i] + carry;
             carry = (v < carry);
@@ -567,7 +567,7 @@ static int __bf_round(bf_t *r, limb_t prec1, bf_flags_t flags, limb_t l,
             r->expn++;
         }
     }
-    
+
     /* check underflow */
     if (unlikely(r->expn < e_min)) {
         if (flags & BF_FLAG_SUBNORMAL) {
@@ -581,11 +581,11 @@ static int __bf_round(bf_t *r, limb_t prec1, bf_flags_t flags, limb_t l,
             return ret;
         }
     }
-    
+
     /* check overflow */
     if (unlikely(r->expn > e_max))
         return bf_set_overflow(r, r->sign, prec1, flags);
-    
+
     /* keep the bits starting at 'prec - 1' */
     bit_pos = l * LIMB_BITS - 1 - (prec - 1);
     i = bit_pos >> LIMB_LOG2_BITS;
@@ -613,7 +613,7 @@ int bf_normalize_and_round(bf_t *r, limb_t prec1, bf_flags_t flags)
     limb_t l, v, a;
     int shift, ret;
     slimb_t i;
-    
+
     //    bf_print_str("bf_renorm", r);
     l = r->len;
     while (l > 0 && r->tab[l - 1] == 0)
@@ -652,7 +652,7 @@ int bf_can_round(const bf_t *a, slimb_t prec, bf_rnd_t rnd_mode, slimb_t k)
     BOOL is_rndn;
     slimb_t bit_pos, n;
     limb_t bit;
-    
+
     if (a->expn == BF_EXP_INF || a->expn == BF_EXP_NAN)
         return FALSE;
     if (rnd_mode == BF_RNDF) {
@@ -666,7 +666,7 @@ int bf_can_round(const bf_t *a, slimb_t prec, bf_rnd_t rnd_mode, slimb_t k)
     bit_pos = a->len * LIMB_BITS - 1 - prec;
     n = k - prec;
     /* bit pattern for RNDN or RNDNA: 0111.. or 1000...
-       for other rounding modes: 000... or 111... 
+       for other rounding modes: 000... or 111...
     */
     bit = get_bit(a->tab, a->len, bit_pos);
     bit_pos--;
@@ -758,7 +758,7 @@ int bf_cmpu(const bf_t *a, const bf_t *b)
 {
     slimb_t i;
     limb_t len, v1, v2;
-    
+
     if (a->expn != b->expn) {
         if (a->expn < b->expn)
             return -1;
@@ -783,7 +783,7 @@ int bf_cmpu(const bf_t *a, const bf_t *b)
 int bf_cmp_full(const bf_t *a, const bf_t *b)
 {
     int res;
-    
+
     if (a->expn == BF_EXP_NAN || b->expn == BF_EXP_NAN) {
         if (a->expn == b->expn)
             res = 0;
@@ -807,7 +807,7 @@ int bf_cmp_full(const bf_t *a, const bf_t *b)
 int bf_cmp(const bf_t *a, const bf_t *b)
 {
     int res;
-    
+
     if (a->expn == BF_EXP_NAN || b->expn == BF_EXP_NAN) {
         res = 2;
     } else if (a->sign != b->sign) {
@@ -826,7 +826,7 @@ int bf_cmp(const bf_t *a, const bf_t *b)
 /* Compute the number of bits 'n' matching the pattern:
    a= X1000..0
    b= X0111..1
-              
+
    When computing a-b, the result will have at least n leading zero
    bits.
 
@@ -941,7 +941,7 @@ static int bf_add_internal(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
         } else {
             cancelled_bits = 0;
         }
-        
+
         /* add two extra bits for rounding */
         precl = (cancelled_bits + prec + 2 + LIMB_BITS - 1) / LIMB_BITS;
         tot_len = bf_max(a->len, b->len + (d + LIMB_BITS - 1) / LIMB_BITS);
@@ -959,7 +959,7 @@ static int bf_add_internal(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
         while (i < 0) {
             slimb_t ap, bp;
             BOOL inflag;
-            
+
             ap = a_offset + i;
             bp = b_bit_offset + i * LIMB_BITS;
             inflag = FALSE;
@@ -983,7 +983,7 @@ static int bf_add_internal(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
                 if (ap < 0)
                     i = bf_min(i, -a_offset);
                 /* b_bit_offset + i * LIMB_BITS + LIMB_BITS >= 1
-                   equivalent to 
+                   equivalent to
                    i >= ceil(-b_bit_offset + 1 - LIMB_BITS) / LIMB_BITS)
                 */
                 if (bp + LIMB_BITS <= 0)
@@ -1040,12 +1040,12 @@ static int __bf_sub(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
     return bf_add_internal(r, a, b, prec, flags, 1);
 }
 
-limb_t mp_add(limb_t *res, const limb_t *op1, const limb_t *op2, 
+limb_t mp_add(limb_t *res, const limb_t *op1, const limb_t *op2,
               limb_t n, limb_t carry)
 {
     slimb_t i;
     limb_t k, a, v, k1;
-    
+
     k = carry;
     for(i=0;i<n;i++) {
         v = op1[i];
@@ -1074,12 +1074,12 @@ limb_t mp_add_ui(limb_t *tab, limb_t b, size_t n)
     return k;
 }
 
-limb_t mp_sub(limb_t *res, const limb_t *op1, const limb_t *op2, 
+limb_t mp_sub(limb_t *res, const limb_t *op1, const limb_t *op2,
               mp_size_t n, limb_t carry)
 {
     int i;
     limb_t k, a, v, k1;
-    
+
     k = carry;
     for(i=0;i<n;i++) {
         v = op1[i];
@@ -1097,7 +1097,7 @@ static limb_t mp_neg(limb_t *res, const limb_t *op2, mp_size_t n, limb_t carry)
 {
     int i;
     limb_t k, a, v, k1;
-    
+
     k = carry;
     for(i=0;i<n;i++) {
         v = 0;
@@ -1114,7 +1114,7 @@ limb_t mp_sub_ui(limb_t *tab, limb_t b, mp_size_t n)
 {
     mp_size_t i;
     limb_t k, a, v;
-    
+
     k=b;
     for(i=0;i<n;i++) {
         v = tab[i];
@@ -1127,9 +1127,9 @@ limb_t mp_sub_ui(limb_t *tab, limb_t b, mp_size_t n)
     return k;
 }
 
-/* r = (a + high*B^n) >> shift. Return the remainder r (0 <= r < 2^shift). 
+/* r = (a + high*B^n) >> shift. Return the remainder r (0 <= r < 2^shift).
    1 <= shift <= LIMB_BITS - 1 */
-static limb_t mp_shr(limb_t *tab_r, const limb_t *tab, mp_size_t n, 
+static limb_t mp_shr(limb_t *tab_r, const limb_t *tab, mp_size_t n,
                      int shift, limb_t high)
 {
     mp_size_t i;
@@ -1146,7 +1146,7 @@ static limb_t mp_shr(limb_t *tab_r, const limb_t *tab, mp_size_t n,
 }
 
 /* tabr[] = taba[] * b + l. Return the high carry */
-static limb_t mp_mul1(limb_t *tabr, const limb_t *taba, limb_t n, 
+static limb_t mp_mul1(limb_t *tabr, const limb_t *taba, limb_t n,
                       limb_t b, limb_t l)
 {
     limb_t i;
@@ -1166,7 +1166,7 @@ static limb_t mp_add_mul1(limb_t *tabr, const limb_t *taba, limb_t n,
 {
     limb_t i, l;
     dlimb_t t;
-    
+
     l = 0;
     for(i = 0; i < n; i++) {
         t = (dlimb_t)taba[i] * (dlimb_t)b + l + tabr[i];
@@ -1177,12 +1177,12 @@ static limb_t mp_add_mul1(limb_t *tabr, const limb_t *taba, limb_t n,
 }
 
 /* size of the result : op1_size + op2_size. */
-static void mp_mul_basecase(limb_t *result, 
-                            const limb_t *op1, limb_t op1_size, 
-                            const limb_t *op2, limb_t op2_size) 
+static void mp_mul_basecase(limb_t *result,
+                            const limb_t *op1, limb_t op1_size,
+                            const limb_t *op2, limb_t op2_size)
 {
     limb_t i, r;
-    
+
     result[op1_size] = mp_mul1(result, op1, op1_size, op2[0], 0);
     for(i=1;i<op2_size;i++) {
         r = mp_add_mul1(result + i, op1, op1_size, op2[i]);
@@ -1192,9 +1192,9 @@ static void mp_mul_basecase(limb_t *result,
 
 /* return 0 if OK, -1 if memory error */
 /* XXX: change API so that result can be allocated */
-int mp_mul(bf_context_t *s, limb_t *result, 
-           const limb_t *op1, limb_t op1_size, 
-           const limb_t *op2, limb_t op2_size) 
+int mp_mul(bf_context_t *s, limb_t *result,
+           const limb_t *op1, limb_t op1_size,
+           const limb_t *op2, limb_t op2_size)
 {
 #ifdef USE_FFT_MUL
     if (unlikely(bf_min(op1_size, op2_size) >= FFT_MUL_THRESHOLD)) {
@@ -1219,7 +1219,7 @@ static limb_t mp_sub_mul1(limb_t *tabr, const limb_t *taba, limb_t n,
 {
     limb_t i, l;
     dlimb_t t;
-    
+
     l = 0;
     for(i = 0; i < n; i++) {
         t = tabr[i] - (dlimb_t)taba[i] * (dlimb_t)b - l;
@@ -1283,15 +1283,15 @@ static limb_t mp_div1norm(limb_t *tabr, const limb_t *taba, limb_t n,
     return r;
 }
 
-static int mp_divnorm_large(bf_context_t *s, 
-                            limb_t *tabq, limb_t *taba, limb_t na, 
+static int mp_divnorm_large(bf_context_t *s,
+                            limb_t *tabq, limb_t *taba, limb_t na,
                             const limb_t *tabb, limb_t nb);
 
 /* base case division: divides taba[0..na-1] by tabb[0..nb-1]. tabb[nb
    - 1] must be >= 1 << (LIMB_BITS - 1). na - nb must be >= 0. 'taba'
    is modified and contains the remainder (nb limbs). tabq[0..na-nb]
    contains the quotient with tabq[na - nb] <= 1. */
-static int mp_divnorm(bf_context_t *s, limb_t *tabq, limb_t *taba, limb_t na, 
+static int mp_divnorm(bf_context_t *s, limb_t *tabq, limb_t *taba, limb_t na,
                       const limb_t *tabb, limb_t nb)
 {
     limb_t r, a, c, q, v, b1, b1_inv, n, dummy_r;
@@ -1306,7 +1306,7 @@ static int mp_divnorm(bf_context_t *s, limb_t *tabq, limb_t *taba, limb_t na,
     if (bf_min(n, nb) >= DIVNORM_LARGE_THRESHOLD) {
         return mp_divnorm_large(s, tabq, taba, na, tabb, nb);
     }
-    
+
     if (n >= UDIV1NORM_THRESHOLD)
         b1_inv = udiv1norm_init(b1);
     else
@@ -1325,7 +1325,7 @@ static int mp_divnorm(bf_context_t *s, limb_t *tabq, limb_t *taba, limb_t na,
     if (q) {
         mp_sub(taba + n, taba + n, tabb, nb, 0);
     }
-    
+
     for(i = n - 1; i >= 0; i--) {
         if (unlikely(taba[i + nb] >= b1)) {
             q = -1;
@@ -1364,14 +1364,14 @@ static int mp_divnorm(bf_context_t *s, limb_t *tabq, limb_t *taba, limb_t na,
 
 /* compute r=B^(2*n)/a such as a*r < B^(2*n) < a*r + 2 with n >= 1. 'a'
    has n limbs with a[n-1] >= B/2 and 'r' has n+1 limbs with r[n] = 1.
-   
+
    See Modern Computer Arithmetic by Richard P. Brent and Paul
    Zimmermann, algorithm 3.5 */
 int mp_recip(bf_context_t *s, limb_t *tabr, const limb_t *taba, limb_t n)
 {
     mp_size_t l, h, k, i;
     limb_t *tabxh, *tabt, c, *tabu;
-    
+
     if (n <= 2) {
         /* return ceil(B^(2*n)/a) - 1 */
         /* XXX: could avoid allocation */
@@ -1449,8 +1449,8 @@ static int mp_cmp(const limb_t *taba, const limb_t *tabb, mp_size_t n)
 //#define DEBUG_DIVNORM_LARGE2
 
 /* subquadratic divnorm */
-static int mp_divnorm_large(bf_context_t *s, 
-                            limb_t *tabq, limb_t *taba, limb_t na, 
+static int mp_divnorm_large(bf_context_t *s,
+                            limb_t *tabq, limb_t *taba, limb_t na,
                             const limb_t *tabb, limb_t nb)
 {
     limb_t *tabb_inv, nq, *tabt, i, n;
@@ -1463,7 +1463,7 @@ static int mp_divnorm_large(bf_context_t *s,
     assert(nq >= 1);
     n = nq;
     if (nq < nb)
-        n++; 
+        n++;
     tabb_inv = bf_malloc(s, sizeof(limb_t) * (n + 1));
     tabt = bf_malloc(s, sizeof(limb_t) * 2 * (n + 1));
     if (!tabb_inv || !tabt)
@@ -1492,7 +1492,7 @@ static int mp_divnorm_large(bf_context_t *s,
     /* Q=A*B^-1 */
     if (mp_mul(s, tabt, tabb_inv, n + 1, taba + na - (n + 1), n + 1))
         goto fail;
-    
+
     for(i = 0; i < nq + 1; i++)
         tabq[i] = tabt[i + 2 * (n + 1) - (nq + 1)];
 #ifdef DEBUG_DIVNORM_LARGE
@@ -1502,7 +1502,7 @@ static int mp_divnorm_large(bf_context_t *s,
     bf_free(s, tabt);
     bf_free(s, tabb_inv);
     tabb_inv = NULL;
-    
+
     /* R=A-B*Q */
     tabt = bf_malloc(s, sizeof(limb_t) * (na + 1));
     if (!tabt)
@@ -1573,10 +1573,10 @@ int bf_mul(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
         bf_t tmp, *r1 = NULL;
         limb_t a_len, b_len, precl;
         limb_t *a_tab, *b_tab;
-            
+
         a_len = a->len;
         b_len = b->len;
-        
+
         if ((flags & BF_RND_MASK) == BF_RNDF) {
             /* faithful rounding does not require using the full inputs */
             precl = (prec + 2 + LIMB_BITS - 1) / LIMB_BITS;
@@ -1585,7 +1585,7 @@ int bf_mul(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
         }
         a_tab = a->tab + a->len - a_len;
         b_tab = b->tab + b->len - b_len;
-        
+
 #ifdef USE_FFT_MUL
         if (b_len >= FFT_MUL_THRESHOLD) {
             int mul_flags = 0;
@@ -1606,7 +1606,7 @@ int bf_mul(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
             if (bf_resize(r, a_len + b_len)) {
 #ifdef USE_FFT_MUL
             fail:
-#endif                
+#endif
                 bf_set_nan(r);
                 ret = BF_ST_MEM_ERROR;
                 goto done;
@@ -1643,7 +1643,7 @@ slimb_t bf_get_exp_min(const bf_t *a)
     slimb_t i;
     limb_t v;
     int k;
-    
+
     for(i = 0; i < a->len; i++) {
         v = a->tab[i];
         if (v != 0) {
@@ -1676,7 +1676,7 @@ static int __bf_div(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
     bf_context_t *s = r->ctx;
     int ret, r_sign;
     limb_t n, nb, precl;
-    
+
     r_sign = a->sign ^ b->sign;
     if (a->expn >= BF_EXP_INF || b->expn >= BF_EXP_INF) {
         if (a->expn == BF_EXP_NAN || b->expn == BF_EXP_NAN) {
@@ -1709,11 +1709,11 @@ static int __bf_div(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
     precl = (prec + 2 + LIMB_BITS - 1) / LIMB_BITS;
     nb = b->len;
     n = bf_max(a->len, precl);
-    
+
     {
         limb_t *taba, na;
         slimb_t d;
-        
+
         na = n + nb;
         taba = bf_malloc(s, (na + 1) * sizeof(limb_t));
         if (!taba)
@@ -1742,8 +1742,8 @@ static int __bf_div(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
     return BF_ST_MEM_ERROR;
 }
 
-/* division and remainder. 
-   
+/* division and remainder.
+
    rnd_mode is the rounding mode for the quotient. The additional
    rounding mode BF_RND_EUCLIDIAN is supported.
 
@@ -1757,11 +1757,11 @@ int bf_divrem(bf_t *q, bf_t *r, const bf_t *a, const bf_t *b,
     bf_t b1_s, *b1 = &b1_s;
     int q_sign, ret;
     BOOL is_ceil, is_rndn;
-    
+
     assert(q != a && q != b);
     assert(r != a && r != b);
     assert(q != r);
-    
+
     if (a->len == 0 || b->len == 0) {
         bf_set_zero(q, 0);
         if (a->expn == BF_EXP_NAN || b->expn == BF_EXP_NAN) {
@@ -1803,7 +1803,7 @@ int bf_divrem(bf_t *q, bf_t *r, const bf_t *a, const bf_t *b,
     a1->tab = a->tab;
     a1->len = a->len;
     a1->sign = 0;
-    
+
     b1->expn = b->expn;
     b1->tab = b->tab;
     b1->len = b->len;
@@ -1849,7 +1849,7 @@ int bf_rem(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
 {
     bf_t q_s, *q = &q_s;
     int ret;
-    
+
     bf_init(r->ctx, q);
     ret = bf_divrem(q, r, a, b, prec, flags, rnd_mode);
     bf_delete(q);
@@ -1870,7 +1870,7 @@ int bf_remquo(slimb_t *pq, bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
 {
     bf_t q_s, *q = &q_s;
     int ret;
-    
+
     bf_init(r->ctx, q);
     ret = bf_divrem(q, r, a, b, prec, flags, rnd_mode);
     bf_get_limb(pq, q, BF_GET_INT_MOD);
@@ -1908,7 +1908,7 @@ static const uint16_t sqrt_table[192] = {
 static limb_t mp_sqrtrem1(limb_t *pr, limb_t a)
 {
     limb_t s1, r1, s, r, q, u, num;
-    
+
     /* use a table for the 16 -> 8 bit sqrt */
     s1 = sqrt_table[(a >> (LIMB_BITS - 8)) - 64];
     r1 = (a >> (LIMB_BITS - 16)) - s1 * s1;
@@ -1916,7 +1916,7 @@ static limb_t mp_sqrtrem1(limb_t *pr, limb_t a)
         r1 -= 2 * s1 + 1;
         s1++;
     }
-    
+
     /* one iteration to get a 32 -> 16 bit sqrt */
     num = (r1 << 8) | ((a >> (LIMB_BITS - 32 + 8)) & 0xff);
     q = num / (2 * s1); /* q <= 2^8 */
@@ -1998,7 +1998,7 @@ static int mp_sqrtrem_rec(bf_context_t *s, limb_t *tabs, limb_t *taba, limb_t n,
                           limb_t *tmp_buf, limb_t *prh)
 {
     limb_t l, h, rh, ql, qh, c, i;
-    
+
     if (n == 1) {
         *prh = mp_sqrtrem2(tabs, taba);
         return 0;
@@ -2015,7 +2015,7 @@ static int mp_sqrtrem_rec(bf_context_t *s, limb_t *tabs, limb_t *taba, limb_t n,
     mp_print_str_h("r1", taba + 2 * l, h, qh);
     mp_print_str_h("r2", taba + l, n, qh);
 #endif
-    
+
     /* the remainder is in taba + 2 * l. Its high bit is in qh */
     if (qh) {
         mp_sub(taba + 2 * l, taba + 2 * l, tabs + l, h, 0);
@@ -2037,12 +2037,12 @@ static int mp_sqrtrem_rec(bf_context_t *s, limb_t *tabs, limb_t *taba, limb_t n,
     mp_print_str_h("q", tabs, l, qh);
     mp_print_str_h("u", taba + l, h, rh);
 #endif
-    
+
     mp_add_ui(tabs + l, qh, h);
 #ifdef DEBUG_SQRTREM
     mp_print_str_h("s2", tabs, n, sh);
 #endif
-    
+
     /* q = qh, tabs[l - 1 ... 0], r = taba[n - 1 ... l] */
     /* subtract q^2. if qh = 1 then q = B^l, so we can take shortcuts */
     if (qh) {
@@ -2094,7 +2094,7 @@ int mp_sqrtrem(bf_context_t *s, limb_t *tabs, limb_t *taba, limb_t n)
 int bf_sqrtrem(bf_t *r, bf_t *rem1, const bf_t *a)
 {
     int ret;
-    
+
     if (a->len == 0) {
         if (a->expn == BF_EXP_NAN) {
             bf_set_nan(r);
@@ -2114,7 +2114,7 @@ int bf_sqrtrem(bf_t *r, bf_t *rem1, const bf_t *a)
         ret = BF_ST_INVALID_OP;
     } else {
         bf_t rem_s, *rem;
-        
+
         bf_sqrt(r, a, (a->expn + 1) / 2, BF_RNDZ);
         bf_rint(r, BF_RNDZ);
         /* see if the result is exact by computing the remainder */
@@ -2168,7 +2168,7 @@ int bf_sqrt(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags)
         limb_t *a1;
         slimb_t n, n1;
         limb_t res;
-        
+
         /* convert the mantissa to an integer with at least 2 *
            prec + 4 bits */
         n = (2 * (prec + 2) + 2 * LIMB_BITS - 1) / (2 * LIMB_BITS);
@@ -2213,7 +2213,7 @@ static no_inline int bf_op2(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
 {
     bf_t tmp;
     int ret;
-    
+
     if (r == a || r == b) {
         bf_init(r->ctx, &tmp);
         ret = func(&tmp, a, b, prec, flags);
@@ -2271,7 +2271,7 @@ int bf_add_si(bf_t *r, const bf_t *a, int64_t b1, limb_t prec,
 {
     bf_t b;
     int ret;
-    
+
     bf_init(r->ctx, &b);
     ret = bf_set_si(&b, b1);
     ret |= bf_add(r, a, &b, prec, flags);
@@ -2283,7 +2283,7 @@ static int bf_pow_ui(bf_t *r, const bf_t *a, limb_t b, limb_t prec,
                      bf_flags_t flags)
 {
     int ret, n_bits, i;
-    
+
     assert(r != a);
     if (b == 0)
         return bf_set_ui(r, 1);
@@ -2302,14 +2302,14 @@ static int bf_pow_ui_ui(bf_t *r, limb_t a1, limb_t b,
 {
     bf_t a;
     int ret;
-    
+
 #ifdef USE_BF_DEC
     if (a1 == 10 && b <= LIMB_DIGITS) {
         /* use precomputed powers. We do not round at this point
            because we expect the caller to do it */
         ret = bf_set_ui(r, mp_pow_dec[b]);
     } else
-#endif        
+#endif
     {
         bf_init(r->ctx, &a);
         ret = bf_set_ui(&a, a1);
@@ -2350,7 +2350,7 @@ static int bf_logic_op(bf_t *r, const bf_t *a1, const bf_t *b1, int op)
     slimb_t l, i, a_bit_offset, b_bit_offset;
     limb_t v1, v2, v1_mask, v2_mask, r_mask;
     int ret;
-    
+
     assert(r != a1 && r != b1);
 
     if (a1->expn <= 0)
@@ -2362,7 +2362,7 @@ static int bf_logic_op(bf_t *r, const bf_t *a1, const bf_t *b1, int op)
         b_sign = 0; /* minus zero is considered as positive */
     else
         b_sign = b1->sign;
-    
+
     if (a_sign) {
         a = &a1_s;
         bf_init(r->ctx, a);
@@ -2382,7 +2382,7 @@ static int bf_logic_op(bf_t *r, const bf_t *a1, const bf_t *b1, int op)
     } else {
         b = (bf_t *)b1;
     }
-    
+
     r_sign = bf_logic_op1(a_sign, b_sign, op);
     if (op == BF_LOGIC_AND && r_sign == 0) {
         /* no need to compute extra zeros for and */
@@ -2459,13 +2459,13 @@ int bf_get_float64(const bf_t *a, double *pres, bf_rnd_t rnd_mode)
     Float64Union u;
     int e, ret;
     uint64_t m;
-    
+
     ret = 0;
     if (a->expn == BF_EXP_NAN) {
         u.u = 0x7ff8000000000000; /* quiet nan */
     } else {
         bf_t b_s, *b = &b_s;
-        
+
         bf_init(a->ctx, b);
         bf_set(b, a);
         if (bf_is_finite(b)) {
@@ -2508,7 +2508,7 @@ int bf_set_float64(bf_t *a, double d)
     Float64Union u;
     uint64_t m;
     int shift, e, sgn;
-    
+
     u.d = d;
     sgn = u.u >> 63;
     e = (u.u >> 52) & ((1 << 11) - 1);
@@ -2579,7 +2579,7 @@ int bf_get_int32(int *pres, const bf_t *a, int flags)
         ret = BF_ST_INVALID_OP;
         if (a->sign) {
             v = (uint32_t)INT32_MAX + 1;
-            if (a->expn == 32 && 
+            if (a->expn == 32 &&
                 (a->tab[a->len - 1] >> (LIMB_BITS - 32)) == v) {
                 ret = 0;
             }
@@ -2587,7 +2587,7 @@ int bf_get_int32(int *pres, const bf_t *a, int flags)
             v = INT32_MAX;
         }
     } else {
-        v = get_bits(a->tab, a->len, a->len * LIMB_BITS - a->expn); 
+        v = get_bits(a->tab, a->len, a->len * LIMB_BITS - a->expn);
         if (a->sign)
             v = -v;
         ret = 0;
@@ -2645,7 +2645,7 @@ int bf_get_int64(int64_t *pres, const bf_t *a, int flags)
         }
     } else {
         slimb_t bit_pos = a->len * LIMB_BITS - a->expn;
-        v = get_bits(a->tab, a->len, bit_pos); 
+        v = get_bits(a->tab, a->len, bit_pos);
 #if LIMB_BITS == 32
         v |= (uint64_t)get_bits(a->tab, a->len, bit_pos + 32) << 32;
 #endif
@@ -2705,7 +2705,7 @@ static limb_t get_limb_radix(int radix)
 {
     int i, k;
     limb_t radixl;
-    
+
     k = digits_per_limb_table[radix - 2];
     radixl = radix;
     for(i = 1; i < k; i++)
@@ -2724,7 +2724,7 @@ static int bf_integer_from_radix_rec(bf_t *r, const limb_t *tab,
     } else {
         bf_t T_s, *T = &T_s, *B;
         limb_t n1, n2;
-        
+
         n2 = (((n0 * 2) >> (level + 1)) + 1) / 2;
         n1 = n - n2;
         //        printf("level=%d n0=%ld n1=%ld n2=%ld\n", level, n0, n1, n2);
@@ -2760,7 +2760,7 @@ static int bf_integer_from_radix(bf_t *r, const limb_t *tab,
     int pow_tab_len, i, ret;
     limb_t radixl;
     bf_t *pow_tab;
-    
+
     radixl = get_limb_radix(radix);
     pow_tab_len = ceil_log2(n) + 2; /* XXX: check */
     pow_tab = bf_malloc(s, sizeof(pow_tab[0]) * pow_tab_len);
@@ -2909,7 +2909,7 @@ static int bf_atof_internal(bf_t *r, slimb_t *pexponent,
     slimb_t pos, expn, int_len, digit_count;
     BOOL has_decpt, is_bin_exp;
     bf_t a_s, *a;
-    
+
     *pexponent = 0;
     p = str;
     if (!(flags & BF_ATOF_NO_NAN_INF) && radix <= 16 &&
@@ -2919,7 +2919,7 @@ static int bf_atof_internal(bf_t *r, slimb_t *pexponent,
         goto done;
     }
     is_neg = 0;
-    
+
     if (p[0] == '+') {
         p++;
         p_start = p;
@@ -2962,7 +2962,7 @@ static int bf_atof_internal(bf_t *r, slimb_t *pexponent,
             goto done;
         }
     }
-    
+
     if (radix == 0)
         radix = 10;
     if (is_dec) {
@@ -3053,7 +3053,7 @@ static int bf_atof_internal(bf_t *r, slimb_t *pexponent,
             goto done;
         }
     }
-            
+
     /* reset the next limbs to zero (we prefer to reallocate in the
        renormalization) */
     memset(a->tab, 0, (pos + 1) * sizeof(limb_t));
@@ -3111,7 +3111,7 @@ static int bf_atof_internal(bf_t *r, slimb_t *pexponent,
     } else if (radix_bits) {
         /* XXX: may overflow */
         if (!is_bin_exp)
-            expn *= radix_bits; 
+            expn *= radix_bits;
         a->expn = expn + (int_len * radix_bits);
         a->sign = is_neg;
         ret = bf_normalize_and_round(a, prec, flags);
@@ -3150,9 +3150,9 @@ static int bf_atof_internal(bf_t *r, slimb_t *pexponent,
     return ret;
 }
 
-/* 
+/*
    Return (status, n, exp). 'status' is the floating point status. 'n'
-   is the parsed number. 
+   is the parsed number.
 
    If (flags & BF_ATOF_EXPONENT) and if the radix is not a power of
    two, the parsed number is equal to r *
@@ -3367,7 +3367,7 @@ slimb_t bf_mul_log2_radix(slimb_t a1, unsigned int radix, int is_inv,
         const uint32_t *tab;
         limb_t b0, b1;
         dlimb_t t;
-        
+
         if (is_inv) {
             tab = inv_log2_radix[radix - 2];
 #if LIMB_BITS == 32
@@ -3401,7 +3401,7 @@ static int bf_integer_to_radix_rec(bf_t *pow_tab,
 {
     limb_t n1, n2, q_prec;
     int ret;
-    
+
     assert(n >= 1);
     if (n == 1) {
         out[0] = get_bits(a->tab, a->len, a->len * LIMB_BITS - a->expn);
@@ -3441,7 +3441,7 @@ static int bf_integer_to_radix_rec(bf_t *pow_tab,
         q_prec = n1 * radixl_bits;
         ret |= bf_mul(&Q, a, B_inv, q_prec, BF_RNDN);
         ret |= bf_rint(&Q, BF_RNDZ);
-        
+
         ret |= bf_mul(&R, &Q, B, BF_PREC_INF, BF_RNDZ);
         ret |= bf_sub(&R, a, &R, BF_PREC_INF, BF_RNDZ);
 
@@ -3486,7 +3486,7 @@ static int bf_integer_to_radix(bf_t *r, const bf_t *a, limb_t radixl)
     limb_t r_len;
     bf_t *pow_tab;
     int i, pow_tab_len, ret;
-    
+
     r_len = r->len;
     pow_tab_len = (ceil_log2(r_len) + 2) * 2; /* XXX: check */
     pow_tab = bf_malloc(s, sizeof(pow_tab[0]) * pow_tab_len);
@@ -3516,7 +3516,7 @@ static int bf_convert_to_radix(bf_t *r, slimb_t *pE,
     slimb_t E, e, prec, extra_bits, ziv_extra_bits, prec0;
     bf_t B_s, *B = &B_s;
     int e_sign, ret, res;
-    
+
     if (a->len == 0) {
         /* zero case */
         *pE = 0;
@@ -3531,7 +3531,7 @@ static int bf_convert_to_radix(bf_t *r, slimb_t *pE,
     }
     //    bf_print_str("a", a);
     //    printf("E=%ld P=%ld radix=%d\n", E, P, radix);
-    
+
     for(;;) {
         e = P - E;
         e_sign = 0;
@@ -3727,7 +3727,7 @@ static char *bf_ftoa_internal(size_t *plen, const bf_t *a2, int radix,
     bf_context_t *ctx = a2->ctx;
     DynBuf s_s, *s = &s_s;
     int radix_bits;
-    
+
     //    bf_print_str("ftoa", a2);
     //    printf("radix=%d\n", radix);
     dbuf_init2(s, ctx, bf_dbuf_realloc);
@@ -3809,7 +3809,7 @@ static char *bf_ftoa_internal(size_t *plen, const bf_t *a2, int radix,
                     a->len = a2->len;
                     a->expn = a2->expn;
                     a->sign = 0;
-                    
+
                     /* one more digit for the rounding */
                     n = 1 + bf_mul_log2_radix(bf_max(a->expn, 0), radix, TRUE, TRUE);
                     n_digits = n + prec;
@@ -3884,19 +3884,19 @@ static char *bf_ftoa_internal(size_t *plen, const bf_t *a2, int radix,
                     n = ceil_div(a1->expn, radix_bits);
                 } else {
                     bf_t a_s, *a = &a_s;
-                    
+
                     /* make a positive number */
                     a->tab = a2->tab;
                     a->len = a2->len;
                     a->expn = a2->expn;
                     a->sign = 0;
-                    
+
                     if (fmt == BF_FTOA_FORMAT_FIXED) {
                         n_digits = prec;
                         n_max = n_digits;
                     } else {
                         slimb_t n_digits_max, n_digits_min;
-                        
+
                         assert(prec != BF_PREC_INF);
                         n_digits = 1 + bf_mul_log2_radix(prec, radix, TRUE, TRUE);
                         /* max number of digits for non exponential
@@ -3905,7 +3905,7 @@ static char *bf_ftoa_internal(size_t *plen, const bf_t *a2, int radix,
                         n_max = n_digits + 4;
                         if (fmt == BF_FTOA_FORMAT_FREE_MIN) {
                             bf_t b_s, *b = &b_s;
-                            
+
                             /* find the minimum number of digits by
                                dichotomy. */
                             /* XXX: inefficient */
@@ -4044,7 +4044,7 @@ static void bf_const_log2_rec(bf_t *T, bf_t *P, bf_t *Q, limb_t n1,
         bf_t T1_s, *T1 = &T1_s;
         bf_t P1_s, *P1 = &P1_s;
         bf_t Q1_s, *Q1 = &Q1_s;
-        
+
         m = n1 + ((n2 - n1) >> 1);
         bf_const_log2_rec(T, P, Q, n1, m, TRUE);
         bf_init(s, T1);
@@ -4095,7 +4095,7 @@ static void chud_bs(bf_t *P, bf_t *Q, bf_t *G, int64_t a, int64_t b, int need_g,
 
     if (a == (b - 1)) {
         bf_t T0, T1;
-        
+
         bf_init(s, &T0);
         bf_init(s, &T1);
         bf_set_ui(G, 2 * b - 1);
@@ -4116,7 +4116,7 @@ static void chud_bs(bf_t *P, bf_t *Q, bf_t *G, int64_t a, int64_t b, int need_g,
         bf_delete(&T1);
     } else {
         bf_t P2, Q2, G2;
-        
+
         bf_init(s, &P2);
         bf_init(s, &Q2);
         bf_init(s, &G2);
@@ -4124,7 +4124,7 @@ static void chud_bs(bf_t *P, bf_t *Q, bf_t *G, int64_t a, int64_t b, int need_g,
         c = (a + b) / 2;
         chud_bs(P, Q, G, a, c, 1, prec);
         chud_bs(&P2, &Q2, &G2, c, b, need_g, prec);
-        
+
         /* Q = Q1 * Q2 */
         /* G = G1 * G2 */
         /* P = P1 * Q2 + P2 * G1 */
@@ -4160,11 +4160,11 @@ static void bf_const_pi_internal(bf_t *Q, limb_t prec)
     bf_init(s, &G);
 
     chud_bs(&P, Q, &G, 0, n, 0, BF_PREC_INF);
-    
+
     bf_mul_ui(&G, Q, CHUD_A, prec1, BF_RNDN);
     bf_add(&P, &G, &P, prec1, BF_RNDN);
     bf_div(Q, Q, &P, prec1, BF_RNDF);
- 
+
     bf_set_ui(&P, CHUD_C);
     bf_sqrt(&G, &P, prec1, BF_RNDF);
     bf_mul_ui(&G, &G, (uint64_t)CHUD_C / 12, prec1, BF_RNDF);
@@ -4247,7 +4247,7 @@ static int bf_ziv_rounding(bf_t *r, const bf_t *a,
 {
     int rnd_mode, ret;
     slimb_t prec1, ziv_extra_bits;
-    
+
     rnd_mode = flags & BF_RND_MASK;
     if (rnd_mode == BF_RNDF) {
         /* no need to iterate */
@@ -4306,7 +4306,7 @@ static int bf_exp_internal(bf_t *r, const bf_t *a, limb_t prec, void *opaque)
     bf_context_t *s = r->ctx;
     bf_t T_s, *T = &T_s;
     slimb_t n, K, l, i, prec1;
-    
+
     assert(r != a);
 
     /* argument reduction:
@@ -4339,14 +4339,14 @@ static int bf_exp_internal(bf_t *r, const bf_t *a, limb_t prec, void *opaque)
 
     /* reduce the range of T */
     bf_mul_2exp(T, -K, BF_PREC_INF, BF_RNDZ);
-    
+
     /* Taylor expansion around zero :
-     1 + x + x^2/2 + ... + x^n/n! 
+     1 + x + x^2/2 + ... + x^n/n!
      = (1 + x * (1 + x/2 * (1 + ... (x/n))))
     */
     {
         bf_t U_s, *U = &U_s;
-        
+
         bf_init(s, U);
         bf_set_ui(r, 1);
         for(i = l ; i >= 1; i--) {
@@ -4358,7 +4358,7 @@ static int bf_exp_internal(bf_t *r, const bf_t *a, limb_t prec, void *opaque)
         bf_delete(U);
     }
     bf_delete(T);
-    
+
     /* undo the range reduction */
     for(i = 0; i < K; i++) {
         bf_mul(r, r, r, prec1, BF_RNDN | BF_FLAG_EXT_EXP);
@@ -4378,7 +4378,7 @@ static int check_exp_underflow_overflow(bf_context_t *s, bf_t *r,
     bf_t T_s, *T = &T_s;
     bf_t log2_s, *log2 = &log2_s;
     slimb_t e_min, e_max;
-    
+
     if (a_high->expn <= 0)
         return 0;
 
@@ -4386,7 +4386,7 @@ static int check_exp_underflow_overflow(bf_context_t *s, bf_t *r,
     e_min = -e_max + 3;
     if (flags & BF_FLAG_SUBNORMAL)
         e_min -= (prec - 1);
-    
+
     bf_init(s, T);
     bf_init(s, log2);
     bf_const_log2(log2, LIMB_BITS, BF_RNDU);
@@ -4403,7 +4403,7 @@ static int check_exp_underflow_overflow(bf_context_t *s, bf_t *r,
     bf_mul_si(T, log2, e_min - 2, LIMB_BITS, BF_RNDD);
     if (bf_cmp_lt(a_high, T)) {
         int rnd_mode = flags & BF_RND_MASK;
-        
+
         /* underflow */
         bf_delete(T);
         bf_delete(log2);
@@ -4443,12 +4443,12 @@ int bf_exp(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags)
     ret = check_exp_underflow_overflow(s, r, a, a, prec, flags);
     if (ret)
         return ret;
-    if (a->expn < 0 && (-a->expn) >= (prec + 2)) { 
+    if (a->expn < 0 && (-a->expn) >= (prec + 2)) {
         /* small argument case: result = 1 + epsilon * sign(x) */
         bf_set_ui(r, 1);
         return bf_add_epsilon(r, r, -(prec + 2), a->sign, prec, flags);
     }
-                         
+
     return bf_ziv_rounding(r, a, prec, flags, bf_exp_internal, NULL);
 }
 
@@ -4459,7 +4459,7 @@ static int bf_log_internal(bf_t *r, const bf_t *a, limb_t prec, void *opaque)
     bf_t U_s, *U = &U_s;
     bf_t V_s, *V = &V_s;
     slimb_t n, prec1, l, i, K;
-    
+
     assert(r != a);
 
     bf_init(s, T);
@@ -4472,7 +4472,7 @@ static int bf_log_internal(bf_t *r, const bf_t *a, limb_t prec, void *opaque)
         T->expn = 0;
         /* U= ~ 2/3 */
         bf_init(s, U);
-        bf_set_ui(U, 0xaaaaaaaa); 
+        bf_set_ui(U, 0xaaaaaaaa);
         U->expn = 0;
         if (bf_cmp_lt(T, U)) {
             T->expn++;
@@ -4485,18 +4485,18 @@ static int bf_log_internal(bf_t *r, const bf_t *a, limb_t prec, void *opaque)
 
     /* XXX: precision analysis */
     /* number of iterations for argument reduction 2 */
-    K = bf_isqrt((prec + 1) / 2); 
+    K = bf_isqrt((prec + 1) / 2);
     /* order of Taylor expansion */
-    l = prec / (2 * K) + 1; 
+    l = prec / (2 * K) + 1;
     /* precision of the intermediate computations */
     prec1 = prec + K + 2 * l + 32;
 
     bf_init(s, U);
     bf_init(s, V);
-    
+
     /* Note: cancellation occurs here, so we use more precision (XXX:
        reduce the precision by computing the exact cancellation) */
-    bf_add_si(T, T, -1, BF_PREC_INF, BF_RNDN); 
+    bf_add_si(T, T, -1, BF_PREC_INF, BF_RNDN);
 
     /* argument reduction 2 */
     for(i = 0; i < K; i++) {
@@ -4514,7 +4514,7 @@ static int bf_log_internal(bf_t *r, const bf_t *a, limb_t prec, void *opaque)
         bf_init(s, Y2);
 
         /* compute ln(1+x) = ln((1+y)/(1-y)) with y=x/(2+x)
-           = y + y^3/3 + ... + y^(2*l + 1) / (2*l+1) 
+           = y + y^3/3 + ... + y^(2*l + 1) / (2*l+1)
            with Y=Y^2
            = y*(1+Y/3+Y^2/5+...) = y*(1+Y*(1/3+Y*(1/5 + ...)))
         */
@@ -4541,12 +4541,12 @@ static int bf_log_internal(bf_t *r, const bf_t *a, limb_t prec, void *opaque)
     /* multiplication by 2 for the Taylor expansion and undo the
        argument reduction 2*/
     bf_mul_2exp(r, K + 1, BF_PREC_INF, BF_RNDZ);
-    
+
     /* undo the argument reduction 1 */
     bf_const_log2(T, prec1, BF_RNDF);
     bf_mul_si(T, T, n, prec1, BF_RNDN);
     bf_add(r, r, T, prec1, BF_RNDN);
-    
+
     bf_delete(T);
     return BF_ST_INEXACT;
 }
@@ -4555,7 +4555,7 @@ int bf_log(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags)
 {
     bf_context_t *s = r->ctx;
     bf_t T_s, *T = &T_s;
-    
+
     assert(r != a);
     if (a->len == 0) {
         if (a->expn == BF_EXP_NAN) {
@@ -4620,7 +4620,7 @@ static int bf_pow_int(bf_t *r, const bf_t *x, limb_t prec, void *opaque)
     limb_t prec1;
     int ret;
     slimb_t y1;
-    
+
     bf_get_limb(&y1, y, 0);
     if (y1 < 0)
         y1 = -y1;
@@ -4645,7 +4645,7 @@ static BOOL check_exact_power2n(bf_t *r, const bf_t *x, slimb_t n)
     bf_t T_s, *T = &T_s;
     slimb_t e, i, er;
     limb_t v;
-    
+
     /* x = m*2^e with m odd integer */
     e = bf_get_exp_min(x);
     /* fast check on the exponent */
@@ -4685,7 +4685,7 @@ int bf_pow(bf_t *r, const bf_t *x, const bf_t *y, limb_t prec, bf_flags_t flags)
     BOOL y_is_int, y_is_odd;
     int r_sign, ret, rnd_mode;
     slimb_t y_emin;
-    
+
     if (x->len == 0 || y->len == 0) {
         if (y->expn == BF_EXP_ZERO) {
             /* pow(x, 0) = 1 */
@@ -4759,7 +4759,7 @@ int bf_pow(bf_t *r, const bf_t *x, const bf_t *y, limb_t prec, bf_flags_t flags)
             bf_t al_s, *al = &al_s;
             bf_t ah_s, *ah = &ah_s;
             limb_t precl = LIMB_BITS;
-            
+
             bf_init(s, al);
             bf_init(s, ah);
             /* compute bounds of log(abs(x)) * y with a low precision */
@@ -4775,7 +4775,7 @@ int bf_pow(bf_t *r, const bf_t *x, const bf_t *y, limb_t prec, bf_flags_t flags)
             if (ret)
                 goto done;
         }
-        
+
         if (y_is_int) {
             slimb_t T_bits, e;
         int_pow:
@@ -4870,18 +4870,18 @@ static int bf_sincos(bf_t *s, bf_t *c, const bf_t *a, limb_t prec)
     bf_t r_s, *r = &r_s;
     slimb_t K, prec1, i, l, mod, prec2;
     int is_neg;
-    
+
     assert(c != a && s != a);
 
     bf_init(s1, T);
     bf_init(s1, U);
     bf_init(s1, r);
-    
+
     /* XXX: precision analysis */
     K = bf_isqrt(prec / 2);
     l = prec / (2 * K) + 1;
     prec1 = prec + 2 * K + l + 8;
-    
+
     /* after the modulo reduction, -pi/4 <= T <= pi/4 */
     if (a->expn <= -1) {
         /* abs(a) <= 0.25: no modulo reduction needed */
@@ -4904,13 +4904,13 @@ static int bf_sincos(bf_t *s, bf_t *c, const bf_t *a, limb_t prec)
         }
         mod &= 3;
     }
-    
+
     is_neg = T->sign;
-        
+
     /* compute cosm1(x) = cos(x) - 1 */
     bf_mul(T, T, T, prec1, BF_RNDN);
     bf_mul_2exp(T, -2 * K, BF_PREC_INF, BF_RNDZ);
-    
+
     /* Taylor expansion:
        -x^2/2 + x^4/4! - x^6/6! + ...
     */
@@ -4989,7 +4989,7 @@ int bf_cos(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags)
             return bf_add_epsilon(r, r, e, 1, prec, flags);
         }
     }
-    
+
     return bf_ziv_rounding(r, a, prec, flags, bf_cos_internal, NULL);
 }
 
@@ -5032,7 +5032,7 @@ static int bf_tan_internal(bf_t *r, const bf_t *a, limb_t prec, void *opaque)
     bf_context_t *s = r->ctx;
     bf_t T_s, *T = &T_s;
     limb_t prec1;
-    
+
     /* XXX: precision analysis */
     prec1 = prec + 8;
     bf_init(s, T);
@@ -5068,7 +5068,7 @@ int bf_tan(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags)
             return bf_add_epsilon(r, r, e, a->sign, prec, flags);
         }
     }
-            
+
     return bf_ziv_rounding(r, a, prec, flags, bf_tan_internal, NULL);
 }
 
@@ -5085,13 +5085,13 @@ static int bf_atan_internal(bf_t *r, const bf_t *a, limb_t prec,
     bf_t X2_s, *X2 = &X2_s;
     int cmp_1;
     slimb_t prec1, i, K, l;
-    
+
     /* XXX: precision analysis */
     K = bf_isqrt((prec + 1) / 2);
     l = prec / (2 * K) + 1;
     prec1 = prec + K + 2 * l + 32;
     //    printf("prec=%d K=%d l=%d prec1=%d\n", (int)prec, (int)K, (int)l, (int)prec1);
-    
+
     bf_init(s, T);
     cmp_1 = (a->expn >= 1); /* a >= 1 */
     if (cmp_1) {
@@ -5117,8 +5117,8 @@ static int bf_atan_internal(bf_t *r, const bf_t *a, limb_t prec,
         bf_div(T, T, V, prec1, BF_RNDN);
     }
 
-    /* Taylor series: 
-       x - x^3/3 + ... + (-1)^ l * y^(2*l + 1) / (2*l+1) 
+    /* Taylor series:
+       x - x^3/3 + ... + (-1)^ l * y^(2*l + 1) / (2*l+1)
     */
     bf_mul(X2, T, T, prec1, BF_RNDN);
     bf_set_ui(r, 0);
@@ -5136,7 +5136,7 @@ static int bf_atan_internal(bf_t *r, const bf_t *a, limb_t prec,
 
     /* undo the argument reduction */
     bf_mul_2exp(r, K, BF_PREC_INF, BF_RNDZ);
-    
+
     bf_delete(U);
     bf_delete(V);
     bf_delete(X2);
@@ -5155,7 +5155,7 @@ static int bf_atan_internal(bf_t *r, const bf_t *a, limb_t prec,
         T->sign = (i < 0);
         bf_add(r, T, r, prec1, BF_RNDN);
     }
-    
+
     bf_delete(T);
     return BF_ST_INEXACT;
 }
@@ -5165,7 +5165,7 @@ int bf_atan(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags)
     bf_context_t *s = r->ctx;
     bf_t T_s, *T = &T_s;
     int res;
-    
+
     if (a->len == 0) {
         if (a->expn == BF_EXP_NAN) {
             bf_set_nan(r);
@@ -5180,7 +5180,7 @@ int bf_atan(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags)
             return 0;
         }
     }
-    
+
     bf_init(s, T);
     bf_set_ui(T, 1);
     res = bf_cmpu(a, T);
@@ -5202,7 +5202,7 @@ int bf_atan(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags)
             return bf_add_epsilon(r, r, e, 1 - a->sign, prec, flags);
         }
     }
-    
+
     return bf_ziv_rounding(r, a, prec, flags, bf_atan_internal, (void *)FALSE);
 }
 
@@ -5213,7 +5213,7 @@ static int bf_atan2_internal(bf_t *r, const bf_t *y, limb_t prec, void *opaque)
     bf_t T_s, *T = &T_s;
     limb_t prec1;
     int ret;
-    
+
     if (y->expn == BF_EXP_NAN || x->expn == BF_EXP_NAN) {
         bf_set_nan(r);
         return 0;
@@ -5256,8 +5256,8 @@ static int bf_asin_internal(bf_t *r, const bf_t *a, limb_t prec, void *opaque)
     BOOL is_acos = (BOOL)(intptr_t)opaque;
     bf_t T_s, *T = &T_s;
     limb_t prec1, prec2;
-    
-    /* asin(x) = atan(x/sqrt(1-x^2)) 
+
+    /* asin(x) = atan(x/sqrt(1-x^2))
        acos(x) = pi/2 - asin(x) */
     prec1 = prec + 8;
     /* increase the precision in x^2 to compensate the cancellation in
@@ -5307,7 +5307,7 @@ int bf_asin(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags)
         bf_set_nan(r);
         return BF_ST_INVALID_OP;
     }
-    
+
     /* small argument case: result = x+r(x) with r(x) = x^3/6 +
        O(X^5). We assume r(x) < 2^(3*EXP(x) - 2). */
     if (a->expn < 0) {
@@ -5352,7 +5352,7 @@ int bf_acos(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags)
         bf_set_zero(r, 0);
         return 0;
     }
-    
+
     return bf_ziv_rounding(r, a, prec, flags, bf_asin_internal, (void *)TRUE);
 }
 
@@ -5570,8 +5570,8 @@ static inline limb_t fast_shr_dec(limb_t a, int shift)
 
 /* division and remainder by 10^shift */
 #define fast_shr_rem_dec(q, r, a, shift) q = fast_shr_dec(a, shift), r = a - q * mp_pow_dec[shift]
-    
-limb_t mp_add_dec(limb_t *res, const limb_t *op1, const limb_t *op2, 
+
+limb_t mp_add_dec(limb_t *res, const limb_t *op1, const limb_t *op2,
                   mp_size_t n, limb_t carry)
 {
     limb_t base = BF_DEC_BASE;
@@ -5584,7 +5584,7 @@ limb_t mp_add_dec(limb_t *res, const limb_t *op1, const limb_t *op2,
         v = op1[i];
         a = v + op2[i] + k - base;
         k = a <= v;
-        if (!k) 
+        if (!k)
             a += base;
         res[i]=a;
     }
@@ -5602,7 +5602,7 @@ limb_t mp_add_ui_dec(limb_t *tab, limb_t b, mp_size_t n)
         v = tab[i];
         a = v + k - base;
         k = a <= v;
-        if (!k) 
+        if (!k)
             a += base;
         tab[i] = a;
         if (k == 0)
@@ -5611,7 +5611,7 @@ limb_t mp_add_ui_dec(limb_t *tab, limb_t b, mp_size_t n)
     return k;
 }
 
-limb_t mp_sub_dec(limb_t *res, const limb_t *op1, const limb_t *op2, 
+limb_t mp_sub_dec(limb_t *res, const limb_t *op1, const limb_t *op2,
                   mp_size_t n, limb_t carry)
 {
     limb_t base = BF_DEC_BASE;
@@ -5635,7 +5635,7 @@ limb_t mp_sub_ui_dec(limb_t *tab, limb_t b, mp_size_t n)
     limb_t base = BF_DEC_BASE;
     mp_size_t i;
     limb_t k, v, a;
-    
+
     k=b;
     for(i=0;i<n;i++) {
         v = tab[i];
@@ -5651,7 +5651,7 @@ limb_t mp_sub_ui_dec(limb_t *tab, limb_t b, mp_size_t n)
 }
 
 /* taba[] = taba[] * b + l. 0 <= b, l <= base - 1. Return the high carry */
-limb_t mp_mul1_dec(limb_t *tabr, const limb_t *taba, mp_size_t n, 
+limb_t mp_mul1_dec(limb_t *tabr, const limb_t *taba, mp_size_t n,
                    limb_t b, limb_t l)
 {
     mp_size_t i;
@@ -5713,13 +5713,13 @@ limb_t mp_sub_mul1_dec(limb_t *tabr, const limb_t *taba, mp_size_t n,
 }
 
 /* size of the result : op1_size + op2_size. */
-void mp_mul_basecase_dec(limb_t *result, 
-                         const limb_t *op1, mp_size_t op1_size, 
-                         const limb_t *op2, mp_size_t op2_size) 
+void mp_mul_basecase_dec(limb_t *result,
+                         const limb_t *op1, mp_size_t op1_size,
+                         const limb_t *op2, mp_size_t op2_size)
 {
     mp_size_t i;
     limb_t r;
-    
+
     result[op1_size] = mp_mul1_dec(result, op1, op1_size, op2[0], 0);
 
     for(i=1;i<op2_size;i++) {
@@ -5730,7 +5730,7 @@ void mp_mul_basecase_dec(limb_t *result,
 
 /* taba[] = (taba[] + r*base^na) / b. 0 <= b < base. 0 <= r <
    b. Return the remainder. */
-limb_t mp_div1_dec(limb_t *tabr, const limb_t *taba, mp_size_t na, 
+limb_t mp_div1_dec(limb_t *tabr, const limb_t *taba, mp_size_t na,
                    limb_t b, limb_t r)
 {
     limb_t base = BF_DEC_BASE;
@@ -5754,7 +5754,7 @@ limb_t mp_div1_dec(limb_t *tabr, const limb_t *taba, mp_size_t na,
         }
         if (r)
             r = 1;
-    } else 
+    } else
 #endif
     if (na >= UDIV1NORM_THRESHOLD) {
         shift = clz(b);
@@ -5824,7 +5824,7 @@ static __maybe_unused void mp_print_str_h_dec(const char *str,
 
 #define DIV_STATIC_ALLOC_LEN 16
 
-/* return q = a / b and r = a % b. 
+/* return q = a / b and r = a % b.
 
    taba[na] must be allocated if tabb1[nb - 1] < B / 2.  tabb1[nb - 1]
    must be != zero. na must be >= nb. 's' can be NULL if tabb1[nb - 1]
@@ -5838,14 +5838,14 @@ static __maybe_unused void mp_print_str_h_dec(const char *str,
 */
 /* XXX: optimize */
 static int mp_div_dec(bf_context_t *s, limb_t *tabq,
-                      limb_t *taba, mp_size_t na, 
+                      limb_t *taba, mp_size_t na,
                       const limb_t *tabb1, mp_size_t nb)
 {
     limb_t base = BF_DEC_BASE;
     limb_t r, mult, t0, t1, a, c, q, v, *tabb;
     mp_size_t i, j;
     limb_t static_tabb[DIV_STATIC_ALLOC_LEN];
-    
+
 #ifdef DEBUG_DIV_SLOW
     mp_print_str_dec("a", taba, na);
     mp_print_str_dec("b", tabb1, nb);
@@ -5943,7 +5943,7 @@ static int mp_div_dec(bf_context_t *s, limb_t *tabq,
 }
 
 /* divide by 10^shift */
-static limb_t mp_shr_dec(limb_t *tab_r, const limb_t *tab, mp_size_t n, 
+static limb_t mp_shr_dec(limb_t *tab_r, const limb_t *tab, mp_size_t n,
                          limb_t shift, limb_t high)
 {
     mp_size_t i;
@@ -5961,7 +5961,7 @@ static limb_t mp_shr_dec(limb_t *tab_r, const limb_t *tab, mp_size_t n,
 }
 
 /* multiply by 10^shift */
-static limb_t mp_shl_dec(limb_t *tab_r, const limb_t *tab, mp_size_t n, 
+static limb_t mp_shl_dec(limb_t *tab_r, const limb_t *tab, mp_size_t n,
                          limb_t shift, limb_t low)
 {
     mp_size_t i;
@@ -6007,7 +6007,7 @@ static limb_t mp_sqrtrem_rec_dec(limb_t *tabs, limb_t *taba, limb_t n,
                                  limb_t *tmp_buf)
 {
     limb_t l, h, rh, ql, qh, c, i;
-    
+
     if (n == 1)
         return mp_sqrtrem2_dec(tabs, taba);
 #ifdef DEBUG_SQRTREM_DEC
@@ -6021,7 +6021,7 @@ static limb_t mp_sqrtrem_rec_dec(limb_t *tabs, limb_t *taba, limb_t n,
     mp_print_str_h_dec("r1", taba + 2 * l, h, qh);
     mp_print_str_h_dec("r2", taba + l, n, qh);
 #endif
-    
+
     /* the remainder is in taba + 2 * l. Its high bit is in qh */
     if (qh) {
         mp_sub_dec(taba + 2 * l, taba + 2 * l, tabs + l, h, 0);
@@ -6042,12 +6042,12 @@ static limb_t mp_sqrtrem_rec_dec(limb_t *tabs, limb_t *taba, limb_t n,
     mp_print_str_h_dec("q", tabs, l, qh);
     mp_print_str_h_dec("u", taba + l, h, rh);
 #endif
-    
+
     mp_add_ui_dec(tabs + l, qh, h);
 #ifdef DEBUG_SQRTREM_DEC
     mp_print_str_dec("s2", tabs, n);
 #endif
-    
+
     /* q = qh, tabs[l - 1 ... 0], r = taba[n - 1 ... l] */
     /* subtract q^2. if qh = 1 then q = B^l, so we can take shortcuts */
     if (qh) {
@@ -6341,7 +6341,7 @@ static limb_t get_digits(const limb_t *tab, limb_t len, slimb_t pos)
     limb_t a0, a1;
     int shift;
     slimb_t i;
-    
+
     i = floor_div(pos, LIMB_DIGITS);
     shift = pos - i * LIMB_DIGITS;
     if (i >= 0 && i < len)
@@ -6369,7 +6369,7 @@ static int bfdec_get_rnd_add(int *pret, const bfdec_t *r, limb_t l,
 {
     int add_one, inexact;
     limb_t digit1, digit0;
-    
+
     //    bfdec_print_str("get_rnd_add", r);
     if (rnd_mode == BF_RNDF) {
         digit0 = 1; /* faithful rounding does not honor the INEXACT flag */
@@ -6381,7 +6381,7 @@ static int bfdec_get_rnd_add(int *pret, const bfdec_t *r, limb_t l,
     /* get the digit at 'prec' */
     digit1 = get_digit(r->tab, l, l * LIMB_DIGITS - 1 - prec);
     inexact = (digit1 | digit0) != 0;
-    
+
     add_one = 0;
     switch(rnd_mode) {
     case BF_RNDZ:
@@ -6414,7 +6414,7 @@ static int bfdec_get_rnd_add(int *pret, const bfdec_t *r, limb_t l,
     default:
         abort();
     }
-    
+
     if (inexact)
         *pret |= BF_ST_INEXACT;
     return add_one;
@@ -6434,7 +6434,7 @@ static int __bfdec_round(bfdec_t *r, limb_t prec1, bf_flags_t flags, limb_t l)
     e_range = (limb_t)1 << (bf_get_exp_bits(flags) - 1);
     e_min = -e_range + 3;
     e_max = e_range;
-    
+
     if (flags & BF_FLAG_RADPNT_PREC) {
         /* 'prec' is the precision after the decimal point */
         if (prec1 != BF_PREC_INF)
@@ -6449,12 +6449,12 @@ static int __bfdec_round(bfdec_t *r, limb_t prec1, bf_flags_t flags, limb_t l)
     } else {
         prec = prec1;
     }
-    
+
     /* round to prec bits */
     rnd_mode = flags & BF_RND_MASK;
     ret = 0;
     add_one = bfdec_get_rnd_add(&ret, r, l, prec, rnd_mode);
-    
+
     if (prec <= 0) {
         if (add_one) {
             bfdec_resize(r, 1); /* cannot fail because r is non zero */
@@ -6467,7 +6467,7 @@ static int __bfdec_round(bfdec_t *r, limb_t prec1, bf_flags_t flags, limb_t l)
         }
     } else if (add_one) {
         limb_t carry;
-        
+
         /* add one starting at digit 'prec - 1' */
         bit_pos = l * LIMB_DIGITS - 1 - (prec - 1);
         pos = bit_pos / LIMB_DIGITS;
@@ -6479,7 +6479,7 @@ static int __bfdec_round(bfdec_t *r, limb_t prec1, bf_flags_t flags, limb_t l)
             r->expn++;
         }
     }
-    
+
     /* check underflow */
     if (unlikely(r->expn < e_min)) {
         if (flags & BF_FLAG_SUBNORMAL) {
@@ -6493,14 +6493,14 @@ static int __bfdec_round(bfdec_t *r, limb_t prec1, bf_flags_t flags, limb_t l)
             return ret;
         }
     }
-    
+
     /* check overflow */
     if (unlikely(r->expn > e_max)) {
         bfdec_set_inf(r, r->sign);
         ret |= BF_ST_OVERFLOW | BF_ST_INEXACT;
         return ret;
     }
-    
+
     /* keep the bits starting at 'prec - 1' */
     bit_pos = l * LIMB_DIGITS - 1 - (prec - 1);
     i = floor_div(bit_pos, LIMB_DIGITS);
@@ -6537,7 +6537,7 @@ int bfdec_normalize_and_round(bfdec_t *r, limb_t prec1, bf_flags_t flags)
 {
     limb_t l, v;
     int shift, ret;
-    
+
     //    bfdec_print_str("bf_renorm", r);
     l = r->len;
     while (l > 0 && r->tab[l - 1] == 0)
@@ -6654,7 +6654,7 @@ static int bfdec_add_internal(bfdec_t *r, const bfdec_t *a, const bfdec_t *b, li
         limb_t *b1_tab;
         int b_shift;
         mp_size_t b1_len;
-        
+
         d = a->expn - b->expn;
 
         /* XXX: not efficient in time and memory if the precision is
@@ -6670,7 +6670,7 @@ static int bfdec_add_internal(bfdec_t *r, const bfdec_t *a, const bfdec_t *b, li
             r->tab[i] = 0;
         for(i = 0; i < a->len; i++)
             r->tab[a_offset + i] = a->tab[i];
-        
+
         b_shift = d % LIMB_DIGITS;
         if (b_shift == 0) {
             b1_len = b->len;
@@ -6684,7 +6684,7 @@ static int bfdec_add_internal(bfdec_t *r, const bfdec_t *a, const bfdec_t *b, li
                 mp_pow_dec[LIMB_DIGITS - b_shift];
         }
         b_offset = r_len - (b->len + (d + LIMB_DIGITS - 1) / LIMB_DIGITS);
-        
+
         if (is_sub) {
             carry = mp_sub_dec(r->tab + b_offset, r->tab + b_offset,
                                b1_tab, b1_len, 0);
@@ -6780,12 +6780,12 @@ int bfdec_mul(bfdec_t *r, const bfdec_t *a, const bfdec_t *b, limb_t prec,
         bfdec_t tmp, *r1 = NULL;
         limb_t a_len, b_len;
         limb_t *a_tab, *b_tab;
-            
+
         a_len = a->len;
         b_len = b->len;
         a_tab = a->tab;
         b_tab = b->tab;
-        
+
         if (r == a || r == b) {
             bfdec_init(r->ctx, &tmp);
             r1 = r;
@@ -6824,7 +6824,7 @@ int bfdec_add_si(bfdec_t *r, const bfdec_t *a, int64_t b1, limb_t prec,
 {
     bfdec_t b;
     int ret;
-    
+
     bfdec_init(r->ctx, &b);
     ret = bfdec_set_si(&b, b1);
     ret |= bfdec_add(r, a, &b, prec, flags);
@@ -6837,7 +6837,7 @@ static int __bfdec_div(bfdec_t *r, const bfdec_t *a, const bfdec_t *b,
 {
     int ret, r_sign;
     limb_t n, nb, precl;
-    
+
     r_sign = a->sign ^ b->sign;
     if (a->expn >= BF_EXP_INF || b->expn >= BF_EXP_INF) {
         if (a->expn == BF_EXP_NAN || b->expn == BF_EXP_NAN) {
@@ -6882,11 +6882,11 @@ static int __bfdec_div(bfdec_t *r, const bfdec_t *a, const bfdec_t *b,
         precl = (prec + 2 + LIMB_DIGITS - 1) / LIMB_DIGITS;
     }
     n = bf_max(a->len, precl);
-    
+
     {
         limb_t *taba, na, i;
         slimb_t d;
-        
+
         na = n + nb;
         taba = bf_malloc(r->ctx, (na + 1) * sizeof(limb_t));
         if (!taba)
@@ -6947,8 +6947,8 @@ static void bfdec_tdivremu(bf_context_t *s, bfdec_t *q, bfdec_t *r,
     }
 }
 
-/* division and remainder. 
-   
+/* division and remainder.
+
    rnd_mode is the rounding mode for the quotient. The additional
    rounding mode BF_RND_EUCLIDIAN is supported.
 
@@ -6964,11 +6964,11 @@ int bfdec_divrem(bfdec_t *q, bfdec_t *r, const bfdec_t *a, const bfdec_t *b,
     bfdec_t r1_s, *r1 = &r1_s;
     int q_sign, res;
     BOOL is_ceil, is_rndn;
-    
+
     assert(q != a && q != b);
     assert(r != a && r != b);
     assert(q != r);
-    
+
     if (a->len == 0 || b->len == 0) {
         bfdec_set_zero(q, 0);
         if (a->expn == BF_EXP_NAN || b->expn == BF_EXP_NAN) {
@@ -7010,7 +7010,7 @@ int bfdec_divrem(bfdec_t *q, bfdec_t *r, const bfdec_t *a, const bfdec_t *b,
     a1->tab = a->tab;
     a1->len = a->len;
     a1->sign = 0;
-    
+
     b1->expn = b->expn;
     b1->tab = b->tab;
     b1->len = b->len;
@@ -7024,7 +7024,7 @@ int bfdec_divrem(bfdec_t *q, bfdec_t *r, const bfdec_t *a, const bfdec_t *b,
         goto fail;
     //    bfdec_print_str("q", q);
     //    bfdec_print_str("r", r);
-    
+
     if (r->len != 0) {
         if (is_rndn) {
             bfdec_init(s, r1);
@@ -7065,7 +7065,7 @@ int bfdec_rem(bfdec_t *r, const bfdec_t *a, const bfdec_t *b, limb_t prec,
 {
     bfdec_t q_s, *q = &q_s;
     int ret;
-    
+
     bfdec_init(r->ctx, q);
     ret = bfdec_divrem(q, r, a, b, prec, flags, rnd_mode);
     bfdec_delete(q);
@@ -7213,7 +7213,7 @@ int bfdec_get_int32(int *pres, const bfdec_t *a)
 int bfdec_pow_ui(bfdec_t *r, const bfdec_t *a, limb_t b)
 {
     int ret, n_bits, i;
-    
+
     assert(r != a);
     if (b == 0)
         return bfdec_set_ui(r, 1);
@@ -7353,7 +7353,7 @@ static const limb_t ntt_mods_cr[NB_MODS * (NB_MODS - 1) / 2] = {
 
 typedef struct BFNTTState {
     bf_context_t *ctx;
-    
+
     /* used for mul_mod_fast() */
     limb_t ntt_mods_div[NB_MODS];
 
@@ -7393,16 +7393,16 @@ static inline limb_t sub_mod(limb_t a, limb_t b, limb_t m)
     return r;
 }
 
-/* return (r0+r1*B) mod m 
-   precondition: 0 <= r0+r1*B < 2^(64+NTT_MOD_LOG2_MIN) 
+/* return (r0+r1*B) mod m
+   precondition: 0 <= r0+r1*B < 2^(64+NTT_MOD_LOG2_MIN)
 */
-static inline limb_t mod_fast(dlimb_t r, 
+static inline limb_t mod_fast(dlimb_t r,
                                 limb_t m, limb_t m_inv)
 {
     limb_t a1, q, t0, r1, r0;
-    
+
     a1 = r >> NTT_MOD_LOG2_MIN;
-    
+
     q = ((dlimb_t)a1 * m_inv) >> LIMB_BITS;
     r = r - (dlimb_t)q * m - m * 2;
     r1 = r >> LIMB_BITS;
@@ -7414,9 +7414,9 @@ static inline limb_t mod_fast(dlimb_t r,
     return r0;
 }
 
-/* faster version using precomputed modulo inverse. 
+/* faster version using precomputed modulo inverse.
    precondition: 0 <= a * b < 2^(64+NTT_MOD_LOG2_MIN) */
-static inline limb_t mul_mod_fast(limb_t a, limb_t b, 
+static inline limb_t mul_mod_fast(limb_t a, limb_t b,
                                     limb_t m, limb_t m_inv)
 {
     dlimb_t r;
@@ -7435,7 +7435,7 @@ static inline limb_t init_mul_mod_fast(limb_t m)
 
 /* Faster version used when the multiplier is constant. 0 <= a < 2^64,
    0 <= b < m. */
-static inline limb_t mul_mod_fast2(limb_t a, limb_t b, 
+static inline limb_t mul_mod_fast2(limb_t a, limb_t b,
                                      limb_t m, limb_t b_inv)
 {
     limb_t r, q;
@@ -7450,7 +7450,7 @@ static inline limb_t mul_mod_fast2(limb_t a, limb_t b,
 /* Faster version used when the multiplier is constant. 0 <= a < 2^64,
    0 <= b < m. Let r = a * b mod m. The return value is 'r' or 'r +
    m'. */
-static inline limb_t mul_mod_fast3(limb_t a, limb_t b, 
+static inline limb_t mul_mod_fast3(limb_t a, limb_t b,
                                      limb_t m, limb_t b_inv)
 {
     limb_t r, q;
@@ -7556,9 +7556,9 @@ static no_inline int ntt_fft(BFNTTState *s,
     __m256d m_inv, mf, m2f, c, a0, a1, b0, b1;
     limb_t m;
     int l;
-    
+
     m = ntt_mods[m_idx];
-    
+
     m_inv = _mm256_set1_pd(1.0 / (double)m);
     mf = _mm256_set1_pd(m);
     m2f = _mm256_set1_pd(m * 2);
@@ -7612,7 +7612,7 @@ static no_inline int ntt_fft(BFNTTState *s,
     tmp = tab_in;
     tab_in = tab_out;
     tab_out = tmp;
-    
+
     nb_blocks = n / 4;
     fft_per_block = 4;
 
@@ -7663,7 +7663,7 @@ static void ntt_vec_mul(BFNTTState *s,
 {
     limb_t i, c_inv, n, m;
     __m256d m_inv, mf, a, b, c;
-    
+
     m = ntt_mods[m_idx];
     c_inv = s->ntt_len_inv[m_idx][k_tot][0];
     m_inv = _mm256_set1_pd(1.0 / (double)m);
@@ -7685,7 +7685,7 @@ static no_inline void mul_trig(NTTLimb *buf,
     limb_t i, c2, c3, c4;
     __m256d c, c_mul, a0, mf, m_inv;
     assert(n >= 2);
-    
+
     mf = _mm256_set1_pd(m);
     m_inv = _mm256_set1_pd(1.0 / (double)m);
 
@@ -7734,7 +7734,7 @@ static no_inline int ntt_fft(BFNTTState *s, NTTLimb *out_buf, NTTLimb *in_buf,
     limb_t nb_blocks, fft_per_block, p, k, n, stride_in, i, j, m, m2;
     NTTLimb *tab_in, *tab_out, *tmp, a0, a1, b0, b1, c, *trig, c_inv;
     int l;
-    
+
     m = ntt_mods[m_idx];
     m2 = 2 * m;
     n = (limb_t)1 << fft_len_log2;
@@ -7774,7 +7774,7 @@ static no_inline int ntt_fft(BFNTTState *s, NTTLimb *out_buf, NTTLimb *in_buf,
         tab_out = tmp;
     }
     /* no twiddle in last step */
-    tab_out = out_buf; 
+    tab_out = out_buf;
     for(k = 0; k < stride_in; k++) {
         a0 = tab_in[k];
         a1 = tab_in[k + stride_in];
@@ -7791,7 +7791,7 @@ static void ntt_vec_mul(BFNTTState *s,
                         int k_tot, int m_idx)
 {
     limb_t i, norm, norm_inv, a, n, m, m_inv;
-    
+
     m = ntt_mods[m_idx];
     m_inv = s->ntt_mods_div[m_idx];
     norm = s->ntt_len_inv[m_idx][k_tot][0];
@@ -7813,7 +7813,7 @@ static no_inline void mul_trig(NTTLimb *buf,
                                limb_t n, limb_t c_mul, limb_t m, limb_t m_inv)
 {
     limb_t i, c0, c_mul_inv;
-    
+
     c0 = 1;
     c_mul_inv = init_mul_mod_fast2(c_mul, m);
     for(i = 0; i < n; i++) {
@@ -7829,7 +7829,7 @@ static no_inline NTTLimb *get_trig(BFNTTState *s,
 {
     NTTLimb *tab;
     limb_t i, n2, c, c_mul, m, c_mul_inv;
-    
+
     if (k > NTT_TRIG_K_MAX)
         return NULL;
 
@@ -7894,7 +7894,7 @@ static int ntt_fft_partial(BFNTTState *s, NTTLimb *buf1,
 {
     limb_t i, j, c_mul, c0, m, m_inv, strip_len, l;
     NTTLimb *buf2, *buf3;
-    
+
     buf2 = NULL;
     buf3 = ntt_malloc(s, sizeof(NTTLimb) * n1);
     if (!buf3)
@@ -7927,7 +7927,7 @@ static int ntt_fft_partial(BFNTTState *s, NTTLimb *buf1,
                     mul_trig(buf2 + l * n1, n1, c_mul, m, m_inv);
                 c_mul = mul_mod_fast(c_mul, c0, m, m_inv);
             }
-            
+
             for(i = 0; i < n1; i++) {
                 for(l = 0; l < strip_len; l++) {
                     buf1[i * n2 + (j + l)] = buf2[i + l *n1];
@@ -7951,7 +7951,7 @@ static int ntt_conv(BFNTTState *s, NTTLimb *buf1, NTTLimb *buf2,
 {
     limb_t n1, n2, i;
     int k1, k2;
-    
+
     if (k <= NTT_TRIG_K_MAX) {
         k1 = k;
     } else {
@@ -7961,7 +7961,7 @@ static int ntt_conv(BFNTTState *s, NTTLimb *buf1, NTTLimb *buf2,
     k2 = k - k1;
     n1 = (limb_t)1 << k1;
     n2 = (limb_t)1 << k2;
-    
+
     if (ntt_fft_partial(s, buf1, k1, k2, n1, n2, 0, m_idx))
         return -1;
     if (ntt_fft_partial(s, buf2, k1, k2, n1, n2, 0, m_idx))
@@ -7988,13 +7988,13 @@ static no_inline void limb_to_ntt(BFNTTState *s,
     dlimb_t a, b;
     int j, shift;
     limb_t base_mask1, a0, a1, a2, r, m, m_inv;
-    
+
 #if 0
     for(i = 0; i < a_len; i++) {
         printf("%" PRId64 ": " FMT_LIMB "\n",
                (int64_t)i, taba[i]);
     }
-#endif   
+#endif
     memset(tabr, 0, sizeof(NTTLimb) * fft_len * nb_mods);
     shift = dpl & (LIMB_BITS - 1);
     if (shift == 0)
@@ -8059,21 +8059,21 @@ static no_inline void ntt_to_limb(BFNTTState *s, limb_t *tabr, limb_t r_len,
     slimb_t i, len, pos;
     int j, k, l, shift, n_limb1, p;
     dlimb_t t;
-        
+
     j = NB_MODS * (NB_MODS - 1) / 2 - nb_mods * (nb_mods - 1) / 2;
     mods_cr_vec = s->ntt_mods_cr_vec + j;
     mf = s->ntt_mods_vec + NB_MODS - nb_mods;
     m_inv = s->ntt_mods_inv_vec + NB_MODS - nb_mods;
-        
+
     shift = dpl & (LIMB_BITS - 1);
     if (shift == 0)
         base_mask1 = -1;
     else
         base_mask1 = ((limb_t)1 << shift) - 1;
     n_limb1 = ((unsigned)dpl - 1) / LIMB_BITS;
-    for(j = 0; j < NB_MODS; j++) 
+    for(j = 0; j < NB_MODS; j++)
         carry[j] = 0;
-    for(j = 0; j < NB_MODS; j++) 
+    for(j = 0; j < NB_MODS; j++)
         u[j] = 0; /* avoid warnings */
     memset(tabr, 0, sizeof(limb_t) * r_len);
     fft_len = (limb_t)1 << fft_len_log2;
@@ -8095,7 +8095,7 @@ static no_inline void ntt_to_limb(BFNTTState *s, limb_t *tabr, limb_t r_len,
             }
         }
         y[j].v = ntt_mod1(y[j].v, mf[j]);
-        
+
         for(p = 0; p < VEC_LEN; p++) {
             /* back to normal representation */
             u[0] = (int64_t)y[nb_mods - 1].d[p];
@@ -8111,7 +8111,7 @@ static no_inline void ntt_to_limb(BFNTTState *s, limb_t *tabr, limb_t r_len,
                 l++;
             }
             /* XXX: for nb_mods = 5, l should be 4 */
-            
+
             /* last step adds the carry */
             r = (int64_t)y[0].d[p];
             for(k = 0; k < l; k++) {
@@ -8128,7 +8128,7 @@ static no_inline void ntt_to_limb(BFNTTState *s, limb_t *tabr, limb_t r_len,
             }
             printf("\n");
 #endif
-            
+
             /* write the digits */
             pos = i * dpl;
             for(j = 0; j < n_limb1; j++) {
@@ -8162,7 +8162,7 @@ static no_inline void ntt_to_limb(BFNTTState *s, limb_t *tabr, limb_t r_len,
     slimb_t i, len, pos;
     int j, k, l, shift, n_limb1;
     dlimb_t t;
-        
+
     j = NB_MODS * (NB_MODS - 1) / 2 - nb_mods * (nb_mods - 1) / 2;
     mods_cr = ntt_mods_cr + j;
     mods_cr_inv = s->ntt_mods_cr_inv + j;
@@ -8173,9 +8173,9 @@ static no_inline void ntt_to_limb(BFNTTState *s, limb_t *tabr, limb_t r_len,
     else
         base_mask1 = ((limb_t)1 << shift) - 1;
     n_limb1 = ((unsigned)dpl - 1) / LIMB_BITS;
-    for(j = 0; j < NB_MODS; j++) 
+    for(j = 0; j < NB_MODS; j++)
         carry[j] = 0;
-    for(j = 0; j < NB_MODS; j++) 
+    for(j = 0; j < NB_MODS; j++)
         u[j] = 0; /* avoid warnings */
     memset(tabr, 0, sizeof(limb_t) * r_len);
     fft_len = (limb_t)1 << fft_len_log2;
@@ -8193,12 +8193,12 @@ static no_inline void ntt_to_limb(BFNTTState *s, limb_t *tabr, limb_t r_len,
                 m = mods[k];
                 /* Note: there is no overflow in the sub_mod() because
                    the modulos are sorted by increasing order */
-                y[k] = mul_mod_fast2(y[k] - y[j] + m, 
+                y[k] = mul_mod_fast2(y[k] - y[j] + m,
                                      mods_cr[l], m, mods_cr_inv[l]);
                 l++;
             }
         }
-        
+
         /* back to normal representation */
         u[0] = y[nb_mods - 1];
         l = 1;
@@ -8212,7 +8212,7 @@ static no_inline void ntt_to_limb(BFNTTState *s, limb_t *tabr, limb_t r_len,
             u[l] = r;
             l++;
         }
-        
+
         /* last step adds the carry */
         r = y[0];
         for(k = 0; k < l; k++) {
@@ -8229,7 +8229,7 @@ static no_inline void ntt_to_limb(BFNTTState *s, limb_t *tabr, limb_t r_len,
         }
         printf("\n");
 #endif
-        
+
         /* write the digits */
         pos = i * dpl;
         for(j = 0; j < n_limb1; j++) {
@@ -8270,7 +8270,7 @@ static int ntt_static_init(bf_context_t *s1)
     memset(s, 0, sizeof(*s));
     s1->ntt_state = s;
     s->ctx = s1;
-    
+
     for(j = 0; j < NB_MODS; j++) {
         m = ntt_mods[j];
         m_inv = init_mul_mod_fast(m);
@@ -8319,7 +8319,7 @@ int bf_get_fft_size(int *pdpl, int *pnb_mods, limb_t len)
     int dpl, fft_len_log2, n_bits, nb_mods, dpl_found, fft_len_log2_found;
     int int_bits, nb_mods_found;
     limb_t cost, min_cost;
-    
+
     min_cost = -1;
     dpl_found = 0;
     nb_mods_found = 4;
@@ -8375,11 +8375,11 @@ static no_inline int fft_mul(bf_context_t *s1,
 #if defined(USE_MUL_CHECK)
     limb_t ha, hb, hr, h_ref;
 #endif
-    
+
     if (ntt_static_init(s1))
         return -1;
     s = s1->ntt_state;
-    
+
     /* find the optimal number of digits per limb (dpl) */
     len = a_len + b_len;
     fft_len_log2 = bf_get_fft_size(&dpl, &nb_mods, len);
@@ -8407,7 +8407,7 @@ static no_inline int fft_mul(bf_context_t *s1,
         return -1;
     limb_to_ntt(s, buf1, fft_len, a_tab, a_len, dpl,
                 NB_MODS - nb_mods, nb_mods);
-    if ((mul_flags & (FFT_MUL_R_OVERLAP_A | FFT_MUL_R_OVERLAP_B)) == 
+    if ((mul_flags & (FFT_MUL_R_OVERLAP_A | FFT_MUL_R_OVERLAP_B)) ==
         FFT_MUL_R_OVERLAP_A) {
         if (!(mul_flags & FFT_MUL_R_NORESIZE))
             bf_resize(res, 0);
@@ -8457,7 +8457,7 @@ static no_inline int fft_mul(bf_context_t *s1,
         //        printf("ha=0x" FMT_LIMB" hb=0x" FMT_LIMB " hr=0x" FMT_LIMB " expected=0x" FMT_LIMB "\n", ha, hb, hr, h_ref);
         exit(1);
     }
-#endif    
+#endif
     return 0;
  fail:
     ntt_free(s, buf1);
diff --git a/lib/quickjs/libbf.h b/lib/quickjs/libbf.h
index 0457c180..a1436ab5 100644
--- a/lib/quickjs/libbf.h
+++ b/lib/quickjs/libbf.h
@@ -1,6 +1,6 @@
 /*
  * Tiny arbitrary precision floating point library
- * 
+ *
  * Copyright (c) 2017-2021 Fabrice Bellard
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -171,7 +171,7 @@ static inline bf_flags_t bf_set_exp_bits(int n)
 #define BF_ST_UNDERFLOW   (1 << 3)
 #define BF_ST_INEXACT     (1 << 4)
 /* indicate that a memory allocation error occured. NaN is returned */
-#define BF_ST_MEM_ERROR   (1 << 5) 
+#define BF_ST_MEM_ERROR   (1 << 5)
 
 #define BF_RADIX_MAX 36 /* maximum radix for bf_atof() and bf_ftoa() */
 
@@ -284,7 +284,7 @@ int bf_sub(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec, bf_flags_t flags)
 int bf_add_si(bf_t *r, const bf_t *a, int64_t b1, limb_t prec, bf_flags_t flags);
 int bf_mul(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec, bf_flags_t flags);
 int bf_mul_ui(bf_t *r, const bf_t *a, uint64_t b1, limb_t prec, bf_flags_t flags);
-int bf_mul_si(bf_t *r, const bf_t *a, int64_t b1, limb_t prec, 
+int bf_mul_si(bf_t *r, const bf_t *a, int64_t b1, limb_t prec,
               bf_flags_t flags);
 int bf_mul_2exp(bf_t *r, slimb_t e, limb_t prec, bf_flags_t flags);
 int bf_div(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec, bf_flags_t flags);
@@ -341,12 +341,12 @@ int bf_mul_pow_radix(bf_t *r, const bf_t *T, limb_t radix,
 /* fractional format: prec digits after the decimal point rounded with
    (flags & BF_RND_MASK) */
 #define BF_FTOA_FORMAT_FRAC  (1 << 16)
-/* free format: 
-   
+/* free format:
+
    For binary radices with bf_ftoa() and for bfdec_ftoa(): use the minimum
    number of digits to represent 'a'. The precision and the rounding
    mode are ignored.
-   
+
    For the non binary radices with bf_ftoa(): use as many digits as
    necessary so that bf_atof() return the same number when using
    precision 'prec', rounding to nearest and the subnormal
@@ -373,7 +373,7 @@ char *bf_ftoa(size_t *plen, const bf_t *a, int radix, limb_t prec,
               bf_flags_t flags);
 
 /* modulo 2^n instead of saturation. NaN and infinity return 0 */
-#define BF_GET_INT_MOD (1 << 0) 
+#define BF_GET_INT_MOD (1 << 0)
 int bf_get_int32(int *pres, const bf_t *a, int flags);
 int bf_get_int64(int64_t *pres, const bf_t *a, int flags);
 int bf_get_uint64(uint64_t *pres, const bf_t *a);
@@ -387,10 +387,10 @@ int bf_normalize_and_round(bf_t *r, limb_t prec1, bf_flags_t flags);
 int bf_can_round(const bf_t *a, slimb_t prec, bf_rnd_t rnd_mode, slimb_t k);
 slimb_t bf_mul_log2_radix(slimb_t a1, unsigned int radix, int is_inv,
                           int is_ceil1);
-int mp_mul(bf_context_t *s, limb_t *result, 
-           const limb_t *op1, limb_t op1_size, 
+int mp_mul(bf_context_t *s, limb_t *result,
+           const limb_t *op1, limb_t op1_size,
            const limb_t *op2, limb_t op2_size);
-limb_t mp_add(limb_t *res, const limb_t *op1, const limb_t *op2, 
+limb_t mp_add(limb_t *res, const limb_t *op1, const limb_t *op2,
               limb_t n, limb_t carry);
 limb_t mp_add_ui(limb_t *tab, limb_t b, size_t n);
 int mp_sqrtrem(bf_context_t *s, limb_t *tabs, limb_t *taba, limb_t n);
diff --git a/lib/quickjs/libregexp-opcode.h b/lib/quickjs/libregexp-opcode.h
index 189d1215..f255e09f 100644
--- a/lib/quickjs/libregexp-opcode.h
+++ b/lib/quickjs/libregexp-opcode.h
@@ -1,6 +1,6 @@
 /*
  * Regular Expression Engine
- * 
+ *
  * Copyright (c) 2017-2018 Fabrice Bellard
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
diff --git a/lib/quickjs/libregexp.c b/lib/quickjs/libregexp.c
index 34a8c013..6c3ee19e 100644
--- a/lib/quickjs/libregexp.c
+++ b/lib/quickjs/libregexp.c
@@ -1,6 +1,6 @@
 /*
  * Regular Expression Engine
- * 
+ *
  * Copyright (c) 2017-2018 Fabrice Bellard
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -196,7 +196,7 @@ static int cr_init_char_range(REParseState *s, CharRange *cr, uint32_t c)
     BOOL invert;
     const uint16_t *c_pt;
     int len, i;
-    
+
     invert = c & 1;
     c_pt = char_range_table[c >> 1];
     len = *c_pt++;
@@ -221,7 +221,7 @@ static __maybe_unused void lre_dump_bytecode(const uint8_t *buf,
 {
     int pos, len, opcode, bc_len, re_flags, i;
     uint32_t val;
-    
+
     assert(buf_len >= RE_HEADER_LEN);
 
     re_flags=  buf[0];
@@ -392,7 +392,7 @@ static int parse_digits(const uint8_t **pp, BOOL allow_overflow)
     const uint8_t *p;
     uint64_t v;
     int c;
-    
+
     p = *pp;
     v = 0;
     for(;;) {
@@ -464,7 +464,7 @@ int lre_parse_escape(const uint8_t **pp, int allow_utf16)
         {
             int h, n, i;
             uint32_t c1;
-            
+
             if (*p == '{' && allow_utf16) {
                 p++;
                 c = 0;
@@ -658,7 +658,7 @@ static int get_class_atom(REParseState *s, CharRange *cr,
     const uint8_t *p;
     uint32_t c;
     int ret;
-    
+
     p = *pp;
 
     c = *p;
@@ -766,7 +766,7 @@ static int re_emit_range(REParseState *s, const CharRange *cr)
 {
     int len, i;
     uint32_t high;
-    
+
     len = (unsigned)cr->len / 2;
     if (len >= 65535)
         return re_parse_error(s, "too many ranges");
@@ -807,7 +807,7 @@ static int re_parse_char_class(REParseState *s, const uint8_t **pp)
     CharRange cr_s, *cr = &cr_s;
     CharRange cr1_s, *cr1 = &cr1_s;
     BOOL invert;
-    
+
     cr_init(cr, s->opaque, lre_realloc);
     p = *pp;
     p++;    /* skip '[' */
@@ -895,7 +895,7 @@ static BOOL re_need_check_advance(const uint8_t *bc_buf, int bc_buf_len)
     int pos, opcode, len;
     uint32_t val;
     BOOL ret;
-    
+
     ret = TRUE;
     pos = 0;
     while (pos < bc_buf_len) {
@@ -948,7 +948,7 @@ static int re_is_simple_quantifier(const uint8_t *bc_buf, int bc_buf_len)
 {
     int pos, opcode, len, count;
     uint32_t val;
-    
+
     count = 0;
     pos = 0;
     while (pos < bc_buf_len) {
@@ -1113,7 +1113,7 @@ static int find_group_name(REParseState *s, const char *name)
     const char *p, *buf_end;
     size_t len, name_len;
     int capture_index;
-    
+
     name_len = strlen(name);
     p = (char *)s->group_names.buf;
     buf_end = (char *)s->group_names.buf + s->group_names.size;
@@ -1136,7 +1136,7 @@ static int re_parse_term(REParseState *s, BOOL is_backward_dir)
     int c, last_atom_start, quant_min, quant_max, last_capture_count;
     BOOL greedy, add_zero_advance_check, is_neg, is_backward_lookahead;
     CharRange cr_s, *cr = &cr_s;
-    
+
     last_atom_start = -1;
     last_capture_count = 0;
     p = s->buf_ptr;
@@ -1259,15 +1259,15 @@ static int re_parse_term(REParseState *s, BOOL is_backward_dir)
             capture_index = s->capture_count++;
             re_emit_op_u8(s, REOP_save_start + is_backward_dir,
                           capture_index);
-            
+
             s->buf_ptr = p;
             if (re_parse_disjunction(s, is_backward_dir))
                 return -1;
             p = s->buf_ptr;
-            
+
             re_emit_op_u8(s, REOP_save_start + 1 - is_backward_dir,
                           capture_index);
-            
+
             if (re_parse_expect(s, &p, ')'))
                 return -1;
         }
@@ -1283,7 +1283,7 @@ static int re_parse_term(REParseState *s, BOOL is_backward_dir)
             {
                 const uint8_t *p1;
                 int dummy_res;
-                
+
                 p1 = p;
                 if (p1[2] != '<') {
                     /* annex B: we tolerate invalid group names in non
@@ -1336,10 +1336,10 @@ static int re_parse_term(REParseState *s, BOOL is_backward_dir)
             goto normal_char;
         case '1': case '2': case '3': case '4':
         case '5': case '6': case '7': case '8':
-        case '9': 
+        case '9':
             {
                 const uint8_t *q = ++p;
-                
+
                 c = parse_digits(&p, FALSE);
                 if (c < 0 || (c >= s->capture_count && c >= re_count_captures(s))) {
                     if (!s->is_utf16) {
@@ -1480,7 +1480,7 @@ static int re_parse_term(REParseState *s, BOOL is_backward_dir)
             }
             if (greedy) {
                 int len, pos;
-                
+
                 if (quant_max > 0) {
                     /* specific optimization for simple quantifiers */
                     if (dbuf_error(&s->byte_code))
@@ -1489,7 +1489,7 @@ static int re_parse_term(REParseState *s, BOOL is_backward_dir)
                                                  s->byte_code.size - last_atom_start);
                     if (len > 0) {
                         re_emit_op(s, REOP_match);
-                        
+
                         if (dbuf_insert(&s->byte_code, last_atom_start, 17))
                             goto out_of_memory;
                         pos = last_atom_start;
@@ -1506,7 +1506,7 @@ static int re_parse_term(REParseState *s, BOOL is_backward_dir)
                         goto done;
                     }
                 }
-                
+
                 if (dbuf_error(&s->byte_code))
                     goto out_of_memory;
                 /* the spec tells that if there is no advance when
@@ -1518,7 +1518,7 @@ static int re_parse_term(REParseState *s, BOOL is_backward_dir)
             } else {
                 add_zero_advance_check = FALSE;
             }
-            
+
             {
                 int len, pos;
                 len = s->byte_code.size - last_atom_start;
@@ -1544,7 +1544,7 @@ static int re_parse_term(REParseState *s, BOOL is_backward_dir)
                                 len + 5 * has_goto + add_zero_advance_check * 2);
                         if (add_zero_advance_check) {
                             s->byte_code.buf[last_atom_start + 1 + 4] = REOP_push_char_pos;
-                            re_emit_op(s, REOP_check_advance); 
+                            re_emit_op(s, REOP_check_advance);
                         }
                         if (has_goto)
                             re_emit_goto(s, REOP_goto, last_atom_start);
@@ -1560,7 +1560,7 @@ static int re_parse_term(REParseState *s, BOOL is_backward_dir)
                         pos += 4;
                         if (add_zero_advance_check) {
                             s->byte_code.buf[pos++] = REOP_push_char_pos;
-                            re_emit_op(s, REOP_check_advance); 
+                            re_emit_op(s, REOP_check_advance);
                         }
                         re_emit_goto(s, REOP_loop, last_atom_start + 5);
                         re_emit_op(s, REOP_drop);
@@ -1655,14 +1655,14 @@ static int re_parse_alternative(REParseState *s, BOOL is_backward_dir)
     }
     return 0;
 }
-    
+
 static int re_parse_disjunction(REParseState *s, BOOL is_backward_dir)
 {
     int start, len, pos;
 
     if (lre_check_stack_overflow(s->opaque, 0))
         return re_parse_error(s, "stack overflow");
-    
+
     start = s->byte_code.size;
     if (re_parse_alternative(s, is_backward_dir))
         return -1;
@@ -1682,7 +1682,7 @@ static int re_parse_disjunction(REParseState *s, BOOL is_backward_dir)
 
         if (re_parse_alternative(s, is_backward_dir))
             return -1;
-        
+
         /* patch the goto */
         len = s->byte_code.size - (pos + 4);
         put_u32(s->byte_code.buf + pos, len);
@@ -1695,7 +1695,7 @@ static int compute_stack_size(const uint8_t *bc_buf, int bc_buf_len)
 {
     int stack_size, stack_size_max, pos, opcode, len;
     uint32_t val;
-    
+
     stack_size = 0;
     stack_size_max = 0;
     bc_buf += RE_HEADER_LEN;
@@ -1746,7 +1746,7 @@ uint8_t *lre_compile(int *plen, char *error_msg, int error_msg_size,
     REParseState s_s, *s = &s_s;
     int stack_size;
     BOOL is_sticky;
-    
+
     memset(s, 0, sizeof(*s));
     s->opaque = opaque;
     s->buf_ptr = (const uint8_t *)buf;
@@ -1760,7 +1760,7 @@ uint8_t *lre_compile(int *plen, char *error_msg, int error_msg_size,
     s->capture_count = 1;
     s->total_capture_count = -1;
     s->has_named_captures = -1;
-    
+
     dbuf_init2(&s->byte_code, opaque, lre_realloc);
     dbuf_init2(&s->group_names, opaque, lre_realloc);
 
@@ -1768,7 +1768,7 @@ uint8_t *lre_compile(int *plen, char *error_msg, int error_msg_size,
     dbuf_putc(&s->byte_code, 0); /* second element is the number of captures */
     dbuf_putc(&s->byte_code, 0); /* stack size */
     dbuf_put_u32(&s->byte_code, 0); /* bytecode length */
-    
+
     if (!is_sticky) {
         /* iterate thru all positions (about the same as .*?( ... ) )
            .  We do it without an explicit loop so that lock step
@@ -1790,7 +1790,7 @@ uint8_t *lre_compile(int *plen, char *error_msg, int error_msg_size,
     }
 
     re_emit_op_u8(s, REOP_save_end, 0);
-    
+
     re_emit_op(s, REOP_match);
 
     if (*s->buf_ptr != '\0') {
@@ -1802,13 +1802,13 @@ uint8_t *lre_compile(int *plen, char *error_msg, int error_msg_size,
         re_parse_out_of_memory(s);
         goto error;
     }
-    
+
     stack_size = compute_stack_size(s->byte_code.buf, s->byte_code.size);
     if (stack_size < 0) {
         re_parse_error(s, "too many imbricated quantifiers");
         goto error;
     }
-    
+
     s->byte_code.buf[RE_HEADER_CAPTURE_COUNT] = s->capture_count;
     s->byte_code.buf[RE_HEADER_STACK_SIZE] = stack_size;
     put_u32(s->byte_code.buf + 3, s->byte_code.size - RE_HEADER_LEN);
@@ -1819,11 +1819,11 @@ uint8_t *lre_compile(int *plen, char *error_msg, int error_msg_size,
         s->byte_code.buf[RE_HEADER_FLAGS] |= LRE_FLAG_NAMED_GROUPS;
     }
     dbuf_free(&s->group_names);
-    
+
 #ifdef DUMP_REOP
     lre_dump_bytecode(s->byte_code.buf, s->byte_code.size);
 #endif
-    
+
     error_msg[0] = '\0';
     *plen = s->byte_code.size;
     return s->byte_code.buf;
@@ -1974,7 +1974,7 @@ typedef struct {
     const uint8_t *cbuf_end;
     /* 0 = 8 bit chars, 1 = 16 bit chars, 2 = 16 bit chars, UTF-16,
        3 = 8 bit chars, UTF-8 */
-    int cbuf_type; 
+    int cbuf_type;
     int capture_count;
     int stack_size_max;
     BOOL multi_line;
@@ -2036,7 +2036,7 @@ static intptr_t lre_exec_backtrack(REExecContext *s, uint8_t **capture,
     int cbuf_type;
     uint32_t val, c;
     const uint8_t *cbuf_end;
-    
+
     cbuf_type = s->cbuf_type;
     cbuf_end = s->cbuf_end;
 
@@ -2134,7 +2134,7 @@ static intptr_t lre_exec_backtrack(REExecContext *s, uint8_t **capture,
         case REOP_split_next_first:
             {
                 const uint8_t *pc1;
-                
+
                 val = get_u32(pc);
                 pc += 4;
                 if (opcode == REOP_split_next_first) {
@@ -2160,7 +2160,7 @@ static intptr_t lre_exec_backtrack(REExecContext *s, uint8_t **capture,
             if (ret < 0)
                 return -1;
             break;
-            
+
         case REOP_goto:
             val = get_u32(pc);
             pc += 4 + (int)val;
@@ -2264,7 +2264,7 @@ static intptr_t lre_exec_backtrack(REExecContext *s, uint8_t **capture,
             {
                 const uint8_t *cptr1, *cptr1_end, *cptr1_start;
                 uint32_t c1, c2;
-                
+
                 val = *pc++;
                 if (val >= s->capture_count)
                     goto no_match;
@@ -2307,7 +2307,7 @@ static intptr_t lre_exec_backtrack(REExecContext *s, uint8_t **capture,
             {
                 int n;
                 uint32_t low, high, idx_min, idx_max, idx;
-                
+
                 n = get_u16(pc); /* n must be >= 1 */
                 pc += 2;
                 if (cptr >= cbuf_end)
@@ -2347,7 +2347,7 @@ static intptr_t lre_exec_backtrack(REExecContext *s, uint8_t **capture,
             {
                 int n;
                 uint32_t low, high, idx_min, idx_max, idx;
-                
+
                 n = get_u16(pc); /* n must be >= 1 */
                 pc += 2;
                 if (cptr >= cbuf_end)
@@ -2392,14 +2392,14 @@ static intptr_t lre_exec_backtrack(REExecContext *s, uint8_t **capture,
                 size_t q;
                 intptr_t res;
                 const uint8_t *pc1;
-                
+
                 next_pos = get_u32(pc);
                 quant_min = get_u32(pc + 4);
                 quant_max = get_u32(pc + 8);
                 pc += 16;
                 pc1 = pc;
                 pc += (int)next_pos;
-                
+
                 q = 0;
                 for(;;) {
                     res = lre_exec_backtrack(s, capture, stack, stack_len,
@@ -2442,7 +2442,7 @@ int lre_exec(uint8_t **capture,
     REExecContext s_s, *s = &s_s;
     int re_flags, i, alloca_size, ret, cbuf_width = cbuf_type;
     StackInt *stack_buf;
-    
+
     if (cbuf_width == 3) /* UTF-8 */
         cbuf_width = 0;
     re_flags = bc_buf[RE_HEADER_FLAGS];
@@ -2464,7 +2464,7 @@ int lre_exec(uint8_t **capture,
     s->state_stack = NULL;
     s->state_stack_len = 0;
     s->state_stack_size = 0;
-    
+
     for(i = 0; i < s->capture_count * 2; i++)
         capture[i] = NULL;
     alloca_size = s->stack_size_max * sizeof(stack_buf[0]);
@@ -2516,7 +2516,7 @@ int main(int argc, char **argv)
     uint8_t *capture[CAPTURE_COUNT_MAX * 2];
     const char *input;
     int input_len, capture_count;
-    
+
     if (argc < 3) {
         printf("usage: %s regexp input\n", argv[0]);
         exit(1);
@@ -2530,7 +2530,7 @@ int main(int argc, char **argv)
 
     input = argv[2];
     input_len = strlen(input);
-    
+
     ret = lre_exec(capture, bc, (uint8_t *)input, 0, input_len, 0, NULL);
     printf("ret=%d\n", ret);
     if (ret == 1) {
diff --git a/lib/quickjs/libregexp.h b/lib/quickjs/libregexp.h
index c0bc58d0..7c03b1ad 100644
--- a/lib/quickjs/libregexp.h
+++ b/lib/quickjs/libregexp.h
@@ -1,6 +1,6 @@
 /*
  * Regular Expression Engine
- * 
+ *
  * Copyright (c) 2017-2018 Fabrice Bellard
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -54,7 +54,7 @@ int lre_parse_escape(const uint8_t **pp, int allow_utf16);
 LRE_BOOL lre_is_space(int c);
 
 /* must be provided by the user */
-LRE_BOOL lre_check_stack_overflow(void *opaque, size_t alloca_size); 
+LRE_BOOL lre_check_stack_overflow(void *opaque, size_t alloca_size);
 void *lre_realloc(void *opaque, void *ptr, size_t size);
 
 /* JS identifier test */
diff --git a/lib/quickjs/libunicode.c b/lib/quickjs/libunicode.c
index 0712a6c0..4200252d 100644
--- a/lib/quickjs/libunicode.c
+++ b/lib/quickjs/libunicode.c
@@ -1,6 +1,6 @@
 /*
  * Unicode utilities
- * 
+ *
  * Copyright (c) 2017-2018 Fabrice Bellard
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -149,9 +149,9 @@ static int lre_case_conv_entry(uint32_t *res, uint32_t c, int conv_type, uint32_
 }
 
 /* conv_type:
-   0 = to upper 
+   0 = to upper
    1 = to lower
-   2 = case folding (= to lower with modifications) 
+   2 = case folding (= to lower with modifications)
 */
 int lre_case_conv(uint32_t *res, uint32_t c, int conv_type)
 {
@@ -168,7 +168,7 @@ int lre_case_conv(uint32_t *res, uint32_t c, int conv_type)
     } else {
         uint32_t v, code, len;
         int idx, idx_min, idx_max;
-        
+
         idx_min = 0;
         idx_max = countof(case_conv_table1) - 1;
         while (idx_min <= idx_max) {
@@ -240,7 +240,7 @@ int lre_canonicalize(uint32_t c, BOOL is_unicode)
     } else {
         uint32_t v, code, len;
         int idx, idx_min, idx_max;
-        
+
         idx_min = 0;
         idx_max = countof(case_conv_table1) - 1;
         while (idx_min <= idx_max) {
@@ -311,7 +311,7 @@ static BOOL lre_is_in_table(uint32_t c, const uint8_t *table,
     uint32_t code, b, bit;
     int pos;
     const uint8_t *p;
-    
+
     pos = get_index_pos(&code, c, index_table, index_table_len);
     if (pos < 0)
         return FALSE; /* outside the table */
@@ -344,7 +344,7 @@ BOOL lre_is_cased(uint32_t c)
 {
     uint32_t v, code, len;
     int idx, idx_min, idx_max;
-        
+
     idx_min = 0;
     idx_max = countof(case_conv_table1) - 1;
     while (idx_min <= idx_max) {
@@ -403,7 +403,7 @@ int cr_realloc(CharRange *cr, int size)
 {
     int new_size;
     uint32_t *new_buf;
-    
+
     if (size > cr->size) {
         new_size = max_int(size, cr->size * 3 / 2);
         new_buf = cr->realloc_func(cr->mem_opaque, cr->points,
@@ -430,7 +430,7 @@ static void cr_compress(CharRange *cr)
 {
     int i, j, k, len;
     uint32_t *pt;
-    
+
     pt = cr->points;
     len = cr->len;
     i = 0;
@@ -460,7 +460,7 @@ int cr_op(CharRange *cr, const uint32_t *a_pt, int a_len,
 {
     int a_idx, b_idx, is_in;
     uint32_t v;
-    
+
     a_idx = 0;
     b_idx = 0;
     for(;;) {
@@ -761,7 +761,7 @@ static int unicode_decomp_char(uint32_t *res, uint32_t c, BOOL is_compat1)
 {
     uint32_t v, type, is_compat, code, len;
     int idx_min, idx_max, idx;
-    
+
     idx_min = 0;
     idx_max = countof(unicode_decomp_table1) - 1;
     while (idx_min <= idx_max) {
@@ -791,7 +791,7 @@ static int unicode_compose_pair(uint32_t c0, uint32_t c1)
     uint32_t code, len, type, v, idx1, d_idx, d_offset, ch;
     int idx_min, idx_max, idx, d;
     uint32_t pair[2];
-    
+
     idx_min = 0;
     idx_max = countof(unicode_comp_table) - 1;
     while (idx_min <= idx_max) {
@@ -827,7 +827,7 @@ static int unicode_get_cc(uint32_t c)
     uint32_t code, n, type, cc, c1, b;
     int pos;
     const uint8_t *p;
-    
+
     pos = get_index_pos(&code, c,
                         unicode_cc_index, sizeof(unicode_cc_index) / 3);
     if (pos < 0)
@@ -876,7 +876,7 @@ static int unicode_get_cc(uint32_t c)
 static void sort_cc(int *buf, int len)
 {
     int i, j, k, cc, cc1, start, ch1;
-    
+
     for(i = 0; i < len; i++) {
         cc = unicode_get_cc(buf[i]);
         if (cc != 0) {
@@ -915,7 +915,7 @@ static void to_nfd_rec(DynBuf *dbuf,
     uint32_t c, v;
     int i, l;
     uint32_t res[UNICODE_DECOMP_LEN_MAX];
-    
+
     for(i = 0; i < src_len; i++) {
         c = src[i];
         if (c >= 0xac00 && c < 0xd7a4) {
@@ -960,7 +960,7 @@ int unicode_normalize(uint32_t **pdst, const uint32_t *src, int src_len,
     int *buf, buf_len, i, p, starter_pos, cc, last_cc, out_len;
     BOOL is_compat;
     DynBuf dbuf_s, *dbuf = &dbuf_s;
-    
+
     is_compat = n_type >> 1;
 
     dbuf_init2(dbuf, opaque, realloc_func);
@@ -988,15 +988,15 @@ int unicode_normalize(uint32_t **pdst, const uint32_t *src, int src_len,
     }
     buf = (int *)dbuf->buf;
     buf_len = dbuf->size / sizeof(int);
-        
+
     sort_cc(buf, buf_len);
-    
+
     if (buf_len <= 1 || (n_type & 1) != 0) {
         /* NFD / NFKD */
         *pdst = (uint32_t *)buf;
         return buf_len;
     }
-    
+
     i = 1;
     out_len = 1;
     while (i < buf_len) {
@@ -1033,7 +1033,7 @@ static int unicode_find_name(const char *name_table, const char *name)
     const char *p, *r;
     int pos;
     size_t name_len, len;
-    
+
     p = name_table;
     pos = 0;
     name_len = strlen(name);
@@ -1066,13 +1066,13 @@ int unicode_script(CharRange *cr,
     CharRange cr1_s, *cr1;
     CharRange cr2_s, *cr2 = &cr2_s;
     BOOL is_common;
-    
+
     script_idx = unicode_find_name(unicode_script_name_table, script_name);
     if (script_idx < 0)
         return -2;
     /* Note: we remove the "Unknown" Script */
     script_idx += UNICODE_SCRIPT_Unknown + 1;
-        
+
     is_common = (script_idx == UNICODE_SCRIPT_Common ||
                  script_idx == UNICODE_SCRIPT_Inherited);
     if (is_ext) {
@@ -1350,7 +1350,7 @@ static int point_cmp(const void *p1, const void *p2, void *arg)
 static void cr_sort_and_remove_overlap(CharRange *cr)
 {
     uint32_t start, end, start1, end1, i, j;
-    
+
     /* the resulting ranges are not necessarily sorted and may overlap */
     rqsort(cr->points, cr->len / 2, sizeof(cr->points[0]) * 2, point_cmp, NULL);
     j = 0;
@@ -1389,7 +1389,7 @@ int cr_regexp_canonicalize(CharRange *cr, BOOL is_unicode)
 {
     CharRange cr_inter, cr_mask, cr_result, cr_sub;
     uint32_t v, code, len, i, idx, start, end, c, d_start, d_end, d;
-    
+
     cr_init(&cr_mask, cr->mem_opaque, cr->realloc_func);
     cr_init(&cr_inter, cr->mem_opaque, cr->realloc_func);
     cr_init(&cr_result, cr->mem_opaque, cr->realloc_func);
@@ -1404,7 +1404,7 @@ int cr_regexp_canonicalize(CharRange *cr, BOOL is_unicode)
         goto fail;
     if (cr_op(&cr_sub, cr_mask.points, cr_mask.len, cr->points, cr->len, CR_OP_INTER))
         goto fail;
-    
+
     /* cr_inter = cr & cr_mask */
     /* cr_sub = cr & ~cr_mask */
 
@@ -1488,7 +1488,7 @@ static int unicode_prop_ops(CharRange *cr, ...)
     CharRange stack[POP_STACK_LEN_MAX];
     int stack_len, op, ret, i;
     uint32_t a;
-    
+
     va_start(ap, cr);
     stack_len = 0;
     for(;;) {
@@ -1574,7 +1574,7 @@ int unicode_general_category(CharRange *cr, const char *gc_name)
 {
     int gc_idx;
     uint32_t gc_mask;
-    
+
     gc_idx = unicode_find_name(unicode_gc_name_table, gc_name);
     if (gc_idx < 0)
         return -2;
@@ -1592,7 +1592,7 @@ int unicode_general_category(CharRange *cr, const char *gc_name)
 int unicode_prop(CharRange *cr, const char *prop_name)
 {
     int prop_idx, ret;
-    
+
     prop_idx = unicode_find_name(unicode_prop_name_table, prop_name);
     if (prop_idx < 0)
         return -2;
diff --git a/lib/quickjs/libunicode.h b/lib/quickjs/libunicode.h
index cfb886b8..f416157b 100644
--- a/lib/quickjs/libunicode.h
+++ b/lib/quickjs/libunicode.h
@@ -1,6 +1,6 @@
 /*
  * Unicode utilities
- * 
+ *
  * Copyright (c) 2017-2018 Fabrice Bellard
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
diff --git a/lib/quickjs/list.h b/lib/quickjs/list.h
index 5c182340..80983111 100644
--- a/lib/quickjs/list.h
+++ b/lib/quickjs/list.h
@@ -1,6 +1,6 @@
 /*
  * Linux klist like system
- * 
+ *
  * Copyright (c) 2016-2017 Fabrice Bellard
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -45,7 +45,7 @@ static inline void init_list_head(struct list_head *head)
 }
 
 /* insert 'el' between 'prev' and 'next' */
-static inline void __list_add(struct list_head *el, 
+static inline void __list_add(struct list_head *el,
                               struct list_head *prev, struct list_head *next)
 {
     prev->next = el;
diff --git a/lib/quickjs/quickjs-atom.h b/lib/quickjs/quickjs-atom.h
index f62a7c40..f4d5838d 100644
--- a/lib/quickjs/quickjs-atom.h
+++ b/lib/quickjs/quickjs-atom.h
@@ -1,6 +1,6 @@
 /*
  * QuickJS atom definitions
- * 
+ *
  * Copyright (c) 2017-2018 Fabrice Bellard
  * Copyright (c) 2017-2018 Charlie Gordon
  *
@@ -204,7 +204,7 @@ DEF(RegExp, "RegExp")
 DEF(ArrayBuffer, "ArrayBuffer")
 DEF(SharedArrayBuffer, "SharedArrayBuffer")
 /* must keep same order as class IDs for typed arrays */
-DEF(Uint8ClampedArray, "Uint8ClampedArray") 
+DEF(Uint8ClampedArray, "Uint8ClampedArray")
 DEF(Int8Array, "Int8Array")
 DEF(Uint8Array, "Uint8Array")
 DEF(Int16Array, "Int16Array")
@@ -269,5 +269,5 @@ DEF(Symbol_asyncIterator, "Symbol.asyncIterator")
 #ifdef CONFIG_BIGNUM
 DEF(Symbol_operatorSet, "Symbol.operatorSet")
 #endif
-    
+
 #endif /* DEF */
diff --git a/lib/quickjs/quickjs-opcode.h b/lib/quickjs/quickjs-opcode.h
index 6d2d6e9f..1e182125 100644
--- a/lib/quickjs/quickjs-opcode.h
+++ b/lib/quickjs/quickjs-opcode.h
@@ -1,6 +1,6 @@
 /*
  * QuickJS opcode definitions
- * 
+ *
  * Copyright (c) 2017-2018 Fabrice Bellard
  * Copyright (c) 2017-2018 Charlie Gordon
  *
@@ -165,7 +165,7 @@ DEF(        set_loc, 3, 1, 1, loc) /* must come after put_loc */
 DEF(        get_arg, 3, 0, 1, arg)
 DEF(        put_arg, 3, 1, 0, arg) /* must come after get_arg */
 DEF(        set_arg, 3, 1, 1, arg) /* must come after put_arg */
-DEF(    get_var_ref, 3, 0, 1, var_ref) 
+DEF(    get_var_ref, 3, 0, 1, var_ref)
 DEF(    put_var_ref, 3, 1, 0, var_ref) /* must come after get_var_ref */
 DEF(    set_var_ref, 3, 1, 1, var_ref) /* must come after put_var_ref */
 DEF(set_loc_uninitialized, 3, 0, 0, loc)
@@ -173,7 +173,7 @@ DEF(  get_loc_check, 3, 0, 1, loc)
 DEF(  put_loc_check, 3, 1, 0, loc) /* must come after get_loc_check */
 DEF(  put_loc_check_init, 3, 1, 0, loc)
 DEF(get_loc_checkthis, 3, 0, 1, loc)
-DEF(get_var_ref_check, 3, 0, 1, var_ref) 
+DEF(get_var_ref_check, 3, 0, 1, var_ref)
 DEF(put_var_ref_check, 3, 1, 0, var_ref) /* must come after get_var_ref_check */
 DEF(put_var_ref_check_init, 3, 1, 0, var_ref)
 DEF(      close_loc, 3, 0, 0, loc)
@@ -263,7 +263,7 @@ DEF(      mul_pow10, 1, 2, 1, none)
 DEF(       math_mod, 1, 2, 1, none)
 #endif
 /* must be the last non short and non temporary opcode */
-DEF(            nop, 1, 0, 0, none) 
+DEF(            nop, 1, 0, 0, none)
 
 /* temporary opcodes: never emitted in the final bytecode */
 
@@ -289,7 +289,7 @@ def(scope_in_private_field, 7, 1, 1, atom_u16) /* obj -> res emitted in phase 1,
 def(get_field_opt_chain, 5, 1, 1, atom) /* emitted in phase 1, removed in phase 2 */
 def(get_array_el_opt_chain, 1, 2, 1, none) /* emitted in phase 1, removed in phase 2 */
 def( set_class_name, 5, 1, 1, u32) /* emitted in phase 1, removed in phase 2 */
-    
+
 def(       line_num, 5, 0, 0, u32) /* emitted in phase 1, removed in phase 3 */
 
 #if SHORT_OPCODES
diff --git a/lib/quickjs/quickjs.c b/lib/quickjs/quickjs.c
index e18ba484..970a25a3 100644
--- a/lib/quickjs/quickjs.c
+++ b/lib/quickjs/quickjs.c
@@ -1,6 +1,6 @@
 /*
  * QuickJS Javascript Engine
- * 
+ *
  * Copyright (c) 2017-2021 Fabrice Bellard
  * Copyright (c) 2017-2021 Charlie Gordon
  *
@@ -193,7 +193,7 @@ typedef enum JSErrorEnum {
     JS_URI_ERROR,
     JS_INTERNAL_ERROR,
     JS_AGGREGATE_ERROR,
-    
+
     JS_NATIVE_ERROR_COUNT, /* number of different NativeError objects */
 } JSErrorEnum;
 
@@ -254,7 +254,7 @@ struct JSRuntime {
        by the garbage collector) */
     struct list_head gc_obj_list;
     /* list of JSGCObjectHeader.link. Used during JS_FreeValueRT() */
-    struct list_head gc_zero_ref_count_list; 
+    struct list_head gc_zero_ref_count_list;
     struct list_head tmp_obj_list; /* used during GC */
     /* used during GC (for keeping track of objects with a can_destroy hook) */
     struct list_head tmp_hook_obj_list;
@@ -267,7 +267,7 @@ struct JSRuntime {
     uintptr_t stack_size; /* in bytes, 0 if no limit */
     uintptr_t stack_top;
     uintptr_t stack_limit; /* lower stack limit */
-    
+
     JSValue current_exception;
     /* true if inside an out of memory error, to avoid recursing */
     BOOL in_out_of_memory : 8;
@@ -279,7 +279,7 @@ struct JSRuntime {
 
     JSHostPromiseRejectionTracker *host_promise_rejection_tracker;
     void *host_promise_rejection_tracker_opaque;
-    
+
     struct list_head job_list; /* list of JSJobEntry.link */
 
     JSModuleNormalizeFunc *module_normalize_func;
@@ -287,11 +287,11 @@ struct JSRuntime {
     void *module_loader_opaque;
     /* timestamp for internal use in module evaluation */
     int64_t module_async_evaluation_next_timestamp;
-    
+
     BOOL can_block : 8; /* TRUE if Atomics.wait can block */
     /* used to allocate, free and clone SharedArrayBuffers */
     JSSharedArrayBufferFunctions sab_funcs;
-    
+
     /* Shape hash table */
     int shape_hash_bits;
     int shape_hash_size;
@@ -335,7 +335,7 @@ typedef struct JSStackFrame {
     int arg_count;
     int js_mode; /* for C functions, only JS_MODE_MATH may be set */
     /* only used in generators. Current stack pointer value. NULL if
-       the function is running. */ 
+       the function is running. */
     JSValue *cur_sp;
 } JSStackFrame;
 
@@ -366,7 +366,7 @@ typedef struct JSVarRef {
         struct {
             int __gc_ref_count; /* corresponds to header.ref_count */
             uint8_t __gc_mark; /* corresponds to header.mark/gc_obj_type */
-            uint8_t is_detached : 1; 
+            uint8_t is_detached : 1;
             uint8_t is_arg : 1;
             uint16_t var_idx; /* index of the corresponding function variable on
                                  the stack */
@@ -548,7 +548,7 @@ typedef struct JSVarDef {
     JSAtom var_name;
     /* index into fd->scopes of this variable lexical scope */
     int scope_level;
-    /* during compilation: 
+    /* during compilation:
         - if scope_level = 0: scope in which the variable is defined
         - if scope_level != 0: index into fd->vars of the next
           variable in the same or enclosing lexical scope
@@ -556,7 +556,7 @@ typedef struct JSVarDef {
        index into fd->vars of the next
        variable in the same or enclosing lexical scope
     */
-    int scope_next;    
+    int scope_next;
     uint8_t is_const : 1;
     uint8_t is_lexical : 1;
     uint8_t is_captured : 1;
@@ -601,7 +601,7 @@ typedef struct JSFunctionBytecode {
     uint8_t has_debug : 1;
     uint8_t backtrace_barrier : 1; /* stop backtrace on this function */
     uint8_t read_only_bytecode : 1;
-    uint8_t is_direct_or_indirect_eval : 1; /* used by JS_GetScriptOrModuleName() */ 
+    uint8_t is_direct_or_indirect_eval : 1; /* used by JS_GetScriptOrModuleName() */
     /* XXX: 4 bits available */
     uint8_t *byte_code_buf; /* (self pointer) */
     int byte_code_len;
@@ -821,10 +821,10 @@ struct JSModuleDef {
     JSModuleDef *cycle_root;
     JSValue promise; /* corresponds to spec field: capability */
     JSValue resolving_funcs[2]; /* corresponds to spec field: capability */
-    
+
     /* true if evaluation yielded an exception. It is saved in
        eval_exception */
-    BOOL eval_has_exception : 8; 
+    BOOL eval_has_exception : 8;
     JSValue eval_exception;
     JSValue meta_obj; /* for import.meta */
 };
@@ -892,7 +892,7 @@ struct JSObject {
         struct {
             int __gc_ref_count; /* corresponds to header.ref_count */
             uint8_t __gc_mark; /* corresponds to header.mark/gc_obj_type */
-            
+
             uint8_t extensible : 1;
             uint8_t free_mark : 1; /* only used when freeing objects with cycles */
             uint8_t is_exotic : 1; /* TRUE if object has exotic property handlers */
@@ -952,7 +952,7 @@ struct JSObject {
                 struct JSTypedArray *typed_array; /* JS_CLASS_UINT8C_ARRAY..JS_CLASS_FLOAT64_ARRAY */
             } u1;
             union {
-                JSValue *values;        /* JS_CLASS_ARRAY, JS_CLASS_ARGUMENTS */ 
+                JSValue *values;        /* JS_CLASS_ARRAY, JS_CLASS_ARGUMENTS */
                 void *ptr;              /* JS_CLASS_UINT8C_ARRAY..JS_CLASS_FLOAT64_ARRAY */
                 int8_t *int8_ptr;       /* JS_CLASS_INT8_ARRAY */
                 uint8_t *uint8_ptr;     /* JS_CLASS_UINT8_ARRAY, JS_CLASS_UINT8C_ARRAY */
@@ -1651,7 +1651,7 @@ JSRuntime *JS_NewRuntime2(const JSMallocFunctions *mf, void *opaque)
     init_list_head(&rt->gc_obj_list);
     init_list_head(&rt->gc_zero_ref_count_list);
     rt->gc_phase = JS_GC_PHASE_NONE;
-    
+
 #ifdef DUMP_LEAKS
     init_list_head(&rt->string_list);
 #endif
@@ -2284,7 +2284,7 @@ void JS_FreeContext(JSContext *ctx)
     if (--ctx->header.ref_count > 0)
         return;
     assert(ctx->header.ref_count == 0);
-    
+
 #ifdef DUMP_ATOMS
     JS_DumpAtoms(ctx->rt);
 #endif
@@ -3341,7 +3341,7 @@ static JSAtom js_atom_concat_str(JSContext *ctx, JSAtom name, const char *str1)
     const char *cstr;
     char *cstr2;
     size_t len, len1;
-    
+
     str = JS_AtomToString(ctx, name);
     if (JS_IsException(str))
         return JS_ATOM_NULL;
@@ -3889,7 +3889,7 @@ JSValue JS_NewStringLen(JSContext *ctx, const char *buf, size_t buf_len)
     uint32_t c;
     StringBuffer b_s, *b = &b_s;
     size_t len1;
-    
+
     p_start = (const uint8_t *)buf;
     p_end = p_start + buf_len;
     p = p_start;
@@ -4410,7 +4410,7 @@ static no_inline JSShape *js_new_shape2(JSContext *ctx, JSObject *proto,
     sh->prop_size = prop_size;
     sh->prop_count = 0;
     sh->deleted_prop_count = 0;
-    
+
     /* insert in the hash table */
     sh->hash = shape_initial_hash(proto);
     sh->is_hashed = TRUE;
@@ -4531,7 +4531,7 @@ static no_inline int resize_properties(JSContext *ctx, JSShape **psh,
     memcpy(sh, old_sh,
            sizeof(JSShape) + sizeof(sh->prop[0]) * old_sh->prop_count);
     list_add_tail(&sh->header.link, &ctx->rt->gc_obj_list);
-    
+
     if (new_hash_size != (sh->prop_hash_mask + 1)) {
         /* resize the hash table and the properties */
         new_hash_mask = new_hash_size - 1;
@@ -4565,7 +4565,7 @@ static int compact_properties(JSContext *ctx, JSObject *p)
     uint32_t new_hash_size, i, j, new_hash_mask, new_size;
     JSShapeProperty *old_pr, *pr;
     JSProperty *prop, *new_prop;
-    
+
     sh = p->shape;
     assert(!sh->is_hashed);
 
@@ -4587,7 +4587,7 @@ static int compact_properties(JSContext *ctx, JSObject *p)
     list_del(&old_sh->header.link);
     memcpy(sh, old_sh, sizeof(JSShape));
     list_add_tail(&sh->header.link, &ctx->rt->gc_obj_list);
-    
+
     memset(prop_hash_end(sh) - new_hash_size, 0,
            sizeof(prop_hash_end(sh)[0]) * new_hash_size);
 
@@ -4616,7 +4616,7 @@ static int compact_properties(JSContext *ctx, JSObject *p)
 
     p->shape = sh;
     js_free(ctx, get_alloc_from_shape(old_sh));
-    
+
     /* reduce the size of the object properties */
     new_prop = js_realloc(ctx, p->prop, sizeof(new_prop[0]) * new_size);
     if (new_prop)
@@ -4743,7 +4743,7 @@ static __maybe_unused void JS_DumpShapes(JSRuntime *rt)
     struct list_head *el;
     JSObject *p;
     JSGCObjectHeader *gp;
-    
+
     printf("JSShapes: {\n");
     printf("%5s %4s %14s %5s %5s %s\n", "SLOT", "REFS", "PROTO", "SIZE", "COUNT", "PROPS");
     for(i = 0; i < rt->shape_hash_size; i++) {
@@ -5069,7 +5069,7 @@ static JSValue JS_NewCFunction3(JSContext *ctx, JSCFunction *func,
     JSValue func_obj;
     JSObject *p;
     JSAtom name_atom;
-    
+
     func_obj = JS_NewObjectProtoClass(ctx, proto_val, JS_CLASS_C_FUNCTION);
     if (JS_IsException(func_obj))
         return func_obj;
@@ -5426,7 +5426,7 @@ static void js_for_in_iterator_finalizer(JSRuntime *rt, JSValue val)
     JSObject *p = JS_VALUE_GET_OBJ(val);
     JSForInIterator *it = p->u.for_in_iterator;
     int i;
-    
+
     JS_FreeValueRT(rt, it->obj);
     if (!it->is_array) {
         for(i = 0; i < it->atom_count; i++) {
@@ -5537,7 +5537,7 @@ static void free_zero_refcount(JSRuntime *rt)
 {
     struct list_head *el;
     JSGCObjectHeader *p;
-    
+
     rt->gc_phase = JS_GC_PHASE_DECREF;
     for(;;) {
         el = rt->gc_zero_ref_count_list.next;
@@ -5604,7 +5604,7 @@ void __JS_FreeValueRT(JSRuntime *rt, JSValue v)
     case JS_TAG_BIG_INT:
 #ifdef CONFIG_BIGNUM
     case JS_TAG_BIG_FLOAT:
-#endif        
+#endif
         {
             JSBigFloat *bf = JS_VALUE_GET_PTR(v);
             bf_delete(&bf->num);
@@ -5792,7 +5792,7 @@ static void gc_decref(JSRuntime *rt)
 {
     struct list_head *el, *el1;
     JSGCObjectHeader *p;
-    
+
     init_list_head(&rt->tmp_obj_list);
     init_list_head(&rt->tmp_hook_obj_list);
 
@@ -5844,7 +5844,7 @@ static void gc_scan(JSRuntime *rt)
         p->mark = 0; /* reset the mark for the next GC call */
         mark_children(rt, p, gc_scan_incref_child);
     }
-    
+
     /* restore objects whose can_destroy hook returns 0 and their children. */
     do {
         /* save previous tail position of gc_obj_list */
@@ -5923,7 +5923,7 @@ static void gc_free_cycles(JSRuntime *rt)
         }
     }
     rt->gc_phase = JS_GC_PHASE_NONE;
-           
+
     list_for_each_safe(el, el1, &rt->gc_zero_ref_count_list) {
         p = list_entry(el, JSGCObjectHeader, link);
         assert(p->gc_obj_type == JS_GC_OBJ_TYPE_JS_OBJECT ||
@@ -6589,7 +6589,7 @@ static const char *get_func_name(JSContext *ctx, JSValueConst func)
     JSProperty *pr;
     JSShapeProperty *prs;
     JSValueConst val;
-    
+
     if (JS_VALUE_GET_TAG(func) != JS_TAG_OBJECT)
         return NULL;
     prs = find_own_property(&pr, JS_VALUE_GET_OBJ(func), JS_ATOM_name);
@@ -6620,7 +6620,7 @@ static void build_backtrace(JSContext *ctx, JSValueConst error_obj,
     const char *str1;
     JSObject *p;
     BOOL backtrace_barrier;
-    
+
     js_dbuf_init(ctx, &dbuf);
     if (filename) {
         dbuf_printf(&dbuf, "    at %s", filename);
@@ -7462,7 +7462,7 @@ static int JS_AddBrand(JSContext *ctx, JSValueConst obj, JSValueConst home_obj)
     JSProperty *pr;
     JSValue brand;
     JSAtom brand_atom;
-    
+
     if (unlikely(JS_VALUE_GET_TAG(home_obj) != JS_TAG_OBJECT)) {
         JS_ThrowTypeErrorNotAnObject(ctx);
         return -1;
@@ -7484,7 +7484,7 @@ static int JS_AddBrand(JSContext *ctx, JSValueConst obj, JSValueConst home_obj)
         brand = JS_DupValue(ctx, pr->u.value);
     }
     brand_atom = js_symbol_to_atom(ctx, brand);
-    
+
     if (JS_IsObject(obj)) {
         p1 = JS_VALUE_GET_OBJ(obj);
         prs = find_own_property(&pr, p1, brand_atom);
@@ -7512,7 +7512,7 @@ static int JS_CheckBrand(JSContext *ctx, JSValueConst obj, JSValueConst func)
     JSShapeProperty *prs;
     JSProperty *pr;
     JSValueConst brand;
-    
+
     /* get the home object of 'func' */
     if (unlikely(JS_VALUE_GET_TAG(func) != JS_TAG_OBJECT))
         goto not_obj;
@@ -7531,7 +7531,7 @@ static int JS_CheckBrand(JSContext *ctx, JSValueConst obj, JSValueConst func)
     /* safety check */
     if (unlikely(JS_VALUE_GET_TAG(brand) != JS_TAG_SYMBOL))
         goto not_obj;
-    
+
     /* get the brand array of 'obj' */
     if (unlikely(JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT)) {
     not_obj:
@@ -7605,7 +7605,7 @@ static int __exception JS_GetOwnPropertyNamesInternal(JSContext *ctx,
     BOOL is_enumerable, num_sorted;
     uint32_t num_key;
     JSAtomKindEnum kind;
-    
+
     /* clear pointer for consistency in case of failure */
     *ptab = NULL;
     *plen = 0;
@@ -8460,7 +8460,7 @@ static JSValue js_allocate_fast_array(JSContext *ctx, int64_t len)
 {
     JSValue arr;
     JSObject *p;
-    
+
     if (len > INT32_MAX)
         return JS_ThrowRangeError(ctx, "invalid array length");
     arr = JS_NewArray(ctx);
@@ -8566,7 +8566,7 @@ int JS_SetPropertyInternal(JSContext *ctx, JSValueConst obj,
             goto read_only_prop;
         }
     }
-    
+
     for(;;) {
         if (p1->is_exotic) {
             if (p1->fast_array) {
@@ -9517,7 +9517,7 @@ static BOOL js_object_has_name(JSContext *ctx, JSValueConst obj)
     JSShapeProperty *prs;
     JSValueConst val;
     JSString *p;
-    
+
     prs = find_own_property(&pr, JS_VALUE_GET_OBJ(obj), JS_ATOM_name);
     if (!prs)
         return FALSE;
@@ -9777,7 +9777,7 @@ static int JS_SetGlobalVar(JSContext *ctx, JSAtom prop, JSValue val,
         return 0;
     }
     flags = JS_PROP_THROW_STRICT;
-    if (is_strict_mode(ctx)) 
+    if (is_strict_mode(ctx))
         flags |= JS_PROP_NO_ADD;
     return JS_SetPropertyInternal(ctx, ctx->global_obj, prop, val, ctx->global_obj, flags);
 }
@@ -9790,7 +9790,7 @@ int JS_DeleteProperty(JSContext *ctx, JSValueConst obj, JSAtom prop, int flags)
     JSValue obj1;
     JSObject *p;
     int res;
-    
+
     obj1 = JS_ToObject(ctx, obj);
     if (JS_IsException(obj1))
         return -1;
@@ -10037,7 +10037,7 @@ static inline BOOL JS_IsHTMLDDA(JSContext *ctx, JSValueConst obj)
     p = JS_VALUE_GET_OBJ(obj);
     return p->is_HTMLDDA;
 }
-                         
+
 static int JS_ToBoolFree(JSContext *ctx, JSValue val)
 {
     uint32_t tag = JS_VALUE_GET_TAG(val);
@@ -10059,7 +10059,7 @@ static int JS_ToBoolFree(JSContext *ctx, JSValue val)
     case JS_TAG_BIG_INT:
 #ifdef CONFIG_BIGNUM
     case JS_TAG_BIG_FLOAT:
-#endif        
+#endif
         {
             JSBigFloat *p = JS_VALUE_GET_PTR(val);
             BOOL ret;
@@ -10141,12 +10141,12 @@ static double js_strtod(const char *str, int radix, BOOL is_float)
 {
     double d;
     int c;
-    
+
     if (!is_float || radix != 10) {
         const char *p = str;
         uint64_t n_max, n;
         int int_exp, is_neg;
-        
+
         is_neg = 0;
         if (*p == '-') {
             is_neg = 1;
@@ -10197,7 +10197,7 @@ static double js_strtod(const char *str, int radix, BOOL is_float)
 /* accept _ between digits as a digit separator */
 #define ATOD_ACCEPT_UNDERSCORES  (1 << 5)
 /* allow a suffix to override the type */
-#define ATOD_ACCEPT_SUFFIX    (1 << 6) 
+#define ATOD_ACCEPT_SUFFIX    (1 << 6)
 /* default type */
 #define ATOD_TYPE_MASK        (3 << 7)
 #define ATOD_TYPE_FLOAT64     (0 << 7)
@@ -10207,7 +10207,7 @@ static double js_strtod(const char *str, int radix, BOOL is_float)
 #define ATOD_TYPE_BIG_DECIMAL (3 << 7)
 /* assume bigint mode: floats are parsed as integers if no decimal
    point nor exponent */
-#define ATOD_MODE_BIGINT      (1 << 9) 
+#define ATOD_MODE_BIGINT      (1 << 9)
 #endif
 /* accept -0x1 */
 #define ATOD_ACCEPT_PREFIX_AFTER_SIGN (1 << 10)
@@ -10242,7 +10242,7 @@ static JSValue js_string_to_bigfloat(JSContext *ctx, const char *buf,
     bf_t *a;
     int ret;
     JSValue val;
-    
+
     val = JS_NewBigFloat(ctx);
     if (JS_IsException(val))
         return val;
@@ -10268,7 +10268,7 @@ static JSValue js_string_to_bigdecimal(JSContext *ctx, const char *buf,
     bfdec_t *a;
     int ret;
     JSValue val;
-    
+
     val = JS_NewBigDecimal(ctx);
     if (JS_IsException(val))
         return val;
@@ -10301,11 +10301,11 @@ static JSValue js_atof(JSContext *ctx, const char *str, const char **pp,
     int i, j, len;
     BOOL buf_allocated = FALSE;
     JSValue val;
-    
+
     /* optional separator between digits */
     sep = (flags & ATOD_ACCEPT_UNDERSCORES) ? '_' : 256;
     has_legacy_octal = FALSE;
-    
+
     p = str;
     p_start = p;
     is_neg = 0;
@@ -10358,7 +10358,7 @@ static JSValue js_atof(JSContext *ctx, const char *str, const char **pp,
             (atod_type == ATOD_TYPE_FLOAT64
 #ifdef CONFIG_BIGNUM
              || atod_type == ATOD_TYPE_BIG_FLOAT
-#endif             
+#endif
              ) &&
             strstart(p, "Infinity", &p)) {
 #ifdef CONFIG_BIGNUM
@@ -10471,7 +10471,7 @@ static JSValue js_atof(JSContext *ctx, const char *str, const char **pp,
                 if (has_legacy_octal)
                     goto fail;
             } else
-#endif                
+#endif
             {
                 if (is_float && radix != 10)
                     goto fail;
@@ -10505,11 +10505,11 @@ static JSValue js_atof(JSContext *ctx, const char *str, const char **pp,
             goto fail;
         val = ctx->rt->bigdecimal_ops.from_string(ctx, buf, radix, flags, NULL);
         break;
-#endif        
+#endif
     default:
         abort();
     }
-    
+
 done:
     if (buf_allocated)
         js_free_rt(ctx->rt, buf);
@@ -10591,7 +10591,7 @@ static JSValue JS_ToNumberHintFree(JSContext *ctx, JSValue val,
             const char *str;
             const char *p;
             size_t len;
-            
+
             str = JS_ToCStringLen(ctx, &len, val);
             JS_FreeValue(ctx, val);
             if (!str)
@@ -11146,7 +11146,7 @@ static __exception int JS_ToArrayLengthFree(JSContext *ctx, uint32_t *plen,
     case JS_TAG_BIG_INT:
 #ifdef CONFIG_BIGNUM
     case JS_TAG_BIG_FLOAT:
-#endif        
+#endif
         {
             JSBigFloat *p = JS_VALUE_GET_PTR(val);
             bf_t a;
@@ -11932,7 +11932,7 @@ static __maybe_unused void JS_DumpObject(JSRuntime *rt, JSObject *p)
         }
         printf(" }");
     }
-    
+
     if (js_class_has_bytecode(p->class_id)) {
         JSFunctionBytecode *b = p->u.func.function_bytecode;
         JSVarRef **var_refs;
@@ -12179,7 +12179,7 @@ static JSValue JS_StringToBigInt(JSContext *ctx, JSValue val)
     const char *str, *p;
     size_t len;
     int flags;
-    
+
     str = JS_ToCStringLen(ctx, &len, val);
     JS_FreeValue(ctx, val);
     if (!str)
@@ -12193,7 +12193,7 @@ static JSValue JS_StringToBigInt(JSContext *ctx, JSValue val)
 #ifdef CONFIG_BIGNUM
         if (is_math_mode(ctx))
             flags |= ATOD_MODE_BIGINT;
-#endif        
+#endif
         val = js_atof(ctx, p, &p, 0, flags);
         p += skip_spaces(p);
         if (!JS_IsException(val)) {
@@ -12267,7 +12267,7 @@ static bf_t *JS_ToBigIntFree(JSContext *ctx, bf_t *buf, JSValue val)
         bf_rint(r, BF_RNDZ);
         JS_FreeValue(ctx, val);
         break;
-#endif        
+#endif
     case JS_TAG_STRING:
         val = JS_StringToBigIntErr(ctx, val);
         if (JS_IsException(val))
@@ -12299,7 +12299,7 @@ static __maybe_unused JSValue JS_ToBigIntValueFree(JSContext *ctx, JSValue val)
     } else {
         bf_t a_s, *a, *r;
         int ret;
-        JSValue res; 
+        JSValue res;
 
         res = JS_NewBigInt(ctx);
         if (JS_IsException(res))
@@ -12379,7 +12379,7 @@ static JSValue JS_CompactBigInt1(JSContext *ctx, JSValue val,
 {
     int64_t v;
     bf_t *a;
-    
+
     if (JS_VALUE_GET_TAG(val) != JS_TAG_BIG_INT)
         return val; /* fail safe */
     a = JS_GetBigInt(val);
@@ -12471,7 +12471,7 @@ static bfdec_t *JS_ToBigDecimal(JSContext *ctx, JSValueConst val)
     uint32_t tag;
     JSBigDecimal *p;
     bfdec_t *r;
-    
+
     tag = JS_VALUE_GET_NORM_TAG(val);
     switch(tag) {
     case JS_TAG_BIG_DECIMAL:
@@ -12611,10 +12611,10 @@ static __exception int js_call_binary_op_fallback(JSContext *ctx,
     JSOverloadableOperatorEnum ovop;
     JSObject *p;
     JSValueConst args[2];
-    
+
     if (!ctx->allow_operator_overloading)
         return 0;
-    
+
     opset2_obj = JS_UNDEFINED;
     opset1_obj = JS_GetProperty(ctx, op1, JS_ATOM_Symbol_operatorSet);
     if (JS_IsException(opset1_obj))
@@ -12643,7 +12643,7 @@ static __exception int js_call_binary_op_fallback(JSContext *ctx,
     }
 
     ovop = get_ovop_from_opcode(op);
-    
+
     if (opset1->operator_counter == opset2->operator_counter) {
         p = opset1->self_ops[ovop];
     } else if (opset1->operator_counter > opset2->operator_counter) {
@@ -12668,7 +12668,7 @@ static __exception int js_call_binary_op_fallback(JSContext *ctx,
     } else {
         new_op1 = JS_DupValue(ctx, op1);
     }
-    
+
     if (opset2->is_primitive) {
         if (is_numeric) {
             new_op2 = JS_ToNumeric(ctx, op2);
@@ -12685,7 +12685,7 @@ static __exception int js_call_binary_op_fallback(JSContext *ctx,
 
     /* XXX: could apply JS_ToPrimitive() if primitive type so that the
        operator function does not get a value object */
-    
+
     method = JS_DupValue(ctx, JS_MKPTR(JS_TAG_OBJECT, p));
     if (ovop == JS_OVOP_LESS && (op == OP_lte || op == OP_gt)) {
         args[0] = new_op2;
@@ -12796,7 +12796,7 @@ static __exception int js_call_unary_op_fallback(JSContext *ctx,
 
     if (!ctx->allow_operator_overloading)
         return 0;
-    
+
     opset1_obj = JS_GetProperty(ctx, op1, JS_ATOM_Symbol_operatorSet);
     if (JS_IsException(opset1_obj))
         goto exception;
@@ -12837,7 +12837,7 @@ static int js_unary_arith_bigfloat(JSContext *ctx,
     bf_t a_s, *r, *a;
     int ret, v;
     JSValue res;
-    
+
     if (op == OP_plus && !is_math_mode(ctx)) {
         JS_ThrowTypeError(ctx, "bigfloat argument with unary +");
         JS_FreeValue(ctx, op1);
@@ -12891,7 +12891,7 @@ static int js_unary_arith_bigdecimal(JSContext *ctx,
     bfdec_t *r, *a;
     int ret, v;
     JSValue res;
-    
+
     if (op == OP_plus && !is_math_mode(ctx)) {
         JS_ThrowTypeError(ctx, "bigdecimal argument with unary +");
         JS_FreeValue(ctx, op1);
@@ -12945,7 +12945,7 @@ static int js_unary_arith_bigint(JSContext *ctx,
     bf_t a_s, *r, *a;
     int ret, v;
     JSValue res;
-    
+
     if (op == OP_plus && !is_math_mode(ctx)) {
         JS_ThrowTypeError(ctx, "bigint argument with unary +");
         JS_FreeValue(ctx, op1);
@@ -13066,7 +13066,7 @@ static no_inline __exception int js_unary_arith_slow(JSContext *ctx,
         if (ctx->rt->bigdecimal_ops.unary_arith(ctx, sp - 1, op, op1))
             goto exception;
         break;
-#endif        
+#endif
     default:
     handle_float64:
         {
@@ -13118,7 +13118,7 @@ static __exception int js_post_inc_slow(JSContext *ctx,
 static no_inline int js_not_slow(JSContext *ctx, JSValue *sp)
 {
     JSValue op1;
-    
+
     op1 = sp[-1];
 #ifdef CONFIG_BIGNUM
     if (JS_IsObject(op1)) {
@@ -13157,7 +13157,7 @@ static int js_binary_arith_bigint(JSContext *ctx, OPCodeEnum op,
     bf_t a_s, b_s, *r, *a, *b;
     int ret;
     JSValue res;
-    
+
     res = JS_NewBigInt(ctx);
     if (JS_IsException(res))
         goto fail;
@@ -13198,7 +13198,7 @@ static int js_binary_arith_bigint(JSContext *ctx, OPCodeEnum op,
         ret = bf_rem(r, a, b, BF_PREC_INF, BF_RNDZ,
                      BF_DIVREM_EUCLIDIAN) & BF_ST_INVALID_OP;
         break;
-#endif        
+#endif
     case OP_mod:
         ret = bf_rem(r, a, b, BF_PREC_INF, BF_RNDZ,
                      BF_RNDZ) & BF_ST_INVALID_OP;
@@ -13319,7 +13319,7 @@ static int js_binary_arith_bigfloat(JSContext *ctx, OPCodeEnum op,
     bf_t a_s, b_s, *r, *a, *b;
     int ret;
     JSValue res;
-    
+
     res = JS_NewBigFloat(ctx);
     if (JS_IsException(res))
         goto fail;
@@ -13423,7 +13423,7 @@ static int js_binary_arith_bigdecimal(JSContext *ctx, OPCodeEnum op,
     if (JS_IsException(res))
         goto fail;
     r = JS_GetBigDecimal(res);
-    
+
     a = JS_ToBigDecimal(ctx, op1);
     if (!a)
         goto fail;
@@ -13563,7 +13563,7 @@ static no_inline __exception int js_binary_arith_slow(JSContext *ctx, JSValue *s
                     v += v2;
             }
             break;
-#endif            
+#endif
         case OP_mod:
             if (v1 < 0 || v2 <= 0) {
                 sp[-2] = JS_NewFloat64(ctx, fmod(v1, v2));
@@ -13593,7 +13593,7 @@ static no_inline __exception int js_binary_arith_slow(JSContext *ctx, JSValue *s
         if (ctx->rt->bigfloat_ops.binary_arith(ctx, op, sp - 2, op1, op2))
             goto exception;
     } else
-#endif        
+#endif
     if (tag1 == JS_TAG_BIG_INT || tag2 == JS_TAG_BIG_INT) {
     handle_bigint:
         if (ctx->rt->bigint_ops.binary_arith(ctx, op, sp - 2, op1, op2))
@@ -13631,7 +13631,7 @@ static no_inline __exception int js_binary_arith_slow(JSContext *ctx, JSValue *s
             if (dr < 0)
                 dr += d2;
             break;
-#endif            
+#endif
         case OP_pow:
             dr = js_pow(d1, d2);
             break;
@@ -13741,7 +13741,7 @@ static no_inline __exception int js_add_slow(JSContext *ctx, JSValue *sp)
         if (ctx->rt->bigfloat_ops.binary_arith(ctx, OP_add, sp - 2, op1, op2))
             goto exception;
     } else
-#endif        
+#endif
     if (tag1 == JS_TAG_BIG_INT || tag2 == JS_TAG_BIG_INT) {
     handle_bigint:
         if (ctx->rt->bigint_ops.binary_arith(ctx, OP_add, sp - 2, op1, op2))
@@ -13868,7 +13868,7 @@ static int js_compare_bigfloat(JSContext *ctx, OPCodeEnum op,
 {
     bf_t a_s, b_s, *a, *b;
     int res;
-    
+
     a = JS_ToBigFloat(ctx, &a_s, op1);
     if (!a) {
         JS_FreeValue(ctx, op2);
@@ -13931,7 +13931,7 @@ static int js_compare_bigdecimal(JSContext *ctx, OPCodeEnum op,
     }
     a = JS_ToBigDecimal(ctx, op1); /* cannot fail */
     b = JS_ToBigDecimal(ctx, op2); /* cannot fail */
-    
+
     switch(op) {
     case OP_lt:
         res = bfdec_cmp_lt(a, b); /* if NaN return false */
@@ -13988,7 +13988,7 @@ static no_inline int js_relational_slow(JSContext *ctx, JSValue *sp,
             }
         }
     }
-#endif    
+#endif
     op1 = JS_ToPrimitiveFree(ctx, op1, HINT_NUMBER);
     if (JS_IsException(op1)) {
         JS_FreeValue(ctx, op2);
@@ -14073,7 +14073,7 @@ static no_inline int js_relational_slow(JSContext *ctx, JSValue *sp,
             if (res < 0)
                 goto exception;
         } else
-#endif            
+#endif
         if (tag1 == JS_TAG_BIG_INT || tag2 == JS_TAG_BIG_INT) {
             res = ctx->rt->bigint_ops.compare(ctx, op, op1, op2);
             if (res < 0)
@@ -14174,7 +14174,7 @@ static no_inline __exception int js_eq_slow(JSContext *ctx, JSValue *sp,
             if (res < 0)
                 goto exception;
         } else
-#endif            
+#endif
         {
             res = ctx->rt->bigint_ops.compare(ctx, OP_eq, op1, op2);
             if (res < 0)
@@ -14198,7 +14198,7 @@ static no_inline __exception int js_eq_slow(JSContext *ctx, JSValue *sp,
                 }
             }
         }
-#endif        
+#endif
         res = js_strict_eq2(ctx, op1, op2, JS_EQ_STRICT);
     } else if ((tag1 == JS_TAG_NULL && tag2 == JS_TAG_UNDEFINED) ||
                (tag2 == JS_TAG_NULL && tag1 == JS_TAG_UNDEFINED)) {
@@ -14340,7 +14340,7 @@ static JSValue js_mul_pow10_to_float64(JSContext *ctx, const bf_t *a,
     bf_t r_s, *r = &r_s;
     double d;
     int ret;
-    
+
     /* always convert to Float64 */
     bf_init(ctx->bf_ctx, r);
     ret = bf_mul_pow_radix(r, a, 10, exponent,
@@ -14713,7 +14713,7 @@ static __exception int js_operator_typeof(JSContext *ctx, JSValueConst op1)
         {
             JSObject *p;
             p = JS_VALUE_GET_OBJ(op1);
-            if (unlikely(p->is_HTMLDDA)) 
+            if (unlikely(p->is_HTMLDDA))
                 atom = JS_ATOM_undefined;
             else if (JS_IsFunction(ctx, op1))
                 atom = JS_ATOM_function;
@@ -15021,7 +15021,7 @@ static __exception int js_for_in_prepare_prototype_chain_enum(JSContext *ctx,
     JSPropertyEnum *tab_atom;
     uint32_t tab_atom_count, i;
     JSValue obj1;
-    
+
     p = JS_VALUE_GET_OBJ(enum_obj);
     it = p->u.for_in_iterator;
 
@@ -15065,7 +15065,7 @@ static __exception int js_for_in_prepare_prototype_chain_enum(JSContext *ctx,
         it->tab_atom = tab_atom;
         it->atom_count = tab_atom_count;
     }
-    
+
     for(i = 0; i < it->atom_count; i++) {
         if (JS_DefinePropertyValue(ctx, enum_obj, it->tab_atom[i].atom, JS_NULL, JS_PROP_ENUMERABLE) < 0)
             goto fail;
@@ -15481,7 +15481,7 @@ static __exception int js_append_enumerate(JSContext *ctx, JSValue *sp)
     int is_array_iterator;
     JSValue *arrp;
     uint32_t i, count32, pos;
-    
+
     if (JS_VALUE_GET_TAG(sp[-2]) != JS_TAG_INT) {
         JS_ThrowInternalError(ctx, "invalid index for append");
         return -1;
@@ -15569,7 +15569,7 @@ static __exception int JS_CopyDataProperties(JSContext *ctx,
     int ret, gpn_flags;
     JSPropertyDescriptor desc;
     BOOL is_enumerable;
-    
+
     if (JS_VALUE_GET_TAG(source) != JS_TAG_OBJECT)
         return 0;
 
@@ -15590,7 +15590,7 @@ static __exception int JS_CopyDataProperties(JSContext *ctx,
     if (JS_GetOwnPropertyNamesInternal(ctx, &tab_atom, &tab_atom_count, p,
                                        gpn_flags))
         return -1;
-    
+
     for (i = 0; i < tab_atom_count; i++) {
         if (pexcl) {
             ret = JS_GetOwnPropertyInternal(ctx, NULL, pexcl, tab_atom[i].atom);
@@ -15970,7 +15970,7 @@ static JSValue js_call_c_function(JSContext *ctx, JSValueConst func_obj,
     sf->prev_frame = prev_sf;
     rt->current_stack_frame = sf;
     ctx = p->u.cfunc.realm; /* change the current realm */
-    
+
 #ifdef CONFIG_BIGNUM
     /* we only propagate the bignum mode as some runtime functions
        test it */
@@ -16159,7 +16159,7 @@ static JSValue JS_CallInternal(JSContext *caller_ctx, JSValueConst func_obj,
 #define DEF(id, size, n_pop, n_push, f) && case_OP_ ## id,
 #if SHORT_OPCODES
 #define def(id, size, n_pop, n_push, f)
-#else                                                     
+#else
 #define def(id, size, n_pop, n_push, f) && case_default,
 #endif
 #include "quickjs-opcode.h"
@@ -16253,7 +16253,7 @@ static JSValue JS_CallInternal(JSContext *caller_ctx, JSValueConst func_obj,
     sf->prev_frame = rt->current_stack_frame;
     rt->current_stack_frame = sf;
     ctx = b->realm; /* set the current realm */
-    
+
  restart:
     for(;;) {
         int call_argc;
@@ -16710,7 +16710,7 @@ static JSValue JS_CallInternal(JSContext *caller_ctx, JSValueConst func_obj,
             JS_FreeValue(ctx, sp[-1]);
             sp -= 2;
             BREAK;
-            
+
         CASE(OP_throw):
             JS_Throw(ctx, *--sp);
             goto exception;
@@ -17533,7 +17533,7 @@ static JSValue JS_CallInternal(JSContext *caller_ctx, JSValueConst func_obj,
             {
                 JSAtom atom;
                 JSValue val;
-                
+
                 atom = get_u32(pc);
                 pc += 4;
                 val = JS_NewSymbolFromAtom(ctx, atom, JS_ATOM_TYPE_PRIVATE);
@@ -17542,7 +17542,7 @@ static JSValue JS_CallInternal(JSContext *caller_ctx, JSValueConst func_obj,
                 *sp++ = val;
             }
             BREAK;
-            
+
         CASE(OP_get_private_field):
             {
                 JSValue val;
@@ -17695,7 +17695,7 @@ static JSValue JS_CallInternal(JSContext *caller_ctx, JSValueConst func_obj,
             {
                 int class_flags;
                 JSAtom atom;
-                
+
                 atom = get_u32(pc);
                 class_flags = pc[4];
                 pc += 5;
@@ -18692,7 +18692,7 @@ static JSContext *JS_GetFunctionRealm(JSContext *ctx, JSValueConst func_obj)
 {
     JSObject *p;
     JSContext *realm;
-    
+
     if (JS_VALUE_GET_TAG(func_obj) != JS_TAG_OBJECT)
         return ctx;
     p = JS_VALUE_GET_OBJ(func_obj);
@@ -18741,7 +18741,7 @@ static JSValue js_create_from_ctor(JSContext *ctx, JSValueConst ctor,
 {
     JSValue proto, obj;
     JSContext *realm;
-    
+
     if (JS_IsUndefined(ctor)) {
         proto = JS_DupValue(ctx, ctx->class_proto[class_id]);
     } else {
@@ -18954,7 +18954,7 @@ static void __async_func_free(JSRuntime *rt, JSAsyncFunctionState *s)
     if (!s->is_completed) {
         async_func_free_frame(rt, s);
     }
-    
+
     JS_FreeValueRT(rt, s->resolving_funcs[0]);
     JS_FreeValueRT(rt, s->resolving_funcs[1]);
 
@@ -19235,7 +19235,7 @@ static void js_async_function_resume(JSContext *ctx, JSAsyncFunctionState *s)
             JS_FreeValue(ctx, promise);
             goto fail;
         }
-        
+
         /* Note: no need to create 'thrownawayCapability' as in
            the spec */
         for(i = 0; i < 2; i++)
@@ -19295,7 +19295,7 @@ static JSValue js_async_function_call(JSContext *ctx, JSValueConst func_obj,
     }
 
     js_async_function_resume(ctx, s);
-    
+
     async_func_free(ctx->rt, s);
 
     return promise;
@@ -19326,7 +19326,7 @@ typedef struct JSAsyncGeneratorData {
     JSObject *generator; /* back pointer to the object (const) */
     JSAsyncGeneratorStateEnum state;
     /* func_state is NULL is state AWAITING_RETURN and COMPLETED */
-    JSAsyncFunctionState *func_state; 
+    JSAsyncFunctionState *func_state;
     struct list_head queue; /* list of JSAsyncGeneratorRequest.link */
 } JSAsyncGeneratorData;
 
@@ -19970,7 +19970,7 @@ typedef struct JSFunctionDef {
     int var_object_idx; /* -1 if none */
     int arg_var_object_idx; /* -1 if none (var object for the argument scope) */
     int arguments_var_idx; /* -1 if none */
-    int arguments_arg_idx; /* argument variable definition in argument scope, 
+    int arguments_arg_idx; /* argument variable definition in argument scope,
                               -1 if none */
     int func_var_idx; /* variable containing the current function (-1
                          if none, only used if is_func_expr is true) */
@@ -19980,7 +19980,7 @@ typedef struct JSFunctionDef {
     int this_active_func_var_idx; /* variable containg the 'this.active_func' value, -1 if none */
     int home_object_var_idx;
     BOOL need_home_object;
-    
+
     int scope_level;    /* index into fd->scopes if the current lexical scope */
     int scope_first;    /* index into vd->vars of first lexically scoped variable */
     int scope_size;     /* allocated size of fd->scopes array */
@@ -19997,7 +19997,7 @@ typedef struct JSFunctionDef {
     int last_opcode_pos; /* -1 if no last opcode */
     int last_opcode_line_num;
     BOOL use_short_opcodes; /* true if short opcodes are used in byte_code */
-    
+
     LabelSlot *label_slots;
     int label_size; /* allocated size for label_slots[] */
     int label_count;
@@ -20211,7 +20211,7 @@ int __attribute__((format(printf, 2, 3))) js_parse_error(JSParseState *s, const
     JSContext *ctx = s->ctx;
     va_list ap;
     int backtrace_flags;
-    
+
     va_start(ap, fmt);
     JS_ThrowError2(ctx, JS_SYNTAX_ERROR, fmt, ap, FALSE);
     va_end(ap);
@@ -20561,7 +20561,7 @@ static __exception int ident_realloc(JSContext *ctx, char **pbuf, size_t *psize,
 {
     char *buf, *new_buf;
     size_t size, new_size;
-    
+
     buf = *pbuf;
     size = *psize;
     if (size >= (SIZE_MAX / 3) * 2)
@@ -20633,7 +20633,7 @@ static JSAtom parse_ident(JSParseState *s, const uint8_t **pp,
     char ident_buf[128], *buf;
     size_t ident_size, ident_pos;
     JSAtom atom;
-    
+
     p = *pp;
     buf = ident_buf;
     ident_size = sizeof(ident_buf);
@@ -20642,7 +20642,7 @@ static JSAtom parse_ident(JSParseState *s, const uint8_t **pp,
         buf[ident_pos++] = '#';
     for(;;) {
         p1 = p;
-        
+
         if (c < 128) {
             buf[ident_pos++] = c;
         } else {
@@ -20680,11 +20680,11 @@ static __exception int next_token(JSParseState *s)
     int c;
     BOOL ident_has_escape;
     JSAtom atom;
-    
+
     if (js_check_stack_overflow(s->ctx->rt, 0)) {
         return js_parse_error(s, "stack overflow");
     }
-    
+
     free_token(s, &s->token);
 
     p = s->last_ptr = s->buf_ptr;
@@ -20811,14 +20811,14 @@ static __exception int next_token(JSParseState *s)
     case 'm': case 'n': case 'o': case 'p':
     case 'q': case 'r': case 's': case 't':
     case 'u': case 'v': case 'w': case 'x':
-    case 'y': case 'z': 
+    case 'y': case 'z':
     case 'A': case 'B': case 'C': case 'D':
     case 'E': case 'F': case 'G': case 'H':
     case 'I': case 'J': case 'K': case 'L':
     case 'M': case 'N': case 'O': case 'P':
     case 'Q': case 'R': case 'S': case 'T':
     case 'U': case 'V': case 'W': case 'X':
-    case 'Y': case 'Z': 
+    case 'Y': case 'Z':
     case '_':
     case '$':
         /* identifier */
@@ -20880,7 +20880,7 @@ static __exception int next_token(JSParseState *s)
         goto parse_number;
     case '1': case '2': case '3': case '4':
     case '5': case '6': case '7': case '8':
-    case '9': 
+    case '9':
         /* number */
     parse_number:
         {
@@ -21138,7 +21138,7 @@ static __exception int next_token(JSParseState *s)
             case CP_LS:
                 /* XXX: should avoid incrementing line_number, but
                    needed to handle HTML comments */
-                goto line_terminator; 
+                goto line_terminator;
             default:
                 if (lre_is_space(c)) {
                     goto redo;
@@ -21173,7 +21173,7 @@ static JSAtom json_parse_ident(JSParseState *s, const uint8_t **pp, int c)
     char ident_buf[128], *buf;
     size_t ident_size, ident_pos;
     JSAtom atom;
-    
+
     p = *pp;
     buf = ident_buf;
     ident_size = sizeof(ident_buf);
@@ -21205,11 +21205,11 @@ static __exception int json_next_token(JSParseState *s)
     const uint8_t *p;
     int c;
     JSAtom atom;
-    
+
     if (js_check_stack_overflow(s->ctx->rt, 0)) {
         return js_parse_error(s, "stack overflow");
     }
-    
+
     free_token(s, &s->token);
 
     p = s->last_ptr = s->buf_ptr;
@@ -21319,14 +21319,14 @@ static __exception int json_next_token(JSParseState *s)
     case 'm': case 'n': case 'o': case 'p':
     case 'q': case 'r': case 's': case 't':
     case 'u': case 'v': case 'w': case 'x':
-    case 'y': case 'z': 
+    case 'y': case 'z':
     case 'A': case 'B': case 'C': case 'D':
     case 'E': case 'F': case 'G': case 'H':
     case 'I': case 'J': case 'K': case 'L':
     case 'M': case 'N': case 'O': case 'P':
     case 'Q': case 'R': case 'S': case 'T':
     case 'U': case 'V': case 'W': case 'X':
-    case 'Y': case 'Z': 
+    case 'Y': case 'Z':
     case '_':
     case '$':
         /* identifier : only pure ascii characters are accepted */
@@ -21353,7 +21353,7 @@ static __exception int json_next_token(JSParseState *s)
         goto parse_number;
     case '1': case '2': case '3': case '4':
     case '5': case '6': case '7': case '8':
-    case '9': 
+    case '9':
         /* number */
     parse_number:
         {
@@ -21401,7 +21401,7 @@ static int simple_next_token(const uint8_t **pp, BOOL no_line_terminator)
 {
     const uint8_t *p;
     uint32_t c;
-    
+
     /* skip spaces and comments */
     p = *pp;
     for (;;) {
@@ -21667,7 +21667,7 @@ static int emit_goto(JSParseState *s, int opcode, int label)
 static int cpool_add(JSParseState *s, JSValue val)
 {
     JSFunctionDef *fd = s->cur_func;
-    
+
     if (js_resize_array(s->ctx, (void *)&fd->cpool, sizeof(fd->cpool[0]),
                         &fd->cpool_size, fd->cpool_count + 1))
         return -1;
@@ -22053,7 +22053,7 @@ static int define_var(JSParseState *s, JSFunctionDef *fd, JSAtom name,
         if (find_var_in_child_scope(ctx, fd, name, fd->scope_level) >= 0) {
             return js_parse_error(s, "invalid redefinition of a variable");
         }
-        
+
         if (fd->is_global_var) {
             JSGlobalVar *hf;
             hf = find_global_var(fd, name);
@@ -22062,7 +22062,7 @@ static int define_var(JSParseState *s, JSFunctionDef *fd, JSAtom name,
                 return js_parse_error(s, "invalid redefinition of global identifier");
             }
         }
-        
+
         if (fd->is_eval &&
             (fd->eval_type == JS_EVAL_TYPE_GLOBAL ||
              fd->eval_type == JS_EVAL_TYPE_MODULE) &&
@@ -22334,7 +22334,7 @@ static int __exception js_parse_property_name(JSParseState *s,
     BOOL is_non_reserved_ident;
     JSAtom name;
     int prop_type;
-    
+
     prop_type = PROP_TYPE_IDENT;
     if (allow_method) {
         if (token_is_pseudo_keyword(s, JS_ATOM_get)
@@ -22560,7 +22560,7 @@ static int js_parse_skip_parens_token(JSParseState *s, int *pbits, BOOL no_line_
                 if (level >= sizeof(state))
                     goto done;
                 state[level++] = '`';
-            } 
+            }
             break;
         case TOK_EOF:
             goto done;
@@ -22577,7 +22577,7 @@ static int js_parse_skip_parens_token(JSParseState *s, int *pbits, BOOL no_line_
         case '=':
             bits |= SKIP_HAS_ASSIGNMENT;
             break;
-            
+
         case TOK_DIV_ASSIGN:
             tok_len = 2;
             goto parse_regexp;
@@ -22787,13 +22787,13 @@ static __exception int js_parse_object_literal(JSParseState *s)
 }
 
 /* allow the 'in' binary operator */
-#define PF_IN_ACCEPTED  (1 << 0) 
+#define PF_IN_ACCEPTED  (1 << 0)
 /* allow function calls parsing in js_parse_postfix_expr() */
-#define PF_POSTFIX_CALL (1 << 1) 
+#define PF_POSTFIX_CALL (1 << 1)
 /* allow the exponentiation operator in js_parse_unary() */
-#define PF_POW_ALLOWED  (1 << 2) 
+#define PF_POW_ALLOWED  (1 << 2)
 /* forbid the exponentiation operator in js_parse_unary() */
-#define PF_POW_FORBIDDEN (1 << 3) 
+#define PF_POW_FORBIDDEN (1 << 3)
 
 static __exception int js_parse_postfix_expr(JSParseState *s, int parse_flags);
 
@@ -22812,7 +22812,7 @@ static __exception int js_parse_class_default_ctor(JSParseState *s,
     int ret, line_num;
     JSParseFunctionEnum func_type;
     const uint8_t *saved_buf_end;
-    
+
     js_parse_get_pos(s, &pos);
     if (has_super) {
         /* spec change: no argument evaluation */
@@ -22859,7 +22859,7 @@ static int find_private_class_field(JSContext *ctx, JSFunctionDef *fd,
 static void emit_class_field_init(JSParseState *s)
 {
     int label_next;
-    
+
     emit_op(s, OP_scope_get_var);
     emit_atom(s, JS_ATOM_class_fields_init);
     emit_u16(s, s->cur_func->scope_level);
@@ -22867,13 +22867,13 @@ static void emit_class_field_init(JSParseState *s)
     /* no need to call the class field initializer if not defined */
     emit_op(s, OP_dup);
     label_next = emit_goto(s, OP_if_false, -1);
-    
+
     emit_op(s, OP_scope_get_var);
     emit_atom(s, JS_ATOM_this);
     emit_u16(s, 0);
-    
+
     emit_op(s, OP_swap);
-    
+
     emit_op(s, OP_call_method);
     emit_u16(s, 0);
 
@@ -22899,13 +22899,13 @@ static __exception int emit_class_init_start(JSParseState *s,
                                              ClassFieldsDef *cf)
 {
     int label_add_brand;
-    
+
     cf->fields_init_fd = js_parse_function_class_fields_init(s);
     if (!cf->fields_init_fd)
         return -1;
 
     s->cur_func = cf->fields_init_fd;
-    
+
     if (!cf->is_static) {
         /* add the brand to the newly created instance */
         /* XXX: would be better to add the code only if needed, maybe in a
@@ -22913,17 +22913,17 @@ static __exception int emit_class_init_start(JSParseState *s,
         emit_op(s, OP_push_false); /* will be patched later */
         cf->brand_push_pos = cf->fields_init_fd->last_opcode_pos;
         label_add_brand = emit_goto(s, OP_if_false, -1);
-        
+
         emit_op(s, OP_scope_get_var);
         emit_atom(s, JS_ATOM_this);
         emit_u16(s, 0);
-        
+
         emit_op(s, OP_scope_get_var);
         emit_atom(s, JS_ATOM_home_object);
         emit_u16(s, 0);
-        
+
         emit_op(s, OP_add_brand);
-        
+
         emit_label(s, label_add_brand);
     }
     s->cur_func = s->cur_func->parent;
@@ -22937,7 +22937,7 @@ static void emit_class_init_end(JSParseState *s, ClassFieldsDef *cf)
     s->cur_func = cf->fields_init_fd;
     emit_op(s, OP_return_undef);
     s->cur_func = s->cur_func->parent;
-    
+
     cpool_idx = cpool_add(s, JS_NULL);
     cf->fields_init_fd->parent_cpool_idx = cpool_idx;
     emit_op(s, OP_fclosure);
@@ -23023,7 +23023,7 @@ static __exception int js_parse_class(JSParseState *s, BOOL is_class_expr,
     } else {
         class_name1 = class_name;
     }
-    
+
     emit_op(s, OP_define_class);
     emit_atom(s, class_name1);
     emit_u8(s, class_flags);
@@ -23036,7 +23036,7 @@ static __exception int js_parse_class(JSParseState *s, BOOL is_class_expr,
         cf->need_brand = FALSE;
         cf->is_static = i;
     }
-    
+
     ctor_fd = NULL;
     while (s->token.val != '}') {
         if (s->token.val == ';') {
@@ -23101,7 +23101,7 @@ static __exception int js_parse_class(JSParseState *s, BOOL is_class_expr,
         }
         is_private = prop_type & PROP_TYPE_PRIVATE;
         prop_type &= ~PROP_TYPE_PRIVATE;
-        
+
         if ((name == JS_ATOM_constructor && !is_static &&
              prop_type != PROP_TYPE_IDENT) ||
             (name == JS_ATOM_prototype && is_static) ||
@@ -23149,7 +23149,7 @@ static __exception int js_parse_class(JSParseState *s, BOOL is_class_expr,
                 if (is_set) {
                     JSAtom setter_name;
                     int ret;
-                    
+
                     setter_name = get_private_setter_name(ctx, name);
                     if (setter_name == JS_ATOM_NULL)
                         goto fail;
@@ -23175,7 +23175,7 @@ static __exception int js_parse_class(JSParseState *s, BOOL is_class_expr,
         } else if (prop_type == PROP_TYPE_IDENT && s->token.val != '(') {
             ClassFieldsDef *cf = &class_fields[is_static];
             JSAtom field_var_name = JS_ATOM_NULL;
-            
+
             /* class field */
 
             /* XXX: spec: not consistent with method name checks */
@@ -23183,7 +23183,7 @@ static __exception int js_parse_class(JSParseState *s, BOOL is_class_expr,
                 js_parse_error(s, "invalid field name");
                 goto fail;
             }
-            
+
             if (is_private) {
                 if (find_private_class_field(ctx, fd, name,
                                              fd->scope_level) >= 0) {
@@ -23233,7 +23233,7 @@ static __exception int js_parse_class(JSParseState *s, BOOL is_class_expr,
                 emit_atom(s, name);
                 emit_u16(s, s->cur_func->scope_level);
             }
-            
+
             if (s->token.val == '=') {
                 if (next_token(s))
                     goto fail;
@@ -23260,7 +23260,7 @@ static __exception int js_parse_class(JSParseState *s, BOOL is_class_expr,
         } else {
             JSParseFunctionEnum func_type;
             JSFunctionKindEnum func_kind;
-            
+
             func_type = JS_PARSE_FUNC_METHOD;
             func_kind = JS_FUNC_NORMAL;
             if (prop_type == PROP_TYPE_STAR) {
@@ -23356,7 +23356,7 @@ static __exception int js_parse_class(JSParseState *s, BOOL is_class_expr,
             emit_op(s, OP_null);
             emit_op(s, OP_swap);
             emit_op(s, OP_add_brand);
-            
+
             /* define the brand field in 'this' of the initializer */
             if (!cf->fields_init_fd) {
                 if (emit_class_init_start(s, cf))
@@ -23366,7 +23366,7 @@ static __exception int js_parse_class(JSParseState *s, BOOL is_class_expr,
                OP_add_brand_instance code */
             cf->fields_init_fd->byte_code.buf[cf->brand_push_pos] = OP_push_true;
         }
-        
+
         /* store the function to initialize the fields to that it can be
            referenced by the constructor */
         var_idx = define_var(s, fd, JS_ATOM_class_fields_init,
@@ -23412,7 +23412,7 @@ static __exception int js_parse_class(JSParseState *s, BOOL is_class_expr,
         emit_u16(s, 0);
         emit_op(s, OP_drop);
     }
-    
+
     pop_scope(s);
     pop_scope(s);
 
@@ -23807,7 +23807,7 @@ static void put_lvalue(JSParseState *s, int opcode, int scope,
     default:
         break;
     }
-    
+
     switch(opcode) {
     case OP_scope_get_var:  /* val -- */
         assert(special == PUT_LVALUE_NOKEEP ||
@@ -23861,7 +23861,7 @@ static __exception int js_define_var(JSParseState *s, JSAtom name, int tok)
 {
     JSFunctionDef *fd = s->cur_func;
     JSVarDefEnum var_def_type;
-    
+
     if (name == JS_ATOM_yield && fd->func_kind == JS_FUNC_GENERATOR) {
         return js_parse_error(s, "yield is a reserved identifier");
     }
@@ -23972,7 +23972,7 @@ static int js_parse_destructuring_element(JSParseState *s, int tok, int is_arg,
     JSAtom prop_name, var_name;
     int opcode, scope, tok1, skip_bits;
     BOOL has_initializer;
-    
+
     if (has_ellipsis < 0) {
         /* pre-parse destructuration target for spread detection */
         js_parse_skip_parens_token(s, &skip_bits, FALSE);
@@ -24411,7 +24411,7 @@ static __exception int js_parse_postfix_expr(JSParseState *s, int parse_flags)
     FuncCallType call_type;
     int optional_chaining_label;
     BOOL accept_lparen = (parse_flags & PF_POSTFIX_CALL) != 0;
-    
+
     call_type = FUNC_CALL_NORMAL;
     switch(s->token.val) {
     case TOK_NUMBER:
@@ -24467,7 +24467,7 @@ static __exception int js_parse_postfix_expr(JSParseState *s, int parse_flags)
         if (next_token(s))
             return -1;
         break;
-        
+
     case TOK_DIV_ASSIGN:
         s->buf_ptr -= 2;
         goto parse_regexp;
@@ -24688,7 +24688,7 @@ static __exception int js_parse_postfix_expr(JSParseState *s, int parse_flags)
     for(;;) {
         JSFunctionDef *fd = s->cur_func;
         BOOL has_optional_chain = FALSE;
-        
+
         if (s->token.val == TOK_QUESTION_MARK_DOT) {
             /* optional chaining */
             if (next_token(s))
@@ -25270,7 +25270,7 @@ static __exception int js_parse_unary(JSParseState *s, int parse_flags)
             put_lvalue(s, opcode, scope, name, label, PUT_LVALUE_KEEP_SECOND,
                        FALSE);
             if (next_token(s))
-                return -1;        
+                return -1;
         }
         break;
     }
@@ -25529,7 +25529,7 @@ static __exception int js_parse_logical_and_or(JSParseState *s, int op,
 static __exception int js_parse_coalesce_expr(JSParseState *s, int parse_flags)
 {
     int label1;
-    
+
     if (js_parse_logical_and_or(s, TOK_LOR, parse_flags))
         return -1;
     if (s->token.val == TOK_DOUBLE_QUESTION_MARK) {
@@ -25537,12 +25537,12 @@ static __exception int js_parse_coalesce_expr(JSParseState *s, int parse_flags)
         for(;;) {
             if (next_token(s))
                 return -1;
-            
+
             emit_op(s, OP_dup);
             emit_op(s, OP_is_undefined_or_null);
             emit_goto(s, OP_if_false, label1);
             emit_op(s, OP_drop);
-            
+
             if (js_parse_expr_binary(s, 8, parse_flags))
                 return -1;
             if (s->token.val != TOK_DOUBLE_QUESTION_MARK)
@@ -25593,7 +25593,7 @@ static __exception int js_parse_assign_expr2(JSParseState *s, int parse_flags)
 
     if (s->token.val == TOK_YIELD) {
         BOOL is_star = FALSE, is_async;
-        
+
         if (!(s->cur_func->func_kind & JS_FUNC_GENERATOR))
             return js_parse_error(s, "unexpected 'yield' keyword");
         if (!s->cur_func->in_function_body)
@@ -25631,9 +25631,9 @@ static __exception int js_parse_assign_expr2(JSParseState *s, int parse_flags)
                undefined) */
             emit_op(s, OP_drop);
             emit_op(s, OP_undefined);
-            
+
             emit_op(s, OP_undefined); /* initial value */
-            
+
             emit_label(s, label_loop);
             emit_op(s, OP_iterator_next);
             if (is_async)
@@ -25656,13 +25656,13 @@ static __exception int js_parse_assign_expr2(JSParseState *s, int parse_flags)
             label_return = emit_goto(s, OP_if_true, -1);
             emit_op(s, OP_drop);
             emit_goto(s, OP_goto, label_loop);
-            
+
             emit_label(s, label_return);
             emit_op(s, OP_push_i32);
             emit_u32(s, 2);
             emit_op(s, OP_strict_eq);
             label_throw = emit_goto(s, OP_if_true, -1);
-            
+
             /* return handling */
             if (is_async)
                 emit_op(s, OP_await);
@@ -25678,13 +25678,13 @@ static __exception int js_parse_assign_expr2(JSParseState *s, int parse_flags)
 
             emit_op(s, OP_get_field);
             emit_atom(s, JS_ATOM_value);
-            
+
             emit_label(s, label_return1);
             emit_op(s, OP_nip);
             emit_op(s, OP_nip);
             emit_op(s, OP_nip);
             emit_return(s, TRUE);
-            
+
             /* throw handling */
             emit_label(s, label_throw);
             emit_op(s, OP_iterator_call);
@@ -25709,7 +25709,7 @@ static __exception int js_parse_assign_expr2(JSParseState *s, int parse_flags)
             emit_op(s, OP_throw_error);
             emit_atom(s, JS_ATOM_NULL);
             emit_u8(s, JS_THROW_ERROR_ITERATOR_THROW);
-            
+
             emit_label(s, label_next);
             emit_op(s, OP_get_field);
             emit_atom(s, JS_ATOM_value);
@@ -25719,7 +25719,7 @@ static __exception int js_parse_assign_expr2(JSParseState *s, int parse_flags)
             emit_op(s, OP_nip);
         } else {
             int label_next;
-            
+
             if (is_async)
                 emit_op(s, OP_await);
             emit_op(s, OP_yield);
@@ -25728,7 +25728,7 @@ static __exception int js_parse_assign_expr2(JSParseState *s, int parse_flags)
             emit_label(s, label_next);
         }
         return 0;
-    } else if (s->token.val == '(' && 
+    } else if (s->token.val == '(' &&
                js_parse_skip_parens_token(s, NULL, TRUE) == TOK_ARROW) {
         return js_parse_function_decl(s, JS_PARSE_FUNC_ARROW,
                                       JS_FUNC_NORMAL, JS_ATOM_NULL,
@@ -25812,7 +25812,7 @@ static __exception int js_parse_assign_expr2(JSParseState *s, int parse_flags)
         put_lvalue(s, opcode, scope, name, label, PUT_LVALUE_KEEP_TOP, FALSE);
     } else if (op >= TOK_LAND_ASSIGN && op <= TOK_DOUBLE_QUESTION_MARK_ASSIGN) {
         int label, label1, depth_lvalue, label2;
-        
+
         if (next_token(s))
             return -1;
         if (get_lvalue(s, &opcode, &scope, &name, &label,
@@ -25825,7 +25825,7 @@ static __exception int js_parse_assign_expr2(JSParseState *s, int parse_flags)
         label1 = emit_goto(s, op == TOK_LOR_ASSIGN ? OP_if_true : OP_if_false,
                            -1);
         emit_op(s, OP_drop);
-        
+
         if (js_parse_assign_expr2(s, parse_flags)) {
             JS_FreeAtom(s->ctx, name);
             return -1;
@@ -25834,7 +25834,7 @@ static __exception int js_parse_assign_expr2(JSParseState *s, int parse_flags)
         if (opcode == OP_get_ref_value && name == name0) {
             set_object_name(s, name);
         }
-        
+
         switch(depth_lvalue) {
         case 1:
             emit_op(s, OP_insert2);
@@ -25854,7 +25854,7 @@ static __exception int js_parse_assign_expr2(JSParseState *s, int parse_flags)
         put_lvalue(s, opcode, scope, name, label, PUT_LVALUE_NOKEEP_DEPTH,
                    FALSE);
         label2 = emit_goto(s, OP_goto, -1);
-        
+
         emit_label(s, label1);
 
         /* remove the lvalue stack entries */
@@ -25990,7 +25990,7 @@ static void emit_return(JSParseState *s, BOOL hasval)
             emit_op(s, OP_await);
         }
     }
-    
+
     top = s->cur_func->top_break;
     while (top != NULL) {
         if (top->has_iterator || top->label_finally != -1) {
@@ -27075,7 +27075,7 @@ static __exception int js_parse_statement_or_decl(JSParseState *s,
             emit_label(s, label_finally);
             if (s->token.val == TOK_FINALLY) {
                 int saved_eval_ret_idx = 0; /* avoid warning */
-                
+
                 if (next_token(s))
                     goto fail;
                 /* on the stack: ret_value gosub_ret_value */
@@ -27095,7 +27095,7 @@ static __exception int js_parse_statement_or_decl(JSParseState *s,
                     emit_u16(s, saved_eval_ret_idx);
                     set_eval_ret_undefined(s);
                 }
-                
+
                 if (js_parse_block(s))
                     goto fail;
 
@@ -27200,7 +27200,7 @@ static __exception int js_parse_statement_or_decl(JSParseState *s,
         if (js_parse_expect_semi(s))
             goto fail;
         break;
-        
+
     case TOK_ENUM:
     case TOK_EXPORT:
     case TOK_EXTENDS:
@@ -27527,7 +27527,7 @@ static JSModuleDef *js_find_loaded_module(JSContext *ctx, JSAtom name)
 {
     struct list_head *el;
     JSModuleDef *m;
-    
+
     /* first look at the loaded modules */
     list_for_each(el, &ctx->loaded_modules) {
         m = list_entry(el, JSModuleDef, link);
@@ -27592,7 +27592,7 @@ static JSModuleDef *js_host_resolve_imported_module_atom(JSContext *ctx,
 {
     const char *base_cname, *cname;
     JSModuleDef *m;
-    
+
     base_cname = JS_AtomToCString(ctx, base_module_name);
     if (!base_cname)
         return NULL;
@@ -28128,7 +28128,7 @@ static int js_create_module_function(JSContext *ctx, JSModuleDef *m)
     BOOL is_c_module;
     int i;
     JSVarRef *var_ref;
-    
+
     if (m->func_created)
         return 0;
 
@@ -28152,7 +28152,7 @@ static int js_create_module_function(JSContext *ctx, JSModuleDef *m)
     m->func_created = TRUE;
 
     /* do it on the dependencies */
-    
+
     for(i = 0; i < m->req_module_entries_count; i++) {
         JSReqModuleEntry *rme = &m->req_module_entries[i];
         if (js_create_module_function(ctx, rme->module) < 0)
@@ -28160,9 +28160,9 @@ static int js_create_module_function(JSContext *ctx, JSModuleDef *m)
     }
 
     return 0;
-}    
+}
+
 
-    
 /* Prepare a module to be executed by resolving all the imported
    variables. */
 static int js_inner_module_linking(JSContext *ctx, JSModuleDef *m,
@@ -28175,12 +28175,12 @@ static int js_inner_module_linking(JSContext *ctx, JSModuleDef *m,
     JSObject *p;
     BOOL is_c_module;
     JSValue ret_val;
-    
+
     if (js_check_stack_overflow(ctx->rt, 0)) {
         JS_ThrowStackOverflow(ctx);
         return -1;
     }
-    
+
 #ifdef DUMP_MODULE_RESOLVE
     {
         char buf1[ATOM_GET_STR_BUF_SIZE];
@@ -28455,7 +28455,7 @@ static JSValue js_import_meta(JSContext *ctx)
 {
     JSAtom filename;
     JSModuleDef *m;
-    
+
     filename = JS_GetScriptOrModuleName(ctx, 0);
     if (filename == JS_ATOM_NULL)
         goto fail;
@@ -28483,7 +28483,7 @@ static JSValue js_load_module_rejected(JSContext *ctx, JSValueConst this_val,
     JSValueConst *resolving_funcs = (JSValueConst *)func_data;
     JSValueConst error;
     JSValue ret;
-    
+
     /* XXX: check if the test is necessary */
     if (argc >= 1)
         error = argv[0];
@@ -28501,7 +28501,7 @@ static JSValue js_load_module_fulfilled(JSContext *ctx, JSValueConst this_val,
     JSValueConst *resolving_funcs = (JSValueConst *)func_data;
     JSModuleDef *m = JS_VALUE_GET_PTR(func_data[2]);
     JSValue ret, ns;
-    
+
     /* return the module namespace */
     ns = JS_GetModuleNamespace(ctx, m);
     if (JS_IsException(ns)) {
@@ -28524,11 +28524,11 @@ static void JS_LoadModuleInternal(JSContext *ctx, const char *basename,
     JSModuleDef *m;
     JSValue ret, err, func_obj, evaluate_resolving_funcs[2];
     JSValueConst func_data[3];
-    
+
     m = js_host_resolve_imported_module(ctx, basename, filename);
     if (!m)
         goto fail;
-    
+
     if (js_resolve_module(ctx, m) < 0) {
         js_free_modules(ctx, JS_FREE_MODULE_NOT_RESOLVED);
         goto fail;
@@ -28567,7 +28567,7 @@ JSValue JS_LoadModule(JSContext *ctx, const char *basename,
                       const char *filename)
 {
     JSValue promise, resolving_funcs[2];
-    
+
     promise = JS_NewPromiseCapability(ctx, resolving_funcs);
     if (JS_IsException(promise))
         return JS_EXCEPTION;
@@ -28598,7 +28598,7 @@ static JSValue js_dynamic_import_job(JSContext *ctx,
     filename = JS_ToCString(ctx, specifier);
     if (!filename)
         goto exception;
-                     
+
     JS_LoadModuleInternal(ctx, basename, filename,
                           resolving_funcs);
     JS_FreeCString(ctx, filename);
@@ -28628,7 +28628,7 @@ static JSValue js_dynamic_import(JSContext *ctx, JSValueConst specifier)
     JS_FreeAtom(ctx, basename);
     if (JS_IsException(basename_val))
         return basename_val;
-    
+
     promise = JS_NewPromiseCapability(ctx, resolving_funcs);
     if (JS_IsException(promise)) {
         JS_FreeValue(ctx, basename_val);
@@ -28639,7 +28639,7 @@ static JSValue js_dynamic_import(JSContext *ctx, JSValueConst specifier)
     args[1] = resolving_funcs[1];
     args[2] = basename_val;
     args[3] = specifier;
-    
+
     /* cannot run JS_LoadModuleInternal synchronously because it would
        cause an unexpected recursion in js_evaluate_module() */
     JS_EnqueueJob(ctx, js_dynamic_import_job, 4, args);
@@ -28731,7 +28731,7 @@ static JSValue js_async_module_execution_rejected(JSContext *ctx, JSValueConst t
     JSModuleDef *module = JS_VALUE_GET_PTR(func_data[0]);
     JSValueConst error = argv[0];
     int i;
-    
+
     if (js_check_stack_overflow(ctx->rt, 0))
         return JS_ThrowStackOverflow(ctx);
 
@@ -28772,7 +28772,7 @@ static JSValue js_async_module_execution_fulfilled(JSContext *ctx, JSValueConst
     JSModuleDef *module = JS_VALUE_GET_PTR(func_data[0]);
     ExecModuleList exec_list_s, *exec_list = &exec_list_s;
     int i;
-    
+
     if (module->status == JS_MODULE_STATUS_EVALUATED) {
         assert(module->eval_has_exception);
         return JS_UNDEFINED;
@@ -28795,7 +28795,7 @@ static JSValue js_async_module_execution_fulfilled(JSContext *ctx, JSValueConst
     /* sort by increasing async_evaluation timestamp */
     rqsort(exec_list->tab, exec_list->count, sizeof(exec_list->tab[0]),
            exec_module_list_cmp, NULL);
-    
+
     for(i = 0; i < exec_list->count; i++) {
         JSModuleDef *m = exec_list->tab[i];
         if (m->status == JS_MODULE_STATUS_EVALUATED) {
@@ -28887,7 +28887,7 @@ static int js_inner_module_evaluation(JSContext *ctx, JSModuleDef *m,
         *pvalue = JS_GetException(ctx);
         return -1;
     }
-    
+
 #ifdef DUMP_MODULE_RESOLVE
     {
         char buf1[ATOM_GET_STR_BUF_SIZE];
@@ -28919,12 +28919,12 @@ static int js_inner_module_evaluation(JSContext *ctx, JSModuleDef *m,
     /* push 'm' on stack */
     m->stack_prev = *pstack_top;
     *pstack_top = m;
-    
+
     for(i = 0; i < m->req_module_entries_count; i++) {
         JSReqModuleEntry *rme = &m->req_module_entries[i];
         m1 = rme->module;
         index = js_inner_module_evaluation(ctx, m1, index, pstack_top, pvalue);
-        if (index < 0) 
+        if (index < 0)
             return -1;
         assert(m1->status == JS_MODULE_STATUS_EVALUATING ||
                m1->status == JS_MODULE_STATUS_EVALUATING_ASYNC ||
@@ -29388,7 +29388,7 @@ static __exception int js_parse_source_element(JSParseState *s)
 {
     JSFunctionDef *fd = s->cur_func;
     int tok;
-    
+
     if (s->token.val == TOK_FUNCTION ||
         (token_is_pseudo_keyword(s, JS_ATOM_async) &&
          peek_token(s, TRUE) == TOK_FUNCTION)) {
@@ -29480,7 +29480,7 @@ static void free_bytecode_atoms(JSRuntime *rt,
     int pos, len, op;
     JSAtom atom;
     const JSOpCode *oi;
-    
+
     pos = 0;
     while (pos < bc_len) {
         op = bc_buf[pos];
@@ -29488,7 +29488,7 @@ static void free_bytecode_atoms(JSRuntime *rt,
             oi = &short_opcode_info(op);
         else
             oi = &opcode_info[op];
-            
+
         len = oi->size;
         switch(oi->fmt) {
         case OP_FMT_atom:
@@ -30271,7 +30271,7 @@ static void var_object_test(JSContext *ctx, JSFunctionDef *s,
     update_label(s, *plabel_done, 1);
     s->jump_size++;
 }
-    
+
 /* return the position of the next opcode */
 static int resolve_scope_var(JSContext *ctx, JSFunctionDef *s,
                              JSAtom var_name, int scope_level, int op,
@@ -30483,7 +30483,7 @@ static int resolve_scope_var(JSContext *ctx, JSFunctionDef *s,
         is_arg_scope = (idx == ARG_SCOPE_END);
         if (var_idx >= 0)
             break;
-        
+
         if (!is_arg_scope) {
             var_idx = find_var(ctx, fd, var_name);
             if (var_idx >= 0)
@@ -30527,7 +30527,7 @@ static int resolve_scope_var(JSContext *ctx, JSFunctionDef *s,
             dbuf_put_u16(bc, idx);
             var_object_test(ctx, s, var_name, op, bc, &label_done, 0);
         }
-        
+
         if (fd->is_eval)
             break; /* it it necessarily the top level function */
     }
@@ -30730,7 +30730,7 @@ static void get_loc_or_ref(DynBuf *bc, BOOL is_ref, int idx)
 {
     /* if the field is not initialized, the error is catched when
        accessing it */
-    if (is_ref) 
+    if (is_ref)
         dbuf_putc(bc, OP_get_var_ref);
     else
         dbuf_putc(bc, OP_get_loc);
@@ -30745,7 +30745,7 @@ static int resolve_scope_private_field1(JSContext *ctx,
     int idx, var_kind;
     JSFunctionDef *fd;
     BOOL is_ref;
-    
+
     fd = s;
     is_ref = FALSE;
     for(;;) {
@@ -31077,7 +31077,7 @@ static __exception int add_closure_variables(JSContext *ctx, JSFunctionDef *s,
     int i, count;
     JSVarDef *vd;
     BOOL is_arg_scope;
-    
+
     count = b->arg_count + b->var_count + b->closure_var_count;
     s->closure_var = NULL;
     s->closure_var_count = 0;
@@ -31311,7 +31311,7 @@ static void instantiate_hoisted_definitions(JSContext *ctx, JSFunctionDef *s, Dy
        visible if there are cyclic module references */
     if (s->module) {
         label_next = new_label_fd(s, -1);
-        
+
         /* if 'this' is true, initialize the global variables and return */
         dbuf_putc(bc, OP_push_this);
         dbuf_putc(bc, OP_if_false);
@@ -31319,7 +31319,7 @@ static void instantiate_hoisted_definitions(JSContext *ctx, JSFunctionDef *s, Dy
         update_label(s, label_next, 1);
         s->jump_size++;
     }
-    
+
     /* add the global variables (only happens if s->is_global_var is
        true) */
     for(i = 0; i < s->global_var_count; i++) {
@@ -31348,7 +31348,7 @@ static void instantiate_hoisted_definitions(JSContext *ctx, JSFunctionDef *s, Dy
         }
         if (!has_closure) {
             int flags;
-            
+
             flags = 0;
             if (s->eval_type != JS_EVAL_TYPE_GLOBAL)
                 flags |= JS_PROP_CONFIGURABLE;
@@ -31356,11 +31356,11 @@ static void instantiate_hoisted_definitions(JSContext *ctx, JSFunctionDef *s, Dy
                 /* global function definitions need a specific handling */
                 dbuf_putc(bc, OP_fclosure);
                 dbuf_put_u32(bc, hf->cpool_idx);
-                
+
                 dbuf_putc(bc, OP_define_func);
                 dbuf_put_u32(bc, JS_DupAtom(ctx, hf->var_name));
                 dbuf_putc(bc, flags);
-                
+
                 goto done_global_var;
             } else {
                 if (hf->is_lexical) {
@@ -31404,7 +31404,7 @@ static void instantiate_hoisted_definitions(JSContext *ctx, JSFunctionDef *s, Dy
 
     if (s->module) {
         dbuf_putc(bc, OP_return_undef);
-        
+
         dbuf_putc(bc, OP_label);
         dbuf_put_u32(bc, label_next);
         s->label_slots[label_next].pos2 = bc->size;
@@ -31509,7 +31509,7 @@ static __exception int resolve_variables(JSContext *ctx, JSFunctionDef *s)
     for(i = 0; i < s->global_var_count; i++) {
         JSGlobalVar *hf = &s->global_vars[i];
         int flags;
-        
+
         /* check if global variable (XXX: simplify) */
         for(idx = 0; idx < s->closure_var_count; idx++) {
             JSClosureVar *cv = &s->closure_var[idx];
@@ -31531,7 +31531,7 @@ static __exception int resolve_variables(JSContext *ctx, JSFunctionDef *s)
                 cv->var_name == JS_ATOM__arg_var_)
                 goto next;
         }
-        
+
         dbuf_putc(&bc_out, OP_check_define_var);
         dbuf_put_u32(&bc_out, JS_DupAtom(ctx, hf->var_name));
         flags = 0;
@@ -31823,7 +31823,7 @@ static __exception int resolve_variables(JSContext *ctx, JSFunctionDef *s)
         case OP_get_array_el_opt_chain: /* equivalent to OP_get_array_el */
             dbuf_putc(&bc_out, OP_get_array_el);
             break;
-            
+
         default:
         no_change:
             dbuf_put(&bc_out, bc_buf + pos, len);
@@ -32994,7 +32994,7 @@ static __exception int ss_check(JSContext *ctx, StackSizeState *s,
     /* mark as explored and store the stack size */
     s->stack_level_tab[pos] = stack_len;
     s->catch_pos_tab[pos] = catch_pos;
-    
+
     /* queue the new PC to explore */
     if (js_resize_array(ctx, (void **)&s->pc_stack, sizeof(s->pc_stack[0]),
                         &s->pc_stack_size, s->pc_stack_len + 1))
@@ -33450,7 +33450,7 @@ static JSValue js_create_function(JSContext *ctx, JSFunctionDef *fd)
     b->realm = JS_DupContext(ctx);
 
     add_gc_object(ctx->rt, &b->header, JS_GC_OBJ_TYPE_FUNCTION_BYTECODE);
-    
+
 #if defined(DUMP_BYTECODE) && (DUMP_BYTECODE & 1)
     if (!(fd->js_mode & JS_MODE_STRIP)) {
         js_dump_function_bytecode(ctx, b);
@@ -33662,7 +33662,7 @@ duplicate:
 static JSFunctionDef *js_parse_function_class_fields_init(JSParseState *s)
 {
     JSFunctionDef *fd;
-    
+
     fd = js_new_function_def(s->ctx, s->cur_func, FALSE, FALSE,
                              s->filename, 0);
     if (!fd)
@@ -33670,7 +33670,7 @@ static JSFunctionDef *js_parse_function_class_fields_init(JSParseState *s)
     fd->func_name = JS_ATOM_NULL;
     fd->has_prototype = FALSE;
     fd->has_home_object = TRUE;
-    
+
     fd->has_arguments_binding = FALSE;
     fd->has_this_binding = TRUE;
     fd->is_derived_class_constructor = FALSE;
@@ -33678,7 +33678,7 @@ static JSFunctionDef *js_parse_function_class_fields_init(JSParseState *s)
     fd->super_call_allowed = FALSE;
     fd->super_allowed = fd->has_home_object;
     fd->arguments_allowed = FALSE;
-    
+
     fd->func_kind = JS_FUNC_NORMAL;
     fd->func_type = JS_PARSE_FUNC_METHOD;
     return fd;
@@ -33861,7 +33861,7 @@ static __exception int js_parse_function_decl2(JSParseState *s,
     if (func_type == JS_PARSE_FUNC_CLASS_CONSTRUCTOR) {
         emit_class_field_init(s);
     }
-    
+
     /* parse arguments */
     fd->has_simple_parameter_list = TRUE;
     fd->has_parameter_expressions = FALSE;
@@ -33896,7 +33896,7 @@ static __exception int js_parse_function_decl2(JSParseState *s,
             if (push_scope(s) < 0)
                 return -1;
         }
-        
+
         while (s->token.val != ')') {
             JSAtom name;
             BOOL rest = FALSE;
@@ -33961,7 +33961,7 @@ static __exception int js_parse_function_decl2(JSParseState *s,
                     has_opt_arg = TRUE;
                 } else if (s->token.val == '=') {
                     int label;
-                    
+
                     fd->has_simple_parameter_list = FALSE;
                     has_opt_arg = TRUE;
 
@@ -34044,7 +34044,7 @@ static __exception int js_parse_function_decl2(JSParseState *s,
             }
             idx = vd->scope_next;
         }
-        
+
         /* the argument scope has no parent, hence we don't use pop_scope(s) */
         emit_op(s, OP_leave_scope);
         emit_u16(s, fd->scope_level);
@@ -34053,7 +34053,7 @@ static __exception int js_parse_function_decl2(JSParseState *s,
         fd->scope_level = 0;
         fd->scope_first = fd->scopes[fd->scope_level].first;
     }
-    
+
     if (next_token(s))
         goto fail;
 
@@ -34138,7 +34138,7 @@ static __exception int js_parse_function_decl2(JSParseState *s,
        by just using next_token() here for normal functions, but it is
        necessary for arrow functions with an expression body. */
     reparse_ident_token(s);
-    
+
     /* create the function object */
     {
         int idx;
@@ -34175,7 +34175,7 @@ static __exception int js_parse_function_decl2(JSParseState *s,
                     /* it is considered as defined at the top level
                        (needed for annex B.3.3.4 and B.3.3.5
                        checks) */
-                    hf->scope_level = 0; 
+                    hf->scope_level = 0;
                     hf->force_init = ((s->cur_func->js_mode & JS_MODE_STRICT) != 0);
                     /* store directly into global var, bypass lexical scope */
                     emit_op(s, OP_dup);
@@ -34446,7 +34446,7 @@ static JSValue __JS_EvalInternal(JSContext *ctx, JSValueConst this_obj,
 
     push_scope(s); /* body scope */
     fd->body_scope = fd->scope_level;
-    
+
     err = js_parse_program(s);
     if (err) {
     fail:
@@ -34584,13 +34584,13 @@ static int js_object_list_resize_hash(JSContext *ctx, JSObjectList *s,
     js_free(ctx, s->hash_table);
     s->hash_table = new_hash_table;
     s->hash_size = new_hash_size;
-    
+
     for(i = 0; i < s->hash_size; i++) {
         s->hash_table[i] = -1;
     }
     for(i = 0; i < s->object_count; i++) {
         e = &s->object_tab[i];
-        h = js_object_list_get_hash(e->obj, s->hash_size); 
+        h = js_object_list_get_hash(e->obj, s->hash_size);
         e->hash_next = s->hash_table[h];
         s->hash_table[h] = i;
     }
@@ -34603,7 +34603,7 @@ static int js_object_list_add(JSContext *ctx, JSObjectList *s, JSObject *obj)
 {
     JSObjectListEntry *e;
     uint32_t h, new_hash_size;
-    
+
     if (js_resize_array(ctx, (void *)&s->object_tab,
                         sizeof(s->object_tab[0]),
                         &s->object_size, s->object_count + 1))
@@ -34616,7 +34616,7 @@ static int js_object_list_add(JSContext *ctx, JSObjectList *s, JSObject *obj)
             return -1;
     }
     e = &s->object_tab[s->object_count++];
-    h = js_object_list_get_hash(obj, s->hash_size); 
+    h = js_object_list_get_hash(obj, s->hash_size);
     e->obj = obj;
     e->hash_next = s->hash_table[h];
     s->hash_table[h] = s->object_count - 1;
@@ -34632,7 +34632,7 @@ static int js_object_list_find(JSContext *ctx, JSObjectList *s, JSObject *obj)
     /* must test empty size because there is no hash table */
     if (s->object_count == 0)
         return -1;
-    h = js_object_list_get_hash(obj, s->hash_size); 
+    h = js_object_list_get_hash(obj, s->hash_size);
     p = s->hash_table[h];
     while (p != -1) {
         e = &s->object_tab[p];
@@ -34971,7 +34971,7 @@ static int JS_WriteBigNum(BCWriterState *s, JSValueConst obj)
     case JS_TAG_BIG_DECIMAL:
         tag1 = BC_TAG_BIG_DECIMAL;
         break;
-#endif        
+#endif
     default:
         abort();
     }
@@ -35037,7 +35037,7 @@ static int JS_WriteBigNum(BCWriterState *s, JSValueConst obj)
             int bpos, d;
             uint8_t v8;
             size_t i0;
-            
+
             /* little endian BCD */
             i = 0;
             while (i < a->len && a->tab[i] == 0)
@@ -35057,7 +35057,7 @@ static int JS_WriteBigNum(BCWriterState *s, JSValueConst obj)
                 return -1;
             }
             bc_put_leb128(s, len);
-            
+
             bpos = 0;
             v8 = 0;
             i0 = i;
@@ -35094,7 +35094,7 @@ static int JS_WriteFunctionTag(BCWriterState *s, JSValueConst obj)
     JSFunctionBytecode *b = JS_VALUE_GET_PTR(obj);
     uint32_t flags;
     int idx, i;
-    
+
     bc_put_u8(s, BC_TAG_FUNCTION_BYTECODE);
     flags = idx = 0;
     bc_set_flags(&flags, &idx, b->has_prototype, 1);
@@ -35113,7 +35113,7 @@ static int JS_WriteFunctionTag(BCWriterState *s, JSValueConst obj)
     bc_put_u16(s, flags);
     bc_put_u8(s, b->js_mode);
     bc_put_atom(s, b->func_name);
-    
+
     bc_put_leb128(s, b->arg_count);
     bc_put_leb128(s, b->var_count);
     bc_put_leb128(s, b->defined_arg_count);
@@ -35140,7 +35140,7 @@ static int JS_WriteFunctionTag(BCWriterState *s, JSValueConst obj)
     } else {
         bc_put_leb128(s, 0);
     }
-    
+
     for(i = 0; i < b->closure_var_count; i++) {
         JSClosureVar *cv = &b->closure_var[i];
         bc_put_atom(s, cv->var_name);
@@ -35154,17 +35154,17 @@ static int JS_WriteFunctionTag(BCWriterState *s, JSValueConst obj)
         assert(idx <= 8);
         bc_put_u8(s, flags);
     }
-    
+
     if (JS_WriteFunctionBytecode(s, b->byte_code_buf, b->byte_code_len))
         goto fail;
-    
+
     if (b->has_debug) {
         bc_put_atom(s, b->debug.filename);
         bc_put_leb128(s, b->debug.line_num);
         bc_put_leb128(s, b->debug.pc2line_len);
         dbuf_put(&s->dbuf, b->debug.pc2line_buf, b->debug.pc2line_len);
     }
-    
+
     for(i = 0; i < b->cpool_count; i++) {
         if (JS_WriteObjectRec(s, b->cpool[i]))
             goto fail;
@@ -35178,16 +35178,16 @@ static int JS_WriteModule(BCWriterState *s, JSValueConst obj)
 {
     JSModuleDef *m = JS_VALUE_GET_PTR(obj);
     int i;
-    
+
     bc_put_u8(s, BC_TAG_MODULE);
     bc_put_atom(s, m->module_name);
-    
+
     bc_put_leb128(s, m->req_module_entries_count);
     for(i = 0; i < m->req_module_entries_count; i++) {
         JSReqModuleEntry *rme = &m->req_module_entries[i];
         bc_put_atom(s, rme->module_name);
     }
-    
+
     bc_put_leb128(s, m->export_entries_count);
     for(i = 0; i < m->export_entries_count; i++) {
         JSExportEntry *me = &m->export_entries[i];
@@ -35200,13 +35200,13 @@ static int JS_WriteModule(BCWriterState *s, JSValueConst obj)
         }
         bc_put_atom(s, me->export_name);
     }
-    
+
     bc_put_leb128(s, m->star_export_entries_count);
     for(i = 0; i < m->star_export_entries_count; i++) {
         JSStarExportEntry *se = &m->star_export_entries[i];
         bc_put_leb128(s, se->req_module_idx);
     }
-    
+
     bc_put_leb128(s, m->import_entries_count);
     for(i = 0; i < m->import_entries_count; i++) {
         JSImportEntry *mi = &m->import_entries[i];
@@ -35216,7 +35216,7 @@ static int JS_WriteModule(BCWriterState *s, JSValueConst obj)
     }
 
     bc_put_u8(s, m->has_tla);
-    
+
     if (JS_WriteObjectRec(s, m->func_obj))
         goto fail;
     return 0;
@@ -35231,7 +35231,7 @@ static int JS_WriteArray(BCWriterState *s, JSValueConst obj)
     JSValue val;
     int ret;
     BOOL is_template;
-    
+
     if (s->allow_bytecode && !p->extensible) {
         /* not extensible array: we consider it is a
            template when we are saving bytecode */
@@ -35405,7 +35405,7 @@ static int JS_WriteObjectRec(BCWriterState *s, JSValueConst obj)
         {
             JSObject *p = JS_VALUE_GET_OBJ(obj);
             int ret, idx;
-            
+
             if (s->allow_reference) {
                 idx = js_object_list_find(s->ctx, &s->object_list, p);
                 if (idx >= 0) {
@@ -35546,7 +35546,7 @@ uint8_t *JS_WriteObject2(JSContext *ctx, size_t *psize, JSValueConst obj,
         s->first_atom = 1;
     js_dbuf_init(ctx, &s->dbuf);
     js_object_list_init(&s->object_list);
-    
+
     if (JS_WriteObjectRec(s, obj))
         goto fail;
     if (JS_WriteObjectAtoms(s))
@@ -35594,7 +35594,7 @@ typedef struct BCReaderState {
     JSObject **objects;
     int objects_count;
     int objects_size;
-    
+
 #ifdef DUMP_READ_OBJECT
     const uint8_t *ptr_last;
     int level;
@@ -35878,7 +35878,7 @@ static JSValue JS_ReadBigNum(BCReaderState *s, int tag)
     limb_t v;
     bf_t *a;
     int bpos, d;
-    
+
     p = js_new_bf(s->ctx);
     if (!p)
         goto fail;
@@ -35893,7 +35893,7 @@ static JSValue JS_ReadBigNum(BCReaderState *s, int tag)
     case BC_TAG_BIG_DECIMAL:
         obj = JS_MKPTR(JS_TAG_BIG_DECIMAL, p);
         break;
-#endif        
+#endif
     default:
         abort();
     }
@@ -36092,7 +36092,7 @@ static JSValue JS_ReadFunctionTag(BCReaderState *s)
     b = js_mallocz(ctx, function_size);
     if (!b)
         return JS_EXCEPTION;
-            
+
     memcpy(b, &bc, offsetof(JSFunctionBytecode, debug));
     b->header.ref_count = 1;
     if (local_count != 0) {
@@ -36104,9 +36104,9 @@ static JSValue JS_ReadFunctionTag(BCReaderState *s)
     if (b->cpool_count != 0) {
         b->cpool = (void *)((uint8_t*)b + cpool_offset);
     }
-    
+
     add_gc_object(ctx->rt, &b->header, JS_GC_OBJ_TYPE_FUNCTION_BYTECODE);
-            
+
     obj = JS_MKPTR(JS_TAG_FUNCTION_BYTECODE, b);
 
 #ifdef DUMP_READ_OBJECT
@@ -36219,7 +36219,7 @@ static JSValue JS_ReadModule(BCReaderState *s)
     JSAtom module_name;
     int i;
     uint8_t v8;
-    
+
     if (bc_get_atom(s, &module_name))
         goto fail;
 #ifdef DUMP_READ_OBJECT
@@ -36324,7 +36324,7 @@ static JSValue JS_ReadObjectTag(BCReaderState *s)
     JSAtom atom;
     JSValue val;
     int ret;
-    
+
     obj = JS_NewObject(ctx);
     if (BC_add_object_ref(s, obj))
         goto fail;
@@ -36404,7 +36404,7 @@ static JSValue JS_ReadTypedArray(BCReaderState *s)
     uint8_t array_tag;
     JSValueConst args[3];
     uint32_t offset, len, idx;
-    
+
     if (bc_get_u8(s, &array_tag))
         return JS_EXCEPTION;
     if (array_tag >= JS_TYPED_ARRAY_COUNT)
@@ -36449,7 +36449,7 @@ static JSValue JS_ReadArrayBuffer(BCReaderState *s)
     JSContext *ctx = s->ctx;
     uint32_t byte_length;
     JSValue obj;
-    
+
     if (bc_get_leb128(s, &byte_length))
         return JS_EXCEPTION;
     if (unlikely(s->buf_end - s->ptr < byte_length)) {
@@ -36475,7 +36475,7 @@ static JSValue JS_ReadSharedArrayBuffer(BCReaderState *s)
     uint8_t *data_ptr;
     JSValue obj;
     uint64_t u64;
-    
+
     if (bc_get_leb128(s, &byte_length))
         return JS_EXCEPTION;
     if (bc_get_u64(s, &u64))
@@ -36985,7 +36985,7 @@ static void JS_SetConstructor2(JSContext *ctx,
     set_cycle_flag(ctx, proto);
 }
 
-void JS_SetConstructor(JSContext *ctx, JSValueConst func_obj, 
+void JS_SetConstructor(JSContext *ctx, JSValueConst func_obj,
                        JSValueConst proto)
 {
     JS_SetConstructor2(ctx, func_obj, proto,
@@ -37828,7 +37828,7 @@ static JSValue js_object_seal(JSContext *ctx, JSValueConst this_val,
     if (!res) {
         return JS_ThrowTypeError(ctx, "proxy preventExtensions handler returned false");
     }
-    
+
     p = JS_VALUE_GET_OBJ(obj);
     flags = JS_GPN_STRING_MASK | JS_GPN_SYMBOL_MASK;
     if (JS_GetOwnPropertyNamesInternal(ctx, &props, &len, p, flags))
@@ -37869,7 +37869,7 @@ static JSValue js_object_isSealed(JSContext *ctx, JSValueConst this_val,
     JSPropertyEnum *props;
     uint32_t len, i;
     int flags, res;
-    
+
     if (!JS_IsObject(obj))
         return JS_TRUE;
 
@@ -37898,7 +37898,7 @@ static JSValue js_object_isSealed(JSContext *ctx, JSValueConst this_val,
     if (res < 0)
         return JS_EXCEPTION;
     res ^= 1;
-done:        
+done:
     js_free_prop_enum(ctx, props, len);
     return JS_NewBool(ctx, res);
 
@@ -37921,14 +37921,14 @@ static JSValue js_object_fromEntries(JSContext *ctx, JSValueConst this_val,
     obj = JS_NewObject(ctx);
     if (JS_IsException(obj))
         return obj;
-    
+
     iter = JS_GetIterator(ctx, iterable, FALSE);
     if (JS_IsException(iter))
         goto fail;
     next_method = JS_GetProperty(ctx, iter, JS_ATOM_next);
     if (JS_IsException(next_method))
         goto fail;
-    
+
     for(;;) {
         JSValue key, value, item;
         item = JS_IteratorNext(ctx, iter, next_method, 0, NULL, &done);
@@ -37938,7 +37938,7 @@ static JSValue js_object_fromEntries(JSContext *ctx, JSValueConst this_val,
             JS_FreeValue(ctx, item);
             break;
         }
-        
+
         key = JS_UNDEFINED;
         value = JS_UNDEFINED;
         if (!JS_IsObject(item)) {
@@ -38324,7 +38324,7 @@ static JSValue js_function_constructor(JSContext *ctx, JSValueConst new_target,
 
     string_buffer_init(ctx, b, 0);
     string_buffer_putc8(b, '(');
-    
+
     if (func_kind == JS_FUNC_ASYNC || func_kind == JS_FUNC_ASYNC_GENERATOR) {
         string_buffer_puts8(b, "async ");
     }
@@ -38657,7 +38657,7 @@ static JSValue iterator_to_array(JSContext *ctx, JSValueConst items)
     JSValue v, r = JS_UNDEFINED;
     int64_t k;
     BOOL done;
-    
+
     iter = JS_GetIterator(ctx, items, FALSE);
     if (JS_IsException(iter))
         goto exception;
@@ -38704,7 +38704,7 @@ static JSValue js_error_constructor(JSContext *ctx, JSValueConst new_target,
     if (!JS_IsObject(proto)) {
         JSContext *realm;
         JSValueConst proto1;
-        
+
         JS_FreeValue(ctx, proto);
         realm = JS_GetFunctionRealm(ctx, new_target);
         if (!realm)
@@ -38805,7 +38805,7 @@ static JSValue js_aggregate_error_constructor(JSContext *ctx,
                                               JSValueConst errors)
 {
     JSValue obj;
-    
+
     obj = JS_NewObjectProtoClass(ctx,
                                  ctx->native_error_proto[JS_AGGREGATE_ERROR],
                                  JS_CLASS_ERROR);
@@ -38871,7 +38871,7 @@ static int JS_CopySubArray(JSContext *ctx,
             fromPresent = JS_TryGetPropertyInt64(ctx, obj, from, &val);
             if (fromPresent < 0)
                 goto exception;
-            
+
             if (fromPresent) {
                 if (JS_SetPropertyInt64(ctx, obj, to, val) < 0)
                     goto exception;
@@ -39079,7 +39079,7 @@ static JSValue JS_ArraySpeciesCreate(JSContext *ctx, JSValueConst obj,
     JSValue ctor, ret, species;
     int res;
     JSContext *realm;
-    
+
     res = JS_IsArray(ctx, obj);
     if (res < 0)
         return JS_EXCEPTION;
@@ -39147,7 +39147,7 @@ static JSValue js_array_at(JSContext *ctx, JSValueConst this_val,
     int64_t len, idx;
     JSValue *arrp;
     uint32_t count;
-    
+
     obj = JS_ToObject(ctx, this_val);
     if (js_get_length64(ctx, &len, obj))
         goto exception;
@@ -39344,7 +39344,7 @@ static JSValue js_array_every(JSContext *ctx, JSValueConst this_val,
     this_arg = JS_UNDEFINED;
     if (argc > 1)
         this_arg = argv[1];
-        
+
     if (check_function(ctx, func))
         goto exception;
 
@@ -40885,7 +40885,7 @@ static JSValue js_number_constructor(JSContext *ctx, JSValueConst new_target,
         case JS_TAG_BIG_INT:
 #ifdef CONFIG_BIGNUM
         case JS_TAG_BIG_FLOAT:
-#endif            
+#endif
             {
                 JSBigFloat *p = JS_VALUE_GET_PTR(val);
                 double d;
@@ -41274,7 +41274,7 @@ static int js_string_define_own_property(JSContext *ctx,
     uint32_t idx;
     JSObject *p;
     JSString *p1, *p2;
-    
+
     if (__JS_AtomIsTaggedInt(prop)) {
         idx = __JS_AtomToUInt32(prop);
         p = JS_VALUE_GET_OBJ(this_obj);
@@ -41440,7 +41440,7 @@ static JSValue js_string_raw(JSContext *ctx, JSValueConst this_val,
         goto exception;
     if (js_get_length64(ctx, &n, raw) < 0)
         goto exception;
-        
+
     for (i = 0; i < n; i++) {
         val = JS_ToStringFree(ctx, JS_GetPropertyInt64(ctx, raw, i));
         if (JS_IsException(val))
@@ -41689,7 +41689,7 @@ static JSValue js_string_isWellFormed(JSContext *ctx, JSValueConst this_val,
     JSValue str;
     JSString *p;
     BOOL ret;
-    
+
     str = JS_ToStringCheckObject(ctx, this_val);
     if (JS_IsException(str))
         return JS_EXCEPTION;
@@ -41720,7 +41720,7 @@ static JSValue js_string_toWellFormed(JSContext *ctx, JSValueConst this_val,
     JS_FreeValue(ctx, str);
     if (JS_IsException(ret))
         return JS_EXCEPTION;
-    
+
     p = JS_VALUE_GET_STRING(ret);
     for (; i < p->len; i++) {
         c = p->u.str16[i];
@@ -41876,7 +41876,7 @@ static int check_regexp_g_flag(JSContext *ctx, JSValueConst regexp)
 {
     int ret;
     JSValue flags;
-    
+
     ret = js_is_regexp(ctx, regexp);
     if (ret < 0)
         return -1;
@@ -42150,7 +42150,7 @@ static JSValue js_string_replace(JSContext *ctx, JSValueConst this_val,
         }
         if (JS_IsException(repl_str))
             goto exception;
-        
+
         string_buffer_concat(b, sp, endOfLastMatch, pos);
         string_buffer_concat_value_free(b, repl_str);
         endOfLastMatch = pos + searchp->len;
@@ -42637,13 +42637,13 @@ static JSValue JS_NewUTF32String(JSContext *ctx, const uint32_t *buf, int len)
     return JS_EXCEPTION;
 }
 
-static int js_string_normalize1(JSContext *ctx, uint32_t **pout_buf, 
+static int js_string_normalize1(JSContext *ctx, uint32_t **pout_buf,
                                 JSValueConst val,
                                 UnicodeNormalizationEnum n_type)
 {
     int buf_len, out_len;
     uint32_t *buf, *out_buf;
-    
+
     buf_len = JS_ToUTF32String(ctx, &buf, val);
     if (buf_len < 0)
         return -1;
@@ -42736,7 +42736,7 @@ static JSValue js_string_localeCompare(JSContext *ctx, JSValueConst this_val,
     JSValue a, b;
     int cmp, a_len, b_len;
     uint32_t *a_buf, *b_buf;
-    
+
     a = JS_ToStringCheckObject(ctx, this_val);
     if (JS_IsException(a))
         return JS_EXCEPTION;
@@ -42897,7 +42897,7 @@ static JSValue js_string_CreateHTML(JSContext *ctx, JSValueConst this_val,
     static struct { const char *tag, *attr; } const defs[] = {
         { "a", "name" }, { "big", NULL }, { "blink", NULL }, { "b", NULL },
         { "tt", NULL }, { "font", "color" }, { "font", "size" }, { "i", NULL },
-        { "a", "href" }, { "small", NULL }, { "strike", NULL }, 
+        { "a", "href" }, { "small", NULL }, { "strike", NULL },
         { "sub", NULL }, { "sup", NULL },
     };
 
@@ -43300,7 +43300,7 @@ static int getTimezoneOffset(int64_t time)
 {
     time_t ti;
     int res;
-    
+
     time /= 1000; /* convert to seconds */
     if (sizeof(time_t) == 4) {
         /* on 32-bit systems, we need to clamp the time value to the
@@ -43327,10 +43327,10 @@ static int getTimezoneOffset(int64_t time)
     {
         struct tm *tm;
         time_t gm_ti, loc_ti;
-        
+
         tm = gmtime(&ti);
         gm_ti = mktime(tm);
-        
+
         tm = localtime(&ti);
         loc_ti = mktime(tm);
 
@@ -43694,7 +43694,7 @@ static JSValue js_regexp_get_source(JSContext *ctx, JSValueConst this_val)
     if (p->len == 0) {
     empty_regex:
         return JS_NewString(ctx, "(?:)");
-    }    
+    }
     string_buffer_init2(ctx, b, p->len, p->is_wide_char);
 
     /* Escape '/' and newline sequences as needed */
@@ -43753,7 +43753,7 @@ static JSValue js_regexp_get_flag(JSContext *ctx, JSValueConst this_val, int mas
         else
             return JS_ThrowTypeErrorInvalidClass(ctx, JS_CLASS_REGEXP);
     }
-    
+
     flags = lre_get_flags(re->bytecode->u.str8);
     return JS_NewBool(ctx, (flags & mask) != 0);
 }
@@ -43942,7 +43942,7 @@ static JSValue js_regexp_exec(JSContext *ctx, JSValueConst this_val,
             int start = -1;
             int end = -1;
             JSValue val;
-            
+
             if (group_name_ptr && i > 0) {
                 if (*group_name_ptr) name = group_name_ptr;
                 group_name_ptr += strlen(group_name_ptr) + 1;
@@ -44368,7 +44368,7 @@ static JSValue js_regexp_Symbol_matchAll(JSContext *ctx, JSValueConst this_val,
     JSString *strp;
     int64_t lastIndex;
     JSRegExpStringIteratorData *it;
-    
+
     if (!JS_IsObject(R))
         return JS_ThrowTypeErrorNotAnObject(ctx);
 
@@ -44376,7 +44376,7 @@ static JSValue js_regexp_Symbol_matchAll(JSContext *ctx, JSValueConst this_val,
     flags = JS_UNDEFINED;
     matcher = JS_UNDEFINED;
     iter = JS_UNDEFINED;
-    
+
     S = JS_ToString(ctx, argv[0]);
     if (JS_IsException(S))
         goto exception;
@@ -44397,7 +44397,7 @@ static JSValue js_regexp_Symbol_matchAll(JSContext *ctx, JSValueConst this_val,
     if (JS_SetProperty(ctx, matcher, JS_ATOM_lastIndex,
                        JS_NewInt64(ctx, lastIndex)) < 0)
         goto exception;
-    
+
     iter = JS_NewObjectClass(ctx, JS_CLASS_REGEXP_STRING_ITERATOR);
     if (JS_IsException(iter))
         goto exception;
@@ -44536,7 +44536,7 @@ static JSValue js_regexp_Symbol_replace(JSContext *ctx, JSValueConst this_val,
     str = JS_ToString(ctx, argv[0]);
     if (JS_IsException(str))
         goto exception;
-        
+
     sp = JS_VALUE_GET_STRING(str);
     rp = NULL;
     functionalReplace = JS_IsFunction(ctx, rep);
@@ -44824,7 +44824,7 @@ static JSValue js_regexp_Symbol_split(JSContext *ctx, JSValueConst this_val,
     while (q < size) {
         if (JS_SetProperty(ctx, splitter, JS_ATOM_lastIndex, JS_NewInt32(ctx, q)) < 0)
             goto exception;
-        JS_FreeValue(ctx, z);    
+        JS_FreeValue(ctx, z);
         z = JS_RegExpExec(ctx, splitter, str);
         if (JS_IsException(z))
             goto exception;
@@ -44879,7 +44879,7 @@ done:
     JS_FreeValue(ctx, ctor);
     JS_FreeValue(ctx, splitter);
     JS_FreeValue(ctx, flags);
-    JS_FreeValue(ctx, z);    
+    JS_FreeValue(ctx, z);
     return A;
 }
 
@@ -44965,7 +44965,7 @@ static JSValue json_parse_value(JSParseState *s)
         {
             JSValue prop_val;
             JSAtom prop_name;
-            
+
             if (json_next_token(s))
                 goto fail;
             val = JS_NewObject(ctx);
@@ -45108,7 +45108,7 @@ JSValue JS_ParseJSON2(JSContext *ctx, const char *buf, size_t buf_len,
 JSValue JS_ParseJSON(JSContext *ctx, const char *buf, size_t buf_len,
                      const char *filename)
 {
-    return JS_ParseJSON2(ctx, buf, buf_len, filename, 0); 
+    return JS_ParseJSON2(ctx, buf, buf_len, filename, 0);
 }
 
 static JSValue internalize_json_property(JSContext *ctx, JSValueConst holder,
@@ -45297,7 +45297,7 @@ static int js_json_to_str(JSContext *ctx, JSONStringifyContext *jsc,
     int64_t i, len;
     int cl, ret;
     BOOL has_content;
-    
+
     indent1 = JS_UNDEFINED;
     sep = JS_UNDEFINED;
     sep1 = JS_UNDEFINED;
@@ -45471,7 +45471,7 @@ static int js_json_to_str(JSContext *ctx, JSONStringifyContext *jsc,
         JS_FreeValue(ctx, val);
         return 0;
     }
-    
+
 exception:
     JS_FreeValue(ctx, val);
     JS_FreeValue(ctx, tab);
@@ -45589,7 +45589,7 @@ JSValue JS_JSONStringify(JSContext *ctx, JSValueConst obj,
                                JS_DupValue(ctx, obj), JS_PROP_C_W_E) < 0)
         goto exception;
     val = JS_DupValue(ctx, obj);
-                           
+
     val = js_json_check(ctx, jsc, wrapper, val, jsc->empty);
     if (JS_IsException(val))
         goto exception;
@@ -45845,7 +45845,7 @@ static JSProxyData *get_proxy_method(JSContext *ctx, JSValue *pmethod,
         JS_ThrowStackOverflow(ctx);
         return NULL;
     }
-    
+
     /* 's' should never be NULL */
     if (s->is_revoked) {
         JS_ThrowTypeErrorRevokedProxy(ctx);
@@ -46244,7 +46244,7 @@ static int js_proxy_get_own_property(JSContext *ctx, JSPropertyDescriptor *pdesc
         JS_FreeValue(ctx, trap_result_obj);
         if (res < 0)
             return -1;
-        
+
         if (target_desc_ret) {
             /* convert result_desc.flags to defineProperty flags */
             flags1 = result_desc.flags | JS_PROP_HAS_CONFIGURABLE | JS_PROP_HAS_ENUMERABLE;
@@ -46609,7 +46609,7 @@ static JSValue js_proxy_call(JSContext *ctx, JSValueConst func_obj,
 
     if (flags & JS_CALL_FLAG_CONSTRUCTOR)
         return js_proxy_call_constructor(ctx, func_obj, this_obj, argc, argv);
-    
+
     s = get_proxy_method(ctx, &method, func_obj, JS_ATOM_apply);
     if (!s)
         return JS_EXCEPTION;
@@ -47198,7 +47198,7 @@ static void reset_weak_ref(JSRuntime *rt, JSObject *p)
 {
     JSMapRecord *mr, *mr_next;
     JSMapState *s;
-    
+
     /* first pass to remove the records from the WeakMap/WeakSet
        lists */
     for(mr = p->first_weak_ref; mr != NULL; mr = mr->next_weak_ref) {
@@ -47208,7 +47208,7 @@ static void reset_weak_ref(JSRuntime *rt, JSObject *p)
         list_del(&mr->hash_link);
         list_del(&mr->link);
     }
-    
+
     /* second pass to free the values to avoid modifying the weak
        reference list while traversing it. */
     for(mr = p->first_weak_ref; mr != NULL; mr = mr_next) {
@@ -47391,7 +47391,7 @@ static JSValue js_object_groupBy(JSContext *ctx, JSValueConst this_val,
     v = JS_UNDEFINED;
     prop = JS_UNDEFINED;
     groups = JS_UNDEFINED;
-    
+
     next = JS_GetProperty(ctx, iter, JS_ATOM_next);
     if (JS_IsException(next))
         goto exception;
@@ -48331,7 +48331,7 @@ static JSValue js_promise_all_resolve_element(JSContext *ctx,
     JSValueConst resolve_element_env = func_data[4];
     JSValue ret, obj;
     int is_zero, index;
-    
+
     if (JS_ToInt32(ctx, &index, func_data[1]))
         return JS_EXCEPTION;
     if (alreadyCalled)
@@ -48340,7 +48340,7 @@ static JSValue js_promise_all_resolve_element(JSContext *ctx,
 
     if (resolve_type == PROMISE_MAGIC_allSettled) {
         JSValue str;
-        
+
         obj = JS_NewObject(ctx);
         if (JS_IsException(obj))
             return JS_EXCEPTION;
@@ -48365,7 +48365,7 @@ static JSValue js_promise_all_resolve_element(JSContext *ctx,
     if (JS_DefinePropertyValueUint32(ctx, values, index,
                                      obj, JS_PROP_C_W_E) < 0)
         return JS_EXCEPTION;
-    
+
     is_zero = remainingElementsCount_add(ctx, resolve_element_env, -1);
     if (is_zero < 0)
         return JS_EXCEPTION;
@@ -48398,7 +48398,7 @@ static JSValue js_promise_all(JSContext *ctx, JSValueConst this_val,
     JSValueConst then_args[2], resolve_element_data[5];
     BOOL done;
     int index, is_zero, is_promise_any = (magic == PROMISE_MAGIC_any);
-    
+
     if (!JS_IsObject(this_val))
         return JS_ThrowTypeErrorNotAnObject(ctx);
     result_promise = js_new_promise_capability(ctx, resolving_funcs, this_val);
@@ -48434,7 +48434,7 @@ static JSValue js_promise_all(JSContext *ctx, JSValueConst this_val,
                                          JS_NewInt32(ctx, 1),
                                          JS_PROP_CONFIGURABLE | JS_PROP_ENUMERABLE | JS_PROP_WRITABLE) < 0)
             goto fail_reject;
-        
+
         index = 0;
         for(;;) {
             /* XXX: conformance: should close the iterator if error on 'done'
@@ -48444,7 +48444,7 @@ static JSValue js_promise_all(JSContext *ctx, JSValueConst this_val,
                 goto fail_reject;
             if (done)
                 break;
-            next_promise = JS_Call(ctx, promise_resolve, 
+            next_promise = JS_Call(ctx, promise_resolve,
                                    this_val, 1, (JSValueConst *)&item);
             JS_FreeValue(ctx, item);
             if (JS_IsException(next_promise)) {
@@ -48464,7 +48464,7 @@ static JSValue js_promise_all(JSContext *ctx, JSValueConst this_val,
                 JS_FreeValue(ctx, next_promise);
                 goto fail_reject1;
             }
-            
+
             if (magic == PROMISE_MAGIC_allSettled) {
                 reject_element =
                     JS_NewCFunctionData(ctx, js_promise_all_resolve_element, 1,
@@ -49538,7 +49538,7 @@ static double set_date_fields(double fields[], int is_local) {
     int64_t y;
     double days, d, h, m1;
     int i, m, md;
-    
+
     m1 = fields[1];
     m = fmod(m1, 12);
     if (m < 0)
@@ -49553,7 +49553,7 @@ static double set_date_fields(double fields[], int is_local) {
         days += md;
     }
     days += fields[2] - 1;
-    h = fields[3] * 3600000 + fields[4] * 60000 + 
+    h = fields[3] * 3600000 + fields[4] * 60000 +
         fields[5] * 1000 + fields[6];
     d = days * 86400000 + h;
     if (is_local)
@@ -49850,7 +49850,7 @@ static void string_skip_non_spaces(JSString *sp, int *pp) {
 static int string_get_digits(JSString *sp, int *pp, int64_t *pval) {
     int64_t v = 0;
     int c, p = *pp, p_start;
-    
+
     if (p >= sp->len)
         return -1;
     p_start = p;
@@ -49872,14 +49872,14 @@ static int string_get_digits(JSString *sp, int *pp, int64_t *pval) {
 
 static int string_get_signed_digits(JSString *sp, int *pp, int64_t *pval) {
     int res, sgn, p = *pp;
-    
+
     if (p >= sp->len)
         return -1;
 
     sgn = string_get(sp, p);
     if (sgn == '-' || sgn == '+')
         p++;
- 
+
     res = string_get_digits(sp, &p, pval);
     if (res == 0 && sgn == '-') {
         if (*pval == 0)
@@ -49976,13 +49976,13 @@ static JSValue js_Date_parse(JSContext *ctx, JSValueConst this_val,
     int p, i, c, sgn, l;
     JSString *sp;
     BOOL is_local;
-    
+
     rv = JS_NAN;
 
     s = JS_ToString(ctx, argv[0]);
     if (JS_IsException(s))
         return JS_EXCEPTION;
-    
+
     sp = JS_VALUE_GET_STRING(s);
     p = 0;
     if (p < sp->len && (((c = string_get(sp, p)) >= '0' && c <= '9') || c == '+' || c == '-')) {
@@ -50346,7 +50346,7 @@ static void js_operator_set_finalizer(JSRuntime *rt, JSValue val)
     JSOperatorSetData *opset = JS_GetOpaque(val, JS_CLASS_OPERATOR_SET);
     int i, j;
     JSBinaryOperatorDefEntry *ent;
-    
+
     if (opset) {
         for(i = 0; i < JS_OVOP_COUNT; i++) {
             if (opset->self_ops[i])
@@ -50378,7 +50378,7 @@ static void js_operator_set_mark(JSRuntime *rt, JSValueConst val,
     JSOperatorSetData *opset = JS_GetOpaque(val, JS_CLASS_OPERATOR_SET);
     int i, j;
     JSBinaryOperatorDefEntry *ent;
-    
+
     if (opset) {
         for(i = 0; i < JS_OVOP_COUNT; i++) {
             if (opset->self_ops[i])
@@ -50478,7 +50478,7 @@ static JSValue js_operators_create_internal(JSContext *ctx,
         }
         op_count = opset1->operator_counter;
         JS_FreeValue(ctx, prop);
-        
+
         /* we assume there are few entries */
         new_tab = js_realloc(ctx, def->tab,
                              (def->count + 1) * sizeof(def->tab[0]));
@@ -50489,7 +50489,7 @@ static JSValue js_operators_create_internal(JSContext *ctx,
         ent = def->tab + def->count - 1;
         memset(ent, 0, sizeof(def->tab[0]));
         ent->operator_index = op_count;
-        
+
         for(i = 0; i < JS_OVOP_BINARY_COUNT; i++) {
             prop = JS_GetPropertyStr(ctx, arg,
                                      js_overloadable_operator_names[i]);
@@ -50526,7 +50526,7 @@ static JSValue js_operators_updateBigIntOperators(JSContext *ctx, JSValueConst t
     const JSOverloadableOperatorEnum ops[2] = { JS_OVOP_DIV, JS_OVOP_POW };
     JSOverloadableOperatorEnum op;
     int i;
-    
+
     opset_obj = JS_GetProperty(ctx, ctx->class_proto[JS_CLASS_BIG_INT],
                                JS_ATOM_Symbol_operatorSet);
     if (JS_IsException(opset_obj))
@@ -50656,10 +50656,10 @@ static JSValue JS_ToBigIntCtorFree(JSContext *ctx, JSValue val)
     case JS_TAG_FLOAT64:
 #ifdef CONFIG_BIGNUM
     case JS_TAG_BIG_FLOAT:
-#endif        
+#endif
         {
             bf_t *a, a_s;
-            
+
             a = JS_ToBigFloat(ctx, &a_s, val);
             if (!a) {
                 JS_FreeValue(ctx, val);
@@ -50700,7 +50700,7 @@ static JSValue JS_ToBigIntCtorFree(JSContext *ctx, JSValue val)
          if (JS_IsException(val))
             break;
         goto redo;
-#endif        
+#endif
     case JS_TAG_STRING:
         val = JS_StringToBigIntErr(ctx, val);
         break;
@@ -50781,7 +50781,7 @@ static JSValue js_bigint_div(JSContext *ctx,
     bf_t a_s, b_s, *a, *b, *r, *q;
     int status;
     JSValue q_val, r_val;
-    
+
     q_val = JS_NewBigInt(ctx);
     if (JS_IsException(q_val))
         return JS_EXCEPTION;
@@ -50832,7 +50832,7 @@ static JSValue js_bigint_sqrt(JSContext *ctx,
     bf_t a_s, *a, *r, *rem;
     int status;
     JSValue r_val, rem_val;
-    
+
     r_val = JS_NewBigInt(ctx);
     if (JS_IsException(r_val))
         return JS_EXCEPTION;
@@ -50911,7 +50911,7 @@ static JSValue js_bigint_asUintN(JSContext *ctx,
     uint64_t bits;
     bf_t a_s, *a = &a_s, *r, mask_s, *mask = &mask_s;
     JSValue res;
-    
+
     if (JS_ToIndex(ctx, &bits, argv[0]))
         return JS_EXCEPTION;
     res = JS_NewBigInt(ctx);
@@ -50961,7 +50961,7 @@ static const JSCFunctionListEntry js_bigint_funcs[] = {
     JS_CFUNC_MAGIC_DEF("sqrtrem", 1, js_bigint_sqrt, 1 ),
     JS_CFUNC_MAGIC_DEF("floorLog2", 1, js_bigint_op1, 0 ),
     JS_CFUNC_MAGIC_DEF("ctz", 1, js_bigint_op1, 1 ),
-#endif    
+#endif
 };
 
 static const JSCFunctionListEntry js_bigint_proto_funcs[] = {
@@ -51407,7 +51407,7 @@ static JSValue js_bigfloat_isFinite(JSContext *ctx, JSValueConst this_val,
 {
     JSValueConst val = argv[0];
     JSBigFloat *p;
-    
+
     if (JS_VALUE_GET_NORM_TAG(val) != JS_TAG_BIG_FLOAT)
         return JS_FALSE;
     p = JS_VALUE_GET_PTR(val);
@@ -51419,7 +51419,7 @@ static JSValue js_bigfloat_isNaN(JSContext *ctx, JSValueConst this_val,
 {
     JSValueConst val = argv[0];
     JSBigFloat *p;
-    
+
     if (JS_VALUE_GET_NORM_TAG(val) != JS_TAG_BIG_FLOAT)
         return JS_FALSE;
     p = JS_VALUE_GET_PTR(val);
@@ -51883,7 +51883,7 @@ void JS_AddIntrinsicBigFloat(JSContext *ctx)
 {
     JSRuntime *rt = ctx->rt;
     JSValueConst obj1;
-    
+
     rt->bigfloat_ops.to_string = js_bigfloat_to_string;
     rt->bigfloat_ops.from_string = js_string_to_bigfloat;
     rt->bigfloat_ops.unary_arith = js_unary_arith_bigfloat;
@@ -51891,7 +51891,7 @@ void JS_AddIntrinsicBigFloat(JSContext *ctx)
     rt->bigfloat_ops.compare = js_compare_bigfloat;
     rt->bigfloat_ops.mul_pow10_to_float64 = js_mul_pow10_to_float64;
     rt->bigfloat_ops.mul_pow10 = js_mul_pow10;
-    
+
     ctx->class_proto[JS_CLASS_BIG_FLOAT] = JS_NewObject(ctx);
     JS_SetPropertyFunctionList(ctx, ctx->class_proto[JS_CLASS_BIG_FLOAT],
                                js_bigfloat_proto_funcs,
@@ -52067,7 +52067,7 @@ static int js_bigdecimal_get_rnd_mode(JSContext *ctx, JSValueConst obj)
     const char *str;
     size_t size;
     int rnd_mode;
-    
+
     str = JS_ToCStringLen(ctx, &size, obj);
     if (!str)
         return -1;
@@ -52107,7 +52107,7 @@ static int js_bigdecimal_get_env(JSContext *ctx, BigDecimalEnv *fe,
     int64_t val;
     BOOL has_prec;
     int rnd_mode;
-    
+
     if (!JS_IsObject(obj)) {
         JS_ThrowTypeErrorNotAnObject(ctx);
         return -1;
@@ -52120,7 +52120,7 @@ static int js_bigdecimal_get_env(JSContext *ctx, BigDecimalEnv *fe,
     if (rnd_mode < 0)
         return -1;
     fe->flags = rnd_mode;
-    
+
     prop = JS_GetProperty(ctx, obj, JS_ATOM_maximumSignificantDigits);
     if (JS_IsException(prop))
         return -1;
@@ -52175,7 +52175,7 @@ static JSValue js_bigdecimal_fop(JSContext *ctx, JSValueConst this_val,
         op_count = 1;
     else
         op_count = 2;
-    
+
     op1 = JS_ToNumeric(ctx, argv[0]);
     if (JS_IsException(op1))
         return op1;
@@ -52806,7 +52806,7 @@ static void js_array_buffer_finalizer(JSRuntime *rt, JSValue val)
     JSObject *p = JS_VALUE_GET_OBJ(val);
     JSArrayBuffer *abuf = p->u.array_buffer;
     struct list_head *el, *el1;
-    
+
     if (abuf) {
         /* The ArrayBuffer finalizer may be called before the typed
            array finalizers using it, so abuf->array_list is not
@@ -52814,7 +52814,7 @@ static void js_array_buffer_finalizer(JSRuntime *rt, JSValue val)
         list_for_each_safe(el, el1, &abuf->array_list) {
             JSTypedArray *ta;
             JSObject *p1;
-            
+
             ta = list_entry(el, JSTypedArray, link);
             ta->link.prev = NULL;
             ta->link.next = NULL;
@@ -53159,7 +53159,7 @@ JSValue JS_GetTypedArrayBuffer(JSContext *ctx, JSValueConst obj,
     }
     return JS_DupValue(ctx, JS_MKPTR(JS_TAG_OBJECT, ta->buffer));
 }
-                               
+
 static JSValue js_typed_array_get_toStringTag(JSContext *ctx,
                                               JSValueConst this_val)
 {
@@ -53638,7 +53638,7 @@ static JSValue js_typed_array_fill(JSContext *ctx, JSValueConst this_val,
 
     if (typed_array_is_detached(ctx, p))
         return JS_ThrowTypeErrorDetachedArrayBuffer(ctx);
-    
+
     shift = typed_array_size_log2(p->class_id);
     switch(shift) {
     case 0:
@@ -53790,7 +53790,7 @@ static JSValue js_typed_array_indexOf(JSContext *ctx, JSValueConst this_val,
             res = 0;
         goto done;
     }
-    
+
     is_bigint = 0;
     is_int = 0; /* avoid warning */
     v64 = 0; /* avoid warning */
@@ -53806,7 +53806,7 @@ static JSValue js_typed_array_indexOf(JSContext *ctx, JSValueConst this_val,
         is_int = (v64 == d);
     } else if (tag == JS_TAG_BIG_INT) {
         JSBigFloat *p1 = JS_VALUE_GET_PTR(argv[0]);
-        
+
         if (p->class_id == JS_CLASS_BIG_INT64_ARRAY) {
             if (bf_get_int64(&v64, &p1->num, 0) != 0)
                 goto done;
@@ -54450,7 +54450,7 @@ static JSValue js_typed_array_sort(JSContext *ctx, JSValueConst this_val,
             uint32_t *array_idx;
             void *array_tmp;
             size_t i, j;
-            
+
             /* XXX: a stable sort would use less memory */
             array_idx = js_malloc(ctx, len * sizeof(array_idx[0]));
             if (!array_idx)
@@ -55255,7 +55255,7 @@ static JSValue js_atomics_op(JSContext *ctx,
    }
 
    switch(op | (size_log2 << 3)) {
-            
+
 #define OP(op_name, func_name)                          \
     case ATOMICS_OP_ ## op_name | (0 << 3):             \
        a = func_name((_Atomic(uint8_t) *)ptr, v);       \
@@ -55269,7 +55269,7 @@ static JSValue js_atomics_op(JSContext *ctx,
     case ATOMICS_OP_ ## op_name | (3 << 3):             \
         a = func_name((_Atomic(uint64_t) *)ptr, v);     \
         break;
-       
+
         OP(ADD, atomic_fetch_add)
         OP(AND, atomic_fetch_and)
         OP(OR, atomic_fetch_or)
@@ -55290,7 +55290,7 @@ static JSValue js_atomics_op(JSContext *ctx,
     case ATOMICS_OP_LOAD | (3 << 3):
         a = atomic_load((_Atomic(uint64_t) *)ptr);
         break;
-        
+
     case ATOMICS_OP_COMPARE_EXCHANGE | (0 << 3):
         {
             uint8_t v1 = v;
@@ -55451,7 +55451,7 @@ static JSValue js_atomics_wait(JSContext *ctx,
     if (size_log2 == 3) {
         if (JS_ToBigInt64(ctx, &v, argv[2]))
             return JS_EXCEPTION;
-    } else {        
+    } else {
         if (JS_ToInt32(ctx, &v32, argv[2]))
             return JS_EXCEPTION;
         v = v32;
diff --git a/lib/quickjs/quickjs.h b/lib/quickjs/quickjs.h
index 64df355f..b2b52ed9 100644
--- a/lib/quickjs/quickjs.h
+++ b/lib/quickjs/quickjs.h
@@ -126,7 +126,7 @@ static inline JS_BOOL JS_VALUE_IS_NAN(JSValue v)
 {
     return 0;
 }
-    
+
 #elif defined(JS_NAN_BOXING)
 
 typedef uint64_t JSValue;
@@ -191,7 +191,7 @@ static inline JS_BOOL JS_VALUE_IS_NAN(JSValue v)
     tag = JS_VALUE_GET_TAG(v);
     return tag == (JS_NAN >> 32);
 }
-    
+
 #else /* !JS_NAN_BOXING */
 
 typedef union JSValueUnion {
@@ -309,7 +309,7 @@ static inline JS_BOOL JS_VALUE_IS_NAN(JSValue v)
 #define JS_EVAL_FLAG_BACKTRACE_BARRIER (1 << 6)
 /* allow top-level await in normal script. JS_Eval() returns a
    promise. Only allowed with JS_EVAL_TYPE_GLOBAL */
-#define JS_EVAL_FLAG_ASYNC (1 << 7) 
+#define JS_EVAL_FLAG_ASYNC (1 << 7)
 
 typedef JSValue JSCFunction(JSContext *ctx, JSValueConst this_val, int argc, JSValueConst *argv);
 typedef JSValue JSCFunctionMagic(JSContext *ctx, JSValueConst this_val, int argc, JSValueConst *argv, int magic);
@@ -977,7 +977,7 @@ static inline JSValue JS_NewCFunctionMagic(JSContext *ctx, JSCFunctionMagic *fun
 {
     return JS_NewCFunction2(ctx, (JSCFunction *)func, name, length, cproto, magic);
 }
-void JS_SetConstructor(JSContext *ctx, JSValueConst func_obj, 
+void JS_SetConstructor(JSContext *ctx, JSValueConst func_obj,
                        JSValueConst proto);
 
 /* C property definition */