Coverage Report

Created: 2025-08-03 06:38

/src/njs/src/njs_utf8.h
Line
Count
Source (jump to first uncovered line)
1
2
/*
3
 * Copyright (C) Igor Sysoev
4
 * Copyright (C) NGINX, Inc.
5
 */
6
7
#ifndef _NJS_UTF8_H_INCLUDED_
8
#define _NJS_UTF8_H_INCLUDED_
9
10
11
NJS_EXPORT uint32_t njs_utf8_decode(njs_unicode_decode_t *ctx,
12
    const u_char **data, const u_char *end);
13
NJS_EXPORT u_char *njs_utf8_encode(u_char *p, uint32_t u);
14
NJS_EXPORT u_char *njs_utf8_stream_encode(njs_unicode_decode_t *ctx,
15
    const u_char *start, const u_char *end, u_char *dst, njs_bool_t last,
16
    njs_bool_t fatal);
17
NJS_EXPORT njs_int_t njs_utf8_casecmp(const u_char *start1,
18
    const u_char *start2, size_t len1, size_t len2);
19
NJS_EXPORT uint32_t njs_utf8_lower_case(const u_char **start,
20
    const u_char *end);
21
NJS_EXPORT uint32_t njs_utf8_upper_case(const u_char **start,
22
    const u_char *end);
23
NJS_EXPORT ssize_t njs_utf8_stream_length(njs_unicode_decode_t *ctx,
24
    const u_char *p, size_t len, njs_bool_t last, njs_bool_t fatal,
25
    size_t *out_size);
26
NJS_EXPORT njs_bool_t njs_utf8_is_valid(const u_char *p, size_t len);
27
28
29
njs_inline uint32_t
30
njs_utf8_consume(njs_unicode_decode_t *ctx, u_char byte)
31
0
{
32
0
    const u_char  *p;
33
34
0
    p = &byte;
35
36
0
    return njs_utf8_decode(ctx, &p, p + 1);
37
0
}
Unexecuted instantiation: njs_shell.c:njs_utf8_consume
Unexecuted instantiation: njs_arr.c:njs_utf8_consume
Unexecuted instantiation: njs_rbtree.c:njs_utf8_consume
Unexecuted instantiation: njs_mp.c:njs_utf8_consume
Unexecuted instantiation: njs_sprintf.c:njs_utf8_consume
Unexecuted instantiation: njs_value.c:njs_utf8_consume
Unexecuted instantiation: njs_atom.c:njs_utf8_consume
Unexecuted instantiation: njs_vm.c:njs_utf8_consume
Unexecuted instantiation: njs_vmcode.c:njs_utf8_consume
Unexecuted instantiation: njs_parser.c:njs_utf8_consume
Unexecuted instantiation: njs_variable.c:njs_utf8_consume
Unexecuted instantiation: njs_scope.c:njs_utf8_consume
Unexecuted instantiation: njs_generator.c:njs_utf8_consume
Unexecuted instantiation: njs_disassembler.c:njs_utf8_consume
Unexecuted instantiation: njs_module.c:njs_utf8_consume
Unexecuted instantiation: njs_extern.c:njs_utf8_consume
Unexecuted instantiation: njs_number.c:njs_utf8_consume
Unexecuted instantiation: njs_symbol.c:njs_utf8_consume
Unexecuted instantiation: njs_string.c:njs_utf8_consume
Unexecuted instantiation: njs_object.c:njs_utf8_consume
Unexecuted instantiation: njs_object_prop.c:njs_utf8_consume
Unexecuted instantiation: njs_array.c:njs_utf8_consume
Unexecuted instantiation: njs_json.c:njs_utf8_consume
Unexecuted instantiation: njs_function.c:njs_utf8_consume
Unexecuted instantiation: njs_regexp.c:njs_utf8_consume
Unexecuted instantiation: njs_date.c:njs_utf8_consume
Unexecuted instantiation: njs_error.c:njs_utf8_consume
Unexecuted instantiation: njs_array_buffer.c:njs_utf8_consume
Unexecuted instantiation: njs_typed_array.c:njs_utf8_consume
Unexecuted instantiation: njs_promise.c:njs_utf8_consume
Unexecuted instantiation: njs_iterator.c:njs_utf8_consume
Unexecuted instantiation: njs_async.c:njs_utf8_consume
Unexecuted instantiation: njs_builtin.c:njs_utf8_consume
Unexecuted instantiation: njs_regex.c:njs_utf8_consume
Unexecuted instantiation: njs_buffer.c:njs_utf8_consume
Unexecuted instantiation: njs_modules.c:njs_utf8_consume
Unexecuted instantiation: njs_dtoa.c:njs_utf8_consume
Unexecuted instantiation: njs_dtoa_fixed.c:njs_utf8_consume
Unexecuted instantiation: njs_strtod.c:njs_utf8_consume
Unexecuted instantiation: njs_djb_hash.c:njs_utf8_consume
Unexecuted instantiation: njs_utf8.c:njs_utf8_consume
Unexecuted instantiation: njs_utf16.c:njs_utf8_consume
Unexecuted instantiation: njs_flathsh.c:njs_utf8_consume
Unexecuted instantiation: njs_trace.c:njs_utf8_consume
Unexecuted instantiation: njs_malloc.c:njs_utf8_consume
Unexecuted instantiation: njs_utils.c:njs_utf8_consume
Unexecuted instantiation: njs_chb.c:njs_utf8_consume
Unexecuted instantiation: njs_lexer.c:njs_utf8_consume
Unexecuted instantiation: njs_boolean.c:njs_utf8_consume
Unexecuted instantiation: njs_math.c:njs_utf8_consume
Unexecuted instantiation: njs_encoding.c:njs_utf8_consume
Unexecuted instantiation: njs_crypto_module.c:njs_utf8_consume
Unexecuted instantiation: njs_webcrypto_module.c:njs_utf8_consume
Unexecuted instantiation: njs_fs_module.c:njs_utf8_consume
Unexecuted instantiation: njs_query_string_module.c:njs_utf8_consume
Unexecuted instantiation: njs_diyfp.c:njs_utf8_consume
Unexecuted instantiation: njs_str.c:njs_utf8_consume
Unexecuted instantiation: njs_random.c:njs_utf8_consume
38
39
40
/*
41
 * njs_utf8_next() and njs_utf8_prev() expect a valid UTF-8 string.
42
 *
43
 * The leading UTF-8 byte is either 0xxxxxxx or 11xxxxxx.
44
 * The continuation UTF-8 bytes are 10xxxxxx.
45
 */
46
47
njs_inline const u_char *
48
njs_utf8_next(const u_char *p, const u_char *end)
49
2.84G
{
50
2.84G
    u_char  c;
51
52
2.84G
    c = *p++;
53
54
2.84G
    if ((c & 0x80) != 0) {
55
56
823M
        if (njs_slow_path(p >= end)) {
57
1.90k
            return p;
58
1.90k
        }
59
60
2.46G
        do {
61
2.46G
            c = *p;
62
63
2.46G
            if ((c & 0xC0) != 0x80) {
64
823M
                return p;
65
823M
            }
66
67
1.63G
            p++;
68
69
1.63G
        } while (p < end);
70
823M
    }
71
72
2.02G
    return p;
73
2.84G
}
Unexecuted instantiation: njs_shell.c:njs_utf8_next
Unexecuted instantiation: njs_arr.c:njs_utf8_next
Unexecuted instantiation: njs_rbtree.c:njs_utf8_next
Unexecuted instantiation: njs_mp.c:njs_utf8_next
Unexecuted instantiation: njs_sprintf.c:njs_utf8_next
Unexecuted instantiation: njs_value.c:njs_utf8_next
Unexecuted instantiation: njs_atom.c:njs_utf8_next
Unexecuted instantiation: njs_vm.c:njs_utf8_next
Unexecuted instantiation: njs_vmcode.c:njs_utf8_next
Unexecuted instantiation: njs_parser.c:njs_utf8_next
Unexecuted instantiation: njs_variable.c:njs_utf8_next
Unexecuted instantiation: njs_scope.c:njs_utf8_next
Unexecuted instantiation: njs_generator.c:njs_utf8_next
Unexecuted instantiation: njs_disassembler.c:njs_utf8_next
Unexecuted instantiation: njs_module.c:njs_utf8_next
Unexecuted instantiation: njs_extern.c:njs_utf8_next
Unexecuted instantiation: njs_number.c:njs_utf8_next
Unexecuted instantiation: njs_symbol.c:njs_utf8_next
njs_string.c:njs_utf8_next
Line
Count
Source
49
2.84G
{
50
2.84G
    u_char  c;
51
52
2.84G
    c = *p++;
53
54
2.84G
    if ((c & 0x80) != 0) {
55
56
823M
        if (njs_slow_path(p >= end)) {
57
1.90k
            return p;
58
1.90k
        }
59
60
2.46G
        do {
61
2.46G
            c = *p;
62
63
2.46G
            if ((c & 0xC0) != 0x80) {
64
823M
                return p;
65
823M
            }
66
67
1.63G
            p++;
68
69
1.63G
        } while (p < end);
70
823M
    }
71
72
2.02G
    return p;
73
2.84G
}
Unexecuted instantiation: njs_object.c:njs_utf8_next
Unexecuted instantiation: njs_object_prop.c:njs_utf8_next
Unexecuted instantiation: njs_array.c:njs_utf8_next
Unexecuted instantiation: njs_json.c:njs_utf8_next
Unexecuted instantiation: njs_function.c:njs_utf8_next
Unexecuted instantiation: njs_regexp.c:njs_utf8_next
Unexecuted instantiation: njs_date.c:njs_utf8_next
Unexecuted instantiation: njs_error.c:njs_utf8_next
Unexecuted instantiation: njs_array_buffer.c:njs_utf8_next
Unexecuted instantiation: njs_typed_array.c:njs_utf8_next
Unexecuted instantiation: njs_promise.c:njs_utf8_next
njs_iterator.c:njs_utf8_next
Line
Count
Source
49
11.3k
{
50
11.3k
    u_char  c;
51
52
11.3k
    c = *p++;
53
54
11.3k
    if ((c & 0x80) != 0) {
55
56
2.59k
        if (njs_slow_path(p >= end)) {
57
0
            return p;
58
0
        }
59
60
7.52k
        do {
61
7.52k
            c = *p;
62
63
7.52k
            if ((c & 0xC0) != 0x80) {
64
2.33k
                return p;
65
2.33k
            }
66
67
5.19k
            p++;
68
69
5.19k
        } while (p < end);
70
2.59k
    }
71
72
9.02k
    return p;
73
11.3k
}
Unexecuted instantiation: njs_async.c:njs_utf8_next
Unexecuted instantiation: njs_builtin.c:njs_utf8_next
Unexecuted instantiation: njs_regex.c:njs_utf8_next
Unexecuted instantiation: njs_buffer.c:njs_utf8_next
Unexecuted instantiation: njs_modules.c:njs_utf8_next
Unexecuted instantiation: njs_dtoa.c:njs_utf8_next
Unexecuted instantiation: njs_dtoa_fixed.c:njs_utf8_next
Unexecuted instantiation: njs_strtod.c:njs_utf8_next
Unexecuted instantiation: njs_djb_hash.c:njs_utf8_next
Unexecuted instantiation: njs_utf8.c:njs_utf8_next
Unexecuted instantiation: njs_utf16.c:njs_utf8_next
Unexecuted instantiation: njs_flathsh.c:njs_utf8_next
Unexecuted instantiation: njs_trace.c:njs_utf8_next
Unexecuted instantiation: njs_malloc.c:njs_utf8_next
Unexecuted instantiation: njs_utils.c:njs_utf8_next
Unexecuted instantiation: njs_chb.c:njs_utf8_next
Unexecuted instantiation: njs_lexer.c:njs_utf8_next
Unexecuted instantiation: njs_boolean.c:njs_utf8_next
Unexecuted instantiation: njs_math.c:njs_utf8_next
Unexecuted instantiation: njs_encoding.c:njs_utf8_next
Unexecuted instantiation: njs_crypto_module.c:njs_utf8_next
Unexecuted instantiation: njs_webcrypto_module.c:njs_utf8_next
Unexecuted instantiation: njs_fs_module.c:njs_utf8_next
Unexecuted instantiation: njs_query_string_module.c:njs_utf8_next
Unexecuted instantiation: njs_diyfp.c:njs_utf8_next
Unexecuted instantiation: njs_str.c:njs_utf8_next
Unexecuted instantiation: njs_random.c:njs_utf8_next
74
75
76
njs_inline const u_char *
77
njs_utf8_prev(const u_char *p, const u_char *start)
78
54.5M
{
79
54.5M
   u_char  c;
80
81
111M
   do {
82
111M
       p--;
83
84
111M
       if (njs_slow_path(p < start)) {
85
62.5k
           break;
86
62.5k
       }
87
88
111M
       c = *p;
89
90
111M
   } while ((c & 0xC0) == 0x80);
91
92
0
   return p;
93
54.5M
}
Unexecuted instantiation: njs_shell.c:njs_utf8_prev
Unexecuted instantiation: njs_arr.c:njs_utf8_prev
Unexecuted instantiation: njs_rbtree.c:njs_utf8_prev
Unexecuted instantiation: njs_mp.c:njs_utf8_prev
Unexecuted instantiation: njs_sprintf.c:njs_utf8_prev
Unexecuted instantiation: njs_value.c:njs_utf8_prev
Unexecuted instantiation: njs_atom.c:njs_utf8_prev
Unexecuted instantiation: njs_vm.c:njs_utf8_prev
Unexecuted instantiation: njs_vmcode.c:njs_utf8_prev
Unexecuted instantiation: njs_parser.c:njs_utf8_prev
Unexecuted instantiation: njs_variable.c:njs_utf8_prev
Unexecuted instantiation: njs_scope.c:njs_utf8_prev
Unexecuted instantiation: njs_generator.c:njs_utf8_prev
Unexecuted instantiation: njs_disassembler.c:njs_utf8_prev
Unexecuted instantiation: njs_module.c:njs_utf8_prev
Unexecuted instantiation: njs_extern.c:njs_utf8_prev
Unexecuted instantiation: njs_number.c:njs_utf8_prev
Unexecuted instantiation: njs_symbol.c:njs_utf8_prev
njs_string.c:njs_utf8_prev
Line
Count
Source
78
54.5M
{
79
54.5M
   u_char  c;
80
81
111M
   do {
82
111M
       p--;
83
84
111M
       if (njs_slow_path(p < start)) {
85
62.5k
           break;
86
62.5k
       }
87
88
111M
       c = *p;
89
90
111M
   } while ((c & 0xC0) == 0x80);
91
92
0
   return p;
93
54.5M
}
Unexecuted instantiation: njs_object.c:njs_utf8_prev
Unexecuted instantiation: njs_object_prop.c:njs_utf8_prev
Unexecuted instantiation: njs_array.c:njs_utf8_prev
Unexecuted instantiation: njs_json.c:njs_utf8_prev
Unexecuted instantiation: njs_function.c:njs_utf8_prev
Unexecuted instantiation: njs_regexp.c:njs_utf8_prev
Unexecuted instantiation: njs_date.c:njs_utf8_prev
Unexecuted instantiation: njs_error.c:njs_utf8_prev
Unexecuted instantiation: njs_array_buffer.c:njs_utf8_prev
Unexecuted instantiation: njs_typed_array.c:njs_utf8_prev
Unexecuted instantiation: njs_promise.c:njs_utf8_prev
Unexecuted instantiation: njs_iterator.c:njs_utf8_prev
Unexecuted instantiation: njs_async.c:njs_utf8_prev
Unexecuted instantiation: njs_builtin.c:njs_utf8_prev
Unexecuted instantiation: njs_regex.c:njs_utf8_prev
Unexecuted instantiation: njs_buffer.c:njs_utf8_prev
Unexecuted instantiation: njs_modules.c:njs_utf8_prev
Unexecuted instantiation: njs_dtoa.c:njs_utf8_prev
Unexecuted instantiation: njs_dtoa_fixed.c:njs_utf8_prev
Unexecuted instantiation: njs_strtod.c:njs_utf8_prev
Unexecuted instantiation: njs_djb_hash.c:njs_utf8_prev
Unexecuted instantiation: njs_utf8.c:njs_utf8_prev
Unexecuted instantiation: njs_utf16.c:njs_utf8_prev
Unexecuted instantiation: njs_flathsh.c:njs_utf8_prev
Unexecuted instantiation: njs_trace.c:njs_utf8_prev
Unexecuted instantiation: njs_malloc.c:njs_utf8_prev
Unexecuted instantiation: njs_utils.c:njs_utf8_prev
Unexecuted instantiation: njs_chb.c:njs_utf8_prev
Unexecuted instantiation: njs_lexer.c:njs_utf8_prev
Unexecuted instantiation: njs_boolean.c:njs_utf8_prev
Unexecuted instantiation: njs_math.c:njs_utf8_prev
Unexecuted instantiation: njs_encoding.c:njs_utf8_prev
Unexecuted instantiation: njs_crypto_module.c:njs_utf8_prev
Unexecuted instantiation: njs_webcrypto_module.c:njs_utf8_prev
Unexecuted instantiation: njs_fs_module.c:njs_utf8_prev
Unexecuted instantiation: njs_query_string_module.c:njs_utf8_prev
Unexecuted instantiation: njs_diyfp.c:njs_utf8_prev
Unexecuted instantiation: njs_str.c:njs_utf8_prev
Unexecuted instantiation: njs_random.c:njs_utf8_prev
94
95
96
njs_inline u_char *
97
njs_utf8_copy(u_char *dst, const u_char **src, const u_char *end)
98
7.26M
{
99
7.26M
    u_char        c;
100
7.26M
    const u_char  *p;
101
102
7.26M
    p = *src;
103
7.26M
    c = *p++;
104
7.26M
    *dst++ = c;
105
106
7.26M
    if ((c & 0x80) != 0) {
107
108
5.96M
        do {
109
5.96M
            c = *p;
110
111
5.96M
            if ((c & 0xC0) != 0x80) {
112
1.97M
                break;
113
1.97M
            }
114
115
3.98M
            *dst++ = c;
116
3.98M
            p++;
117
118
3.98M
        } while (p < end);
119
1.99M
    }
120
121
0
    *src = p;
122
7.26M
    return dst;
123
7.26M
}
Unexecuted instantiation: njs_shell.c:njs_utf8_copy
Unexecuted instantiation: njs_arr.c:njs_utf8_copy
Unexecuted instantiation: njs_rbtree.c:njs_utf8_copy
Unexecuted instantiation: njs_mp.c:njs_utf8_copy
Unexecuted instantiation: njs_sprintf.c:njs_utf8_copy
Unexecuted instantiation: njs_value.c:njs_utf8_copy
Unexecuted instantiation: njs_atom.c:njs_utf8_copy
Unexecuted instantiation: njs_vm.c:njs_utf8_copy
Unexecuted instantiation: njs_vmcode.c:njs_utf8_copy
Unexecuted instantiation: njs_parser.c:njs_utf8_copy
Unexecuted instantiation: njs_variable.c:njs_utf8_copy
Unexecuted instantiation: njs_scope.c:njs_utf8_copy
Unexecuted instantiation: njs_generator.c:njs_utf8_copy
Unexecuted instantiation: njs_disassembler.c:njs_utf8_copy
Unexecuted instantiation: njs_module.c:njs_utf8_copy
Unexecuted instantiation: njs_extern.c:njs_utf8_copy
Unexecuted instantiation: njs_number.c:njs_utf8_copy
Unexecuted instantiation: njs_symbol.c:njs_utf8_copy
Unexecuted instantiation: njs_string.c:njs_utf8_copy
Unexecuted instantiation: njs_object.c:njs_utf8_copy
Unexecuted instantiation: njs_object_prop.c:njs_utf8_copy
Unexecuted instantiation: njs_array.c:njs_utf8_copy
njs_json.c:njs_utf8_copy
Line
Count
Source
98
7.26M
{
99
7.26M
    u_char        c;
100
7.26M
    const u_char  *p;
101
102
7.26M
    p = *src;
103
7.26M
    c = *p++;
104
7.26M
    *dst++ = c;
105
106
7.26M
    if ((c & 0x80) != 0) {
107
108
5.96M
        do {
109
5.96M
            c = *p;
110
111
5.96M
            if ((c & 0xC0) != 0x80) {
112
1.97M
                break;
113
1.97M
            }
114
115
3.98M
            *dst++ = c;
116
3.98M
            p++;
117
118
3.98M
        } while (p < end);
119
1.99M
    }
120
121
0
    *src = p;
122
7.26M
    return dst;
123
7.26M
}
Unexecuted instantiation: njs_function.c:njs_utf8_copy
Unexecuted instantiation: njs_regexp.c:njs_utf8_copy
Unexecuted instantiation: njs_date.c:njs_utf8_copy
Unexecuted instantiation: njs_error.c:njs_utf8_copy
Unexecuted instantiation: njs_array_buffer.c:njs_utf8_copy
Unexecuted instantiation: njs_typed_array.c:njs_utf8_copy
Unexecuted instantiation: njs_promise.c:njs_utf8_copy
Unexecuted instantiation: njs_iterator.c:njs_utf8_copy
Unexecuted instantiation: njs_async.c:njs_utf8_copy
Unexecuted instantiation: njs_builtin.c:njs_utf8_copy
Unexecuted instantiation: njs_regex.c:njs_utf8_copy
Unexecuted instantiation: njs_buffer.c:njs_utf8_copy
Unexecuted instantiation: njs_modules.c:njs_utf8_copy
Unexecuted instantiation: njs_dtoa.c:njs_utf8_copy
Unexecuted instantiation: njs_dtoa_fixed.c:njs_utf8_copy
Unexecuted instantiation: njs_strtod.c:njs_utf8_copy
Unexecuted instantiation: njs_djb_hash.c:njs_utf8_copy
Unexecuted instantiation: njs_utf8.c:njs_utf8_copy
Unexecuted instantiation: njs_utf16.c:njs_utf8_copy
Unexecuted instantiation: njs_flathsh.c:njs_utf8_copy
Unexecuted instantiation: njs_trace.c:njs_utf8_copy
Unexecuted instantiation: njs_malloc.c:njs_utf8_copy
Unexecuted instantiation: njs_utils.c:njs_utf8_copy
Unexecuted instantiation: njs_chb.c:njs_utf8_copy
Unexecuted instantiation: njs_lexer.c:njs_utf8_copy
Unexecuted instantiation: njs_boolean.c:njs_utf8_copy
Unexecuted instantiation: njs_math.c:njs_utf8_copy
Unexecuted instantiation: njs_encoding.c:njs_utf8_copy
Unexecuted instantiation: njs_crypto_module.c:njs_utf8_copy
Unexecuted instantiation: njs_webcrypto_module.c:njs_utf8_copy
Unexecuted instantiation: njs_fs_module.c:njs_utf8_copy
Unexecuted instantiation: njs_query_string_module.c:njs_utf8_copy
Unexecuted instantiation: njs_diyfp.c:njs_utf8_copy
Unexecuted instantiation: njs_str.c:njs_utf8_copy
Unexecuted instantiation: njs_random.c:njs_utf8_copy
124
125
126
njs_inline void
127
njs_utf8_decode_init(njs_unicode_decode_t *ctx)
128
151M
{
129
151M
    ctx->need = 0x00;
130
151M
    ctx->lower = 0x00;
131
151M
    ctx->codepoint = 0;
132
151M
}
Unexecuted instantiation: njs_shell.c:njs_utf8_decode_init
Unexecuted instantiation: njs_arr.c:njs_utf8_decode_init
Unexecuted instantiation: njs_rbtree.c:njs_utf8_decode_init
Unexecuted instantiation: njs_mp.c:njs_utf8_decode_init
Unexecuted instantiation: njs_sprintf.c:njs_utf8_decode_init
Unexecuted instantiation: njs_value.c:njs_utf8_decode_init
Unexecuted instantiation: njs_atom.c:njs_utf8_decode_init
Unexecuted instantiation: njs_vm.c:njs_utf8_decode_init
Unexecuted instantiation: njs_vmcode.c:njs_utf8_decode_init
njs_parser.c:njs_utf8_decode_init
Line
Count
Source
128
1.55M
{
129
1.55M
    ctx->need = 0x00;
130
1.55M
    ctx->lower = 0x00;
131
1.55M
    ctx->codepoint = 0;
132
1.55M
}
Unexecuted instantiation: njs_variable.c:njs_utf8_decode_init
Unexecuted instantiation: njs_scope.c:njs_utf8_decode_init
Unexecuted instantiation: njs_generator.c:njs_utf8_decode_init
Unexecuted instantiation: njs_disassembler.c:njs_utf8_decode_init
Unexecuted instantiation: njs_module.c:njs_utf8_decode_init
Unexecuted instantiation: njs_extern.c:njs_utf8_decode_init
Unexecuted instantiation: njs_number.c:njs_utf8_decode_init
Unexecuted instantiation: njs_symbol.c:njs_utf8_decode_init
njs_string.c:njs_utf8_decode_init
Line
Count
Source
128
131M
{
129
131M
    ctx->need = 0x00;
130
131M
    ctx->lower = 0x00;
131
131M
    ctx->codepoint = 0;
132
131M
}
Unexecuted instantiation: njs_object.c:njs_utf8_decode_init
Unexecuted instantiation: njs_object_prop.c:njs_utf8_decode_init
Unexecuted instantiation: njs_array.c:njs_utf8_decode_init
njs_json.c:njs_utf8_decode_init
Line
Count
Source
128
131k
{
129
131k
    ctx->need = 0x00;
130
131k
    ctx->lower = 0x00;
131
131k
    ctx->codepoint = 0;
132
131k
}
Unexecuted instantiation: njs_function.c:njs_utf8_decode_init
njs_regexp.c:njs_utf8_decode_init
Line
Count
Source
128
352k
{
129
352k
    ctx->need = 0x00;
130
352k
    ctx->lower = 0x00;
131
352k
    ctx->codepoint = 0;
132
352k
}
Unexecuted instantiation: njs_date.c:njs_utf8_decode_init
Unexecuted instantiation: njs_error.c:njs_utf8_decode_init
Unexecuted instantiation: njs_array_buffer.c:njs_utf8_decode_init
Unexecuted instantiation: njs_typed_array.c:njs_utf8_decode_init
Unexecuted instantiation: njs_promise.c:njs_utf8_decode_init
Unexecuted instantiation: njs_iterator.c:njs_utf8_decode_init
Unexecuted instantiation: njs_async.c:njs_utf8_decode_init
Unexecuted instantiation: njs_builtin.c:njs_utf8_decode_init
Unexecuted instantiation: njs_regex.c:njs_utf8_decode_init
Unexecuted instantiation: njs_buffer.c:njs_utf8_decode_init
Unexecuted instantiation: njs_modules.c:njs_utf8_decode_init
Unexecuted instantiation: njs_dtoa.c:njs_utf8_decode_init
Unexecuted instantiation: njs_dtoa_fixed.c:njs_utf8_decode_init
Unexecuted instantiation: njs_strtod.c:njs_utf8_decode_init
Unexecuted instantiation: njs_djb_hash.c:njs_utf8_decode_init
njs_utf8.c:njs_utf8_decode_init
Line
Count
Source
128
394k
{
129
394k
    ctx->need = 0x00;
130
394k
    ctx->lower = 0x00;
131
394k
    ctx->codepoint = 0;
132
394k
}
Unexecuted instantiation: njs_utf16.c:njs_utf8_decode_init
Unexecuted instantiation: njs_flathsh.c:njs_utf8_decode_init
Unexecuted instantiation: njs_trace.c:njs_utf8_decode_init
Unexecuted instantiation: njs_malloc.c:njs_utf8_decode_init
Unexecuted instantiation: njs_utils.c:njs_utf8_decode_init
Unexecuted instantiation: njs_chb.c:njs_utf8_decode_init
njs_lexer.c:njs_utf8_decode_init
Line
Count
Source
128
17.5M
{
129
17.5M
    ctx->need = 0x00;
130
17.5M
    ctx->lower = 0x00;
131
17.5M
    ctx->codepoint = 0;
132
17.5M
}
Unexecuted instantiation: njs_boolean.c:njs_utf8_decode_init
Unexecuted instantiation: njs_math.c:njs_utf8_decode_init
Unexecuted instantiation: njs_encoding.c:njs_utf8_decode_init
Unexecuted instantiation: njs_crypto_module.c:njs_utf8_decode_init
Unexecuted instantiation: njs_webcrypto_module.c:njs_utf8_decode_init
Unexecuted instantiation: njs_fs_module.c:njs_utf8_decode_init
Unexecuted instantiation: njs_query_string_module.c:njs_utf8_decode_init
Unexecuted instantiation: njs_diyfp.c:njs_utf8_decode_init
Unexecuted instantiation: njs_str.c:njs_utf8_decode_init
Unexecuted instantiation: njs_random.c:njs_utf8_decode_init
133
134
135
njs_inline ssize_t
136
njs_utf8_length(const u_char *p, size_t len)
137
95.3M
{
138
95.3M
    njs_unicode_decode_t  ctx;
139
140
95.3M
    njs_utf8_decode_init(&ctx);
141
142
95.3M
    return njs_utf8_stream_length(&ctx, p, len, 1, 1, NULL);
143
95.3M
}
Unexecuted instantiation: njs_shell.c:njs_utf8_length
Unexecuted instantiation: njs_arr.c:njs_utf8_length
Unexecuted instantiation: njs_rbtree.c:njs_utf8_length
Unexecuted instantiation: njs_mp.c:njs_utf8_length
Unexecuted instantiation: njs_sprintf.c:njs_utf8_length
Unexecuted instantiation: njs_value.c:njs_utf8_length
Unexecuted instantiation: njs_atom.c:njs_utf8_length
Unexecuted instantiation: njs_vm.c:njs_utf8_length
Unexecuted instantiation: njs_vmcode.c:njs_utf8_length
Unexecuted instantiation: njs_parser.c:njs_utf8_length
Unexecuted instantiation: njs_variable.c:njs_utf8_length
Unexecuted instantiation: njs_scope.c:njs_utf8_length
Unexecuted instantiation: njs_generator.c:njs_utf8_length
Unexecuted instantiation: njs_disassembler.c:njs_utf8_length
Unexecuted instantiation: njs_module.c:njs_utf8_length
Unexecuted instantiation: njs_extern.c:njs_utf8_length
Unexecuted instantiation: njs_number.c:njs_utf8_length
Unexecuted instantiation: njs_symbol.c:njs_utf8_length
njs_string.c:njs_utf8_length
Line
Count
Source
137
94.8M
{
138
94.8M
    njs_unicode_decode_t  ctx;
139
140
94.8M
    njs_utf8_decode_init(&ctx);
141
142
94.8M
    return njs_utf8_stream_length(&ctx, p, len, 1, 1, NULL);
143
94.8M
}
Unexecuted instantiation: njs_object.c:njs_utf8_length
Unexecuted instantiation: njs_object_prop.c:njs_utf8_length
Unexecuted instantiation: njs_array.c:njs_utf8_length
njs_json.c:njs_utf8_length
Line
Count
Source
137
131k
{
138
131k
    njs_unicode_decode_t  ctx;
139
140
131k
    njs_utf8_decode_init(&ctx);
141
142
131k
    return njs_utf8_stream_length(&ctx, p, len, 1, 1, NULL);
143
131k
}
Unexecuted instantiation: njs_function.c:njs_utf8_length
njs_regexp.c:njs_utf8_length
Line
Count
Source
137
351k
{
138
351k
    njs_unicode_decode_t  ctx;
139
140
351k
    njs_utf8_decode_init(&ctx);
141
142
351k
    return njs_utf8_stream_length(&ctx, p, len, 1, 1, NULL);
143
351k
}
Unexecuted instantiation: njs_date.c:njs_utf8_length
Unexecuted instantiation: njs_error.c:njs_utf8_length
Unexecuted instantiation: njs_array_buffer.c:njs_utf8_length
Unexecuted instantiation: njs_typed_array.c:njs_utf8_length
Unexecuted instantiation: njs_promise.c:njs_utf8_length
Unexecuted instantiation: njs_iterator.c:njs_utf8_length
Unexecuted instantiation: njs_async.c:njs_utf8_length
Unexecuted instantiation: njs_builtin.c:njs_utf8_length
Unexecuted instantiation: njs_regex.c:njs_utf8_length
Unexecuted instantiation: njs_buffer.c:njs_utf8_length
Unexecuted instantiation: njs_modules.c:njs_utf8_length
Unexecuted instantiation: njs_dtoa.c:njs_utf8_length
Unexecuted instantiation: njs_dtoa_fixed.c:njs_utf8_length
Unexecuted instantiation: njs_strtod.c:njs_utf8_length
Unexecuted instantiation: njs_djb_hash.c:njs_utf8_length
Unexecuted instantiation: njs_utf8.c:njs_utf8_length
Unexecuted instantiation: njs_utf16.c:njs_utf8_length
Unexecuted instantiation: njs_flathsh.c:njs_utf8_length
Unexecuted instantiation: njs_trace.c:njs_utf8_length
Unexecuted instantiation: njs_malloc.c:njs_utf8_length
Unexecuted instantiation: njs_utils.c:njs_utf8_length
Unexecuted instantiation: njs_chb.c:njs_utf8_length
Unexecuted instantiation: njs_lexer.c:njs_utf8_length
Unexecuted instantiation: njs_boolean.c:njs_utf8_length
Unexecuted instantiation: njs_math.c:njs_utf8_length
Unexecuted instantiation: njs_encoding.c:njs_utf8_length
Unexecuted instantiation: njs_crypto_module.c:njs_utf8_length
Unexecuted instantiation: njs_webcrypto_module.c:njs_utf8_length
Unexecuted instantiation: njs_fs_module.c:njs_utf8_length
Unexecuted instantiation: njs_query_string_module.c:njs_utf8_length
Unexecuted instantiation: njs_diyfp.c:njs_utf8_length
Unexecuted instantiation: njs_str.c:njs_utf8_length
Unexecuted instantiation: njs_random.c:njs_utf8_length
144
145
146
njs_inline size_t
147
njs_utf8_bom(const u_char *start, const u_char *end)
148
0
{
149
0
    if (start + 3 > end) {
150
0
        return 0;
151
0
    }
152
153
0
    if (start[0] == 0xEF && start[1] == 0xBB && start[2] == 0xBF) {
154
0
        return 3;
155
0
    }
156
157
0
    return 0;
158
0
}
Unexecuted instantiation: njs_shell.c:njs_utf8_bom
Unexecuted instantiation: njs_arr.c:njs_utf8_bom
Unexecuted instantiation: njs_rbtree.c:njs_utf8_bom
Unexecuted instantiation: njs_mp.c:njs_utf8_bom
Unexecuted instantiation: njs_sprintf.c:njs_utf8_bom
Unexecuted instantiation: njs_value.c:njs_utf8_bom
Unexecuted instantiation: njs_atom.c:njs_utf8_bom
Unexecuted instantiation: njs_vm.c:njs_utf8_bom
Unexecuted instantiation: njs_vmcode.c:njs_utf8_bom
Unexecuted instantiation: njs_parser.c:njs_utf8_bom
Unexecuted instantiation: njs_variable.c:njs_utf8_bom
Unexecuted instantiation: njs_scope.c:njs_utf8_bom
Unexecuted instantiation: njs_generator.c:njs_utf8_bom
Unexecuted instantiation: njs_disassembler.c:njs_utf8_bom
Unexecuted instantiation: njs_module.c:njs_utf8_bom
Unexecuted instantiation: njs_extern.c:njs_utf8_bom
Unexecuted instantiation: njs_number.c:njs_utf8_bom
Unexecuted instantiation: njs_symbol.c:njs_utf8_bom
Unexecuted instantiation: njs_string.c:njs_utf8_bom
Unexecuted instantiation: njs_object.c:njs_utf8_bom
Unexecuted instantiation: njs_object_prop.c:njs_utf8_bom
Unexecuted instantiation: njs_array.c:njs_utf8_bom
Unexecuted instantiation: njs_json.c:njs_utf8_bom
Unexecuted instantiation: njs_function.c:njs_utf8_bom
Unexecuted instantiation: njs_regexp.c:njs_utf8_bom
Unexecuted instantiation: njs_date.c:njs_utf8_bom
Unexecuted instantiation: njs_error.c:njs_utf8_bom
Unexecuted instantiation: njs_array_buffer.c:njs_utf8_bom
Unexecuted instantiation: njs_typed_array.c:njs_utf8_bom
Unexecuted instantiation: njs_promise.c:njs_utf8_bom
Unexecuted instantiation: njs_iterator.c:njs_utf8_bom
Unexecuted instantiation: njs_async.c:njs_utf8_bom
Unexecuted instantiation: njs_builtin.c:njs_utf8_bom
Unexecuted instantiation: njs_regex.c:njs_utf8_bom
Unexecuted instantiation: njs_buffer.c:njs_utf8_bom
Unexecuted instantiation: njs_modules.c:njs_utf8_bom
Unexecuted instantiation: njs_dtoa.c:njs_utf8_bom
Unexecuted instantiation: njs_dtoa_fixed.c:njs_utf8_bom
Unexecuted instantiation: njs_strtod.c:njs_utf8_bom
Unexecuted instantiation: njs_djb_hash.c:njs_utf8_bom
Unexecuted instantiation: njs_utf8.c:njs_utf8_bom
Unexecuted instantiation: njs_utf16.c:njs_utf8_bom
Unexecuted instantiation: njs_flathsh.c:njs_utf8_bom
Unexecuted instantiation: njs_trace.c:njs_utf8_bom
Unexecuted instantiation: njs_malloc.c:njs_utf8_bom
Unexecuted instantiation: njs_utils.c:njs_utf8_bom
Unexecuted instantiation: njs_chb.c:njs_utf8_bom
Unexecuted instantiation: njs_lexer.c:njs_utf8_bom
Unexecuted instantiation: njs_boolean.c:njs_utf8_bom
Unexecuted instantiation: njs_math.c:njs_utf8_bom
Unexecuted instantiation: njs_encoding.c:njs_utf8_bom
Unexecuted instantiation: njs_crypto_module.c:njs_utf8_bom
Unexecuted instantiation: njs_webcrypto_module.c:njs_utf8_bom
Unexecuted instantiation: njs_fs_module.c:njs_utf8_bom
Unexecuted instantiation: njs_query_string_module.c:njs_utf8_bom
Unexecuted instantiation: njs_diyfp.c:njs_utf8_bom
Unexecuted instantiation: njs_str.c:njs_utf8_bom
Unexecuted instantiation: njs_random.c:njs_utf8_bom
159
160
161
njs_inline size_t
162
njs_utf8_size(uint32_t cp)
163
721M
{
164
721M
    return (cp < 0x80) ? 1 : ((cp < 0x0800) ? 2 : ((cp < 0x10000) ? 3 : 4));
165
721M
}
Unexecuted instantiation: njs_shell.c:njs_utf8_size
Unexecuted instantiation: njs_arr.c:njs_utf8_size
Unexecuted instantiation: njs_rbtree.c:njs_utf8_size
Unexecuted instantiation: njs_mp.c:njs_utf8_size
Unexecuted instantiation: njs_sprintf.c:njs_utf8_size
Unexecuted instantiation: njs_value.c:njs_utf8_size
Unexecuted instantiation: njs_atom.c:njs_utf8_size
Unexecuted instantiation: njs_vm.c:njs_utf8_size
Unexecuted instantiation: njs_vmcode.c:njs_utf8_size
njs_parser.c:njs_utf8_size
Line
Count
Source
163
809k
{
164
809k
    return (cp < 0x80) ? 1 : ((cp < 0x0800) ? 2 : ((cp < 0x10000) ? 3 : 4));
165
809k
}
Unexecuted instantiation: njs_variable.c:njs_utf8_size
Unexecuted instantiation: njs_scope.c:njs_utf8_size
Unexecuted instantiation: njs_generator.c:njs_utf8_size
Unexecuted instantiation: njs_disassembler.c:njs_utf8_size
Unexecuted instantiation: njs_module.c:njs_utf8_size
Unexecuted instantiation: njs_extern.c:njs_utf8_size
Unexecuted instantiation: njs_number.c:njs_utf8_size
Unexecuted instantiation: njs_symbol.c:njs_utf8_size
njs_string.c:njs_utf8_size
Line
Count
Source
163
34.6M
{
164
34.6M
    return (cp < 0x80) ? 1 : ((cp < 0x0800) ? 2 : ((cp < 0x10000) ? 3 : 4));
165
34.6M
}
Unexecuted instantiation: njs_object.c:njs_utf8_size
Unexecuted instantiation: njs_object_prop.c:njs_utf8_size
Unexecuted instantiation: njs_array.c:njs_utf8_size
Unexecuted instantiation: njs_json.c:njs_utf8_size
Unexecuted instantiation: njs_function.c:njs_utf8_size
Unexecuted instantiation: njs_regexp.c:njs_utf8_size
Unexecuted instantiation: njs_date.c:njs_utf8_size
Unexecuted instantiation: njs_error.c:njs_utf8_size
Unexecuted instantiation: njs_array_buffer.c:njs_utf8_size
Unexecuted instantiation: njs_typed_array.c:njs_utf8_size
Unexecuted instantiation: njs_promise.c:njs_utf8_size
Unexecuted instantiation: njs_iterator.c:njs_utf8_size
Unexecuted instantiation: njs_async.c:njs_utf8_size
Unexecuted instantiation: njs_builtin.c:njs_utf8_size
Unexecuted instantiation: njs_regex.c:njs_utf8_size
Unexecuted instantiation: njs_buffer.c:njs_utf8_size
Unexecuted instantiation: njs_modules.c:njs_utf8_size
Unexecuted instantiation: njs_dtoa.c:njs_utf8_size
Unexecuted instantiation: njs_dtoa_fixed.c:njs_utf8_size
Unexecuted instantiation: njs_strtod.c:njs_utf8_size
Unexecuted instantiation: njs_djb_hash.c:njs_utf8_size
njs_utf8.c:njs_utf8_size
Line
Count
Source
163
686M
{
164
686M
    return (cp < 0x80) ? 1 : ((cp < 0x0800) ? 2 : ((cp < 0x10000) ? 3 : 4));
165
686M
}
Unexecuted instantiation: njs_utf16.c:njs_utf8_size
Unexecuted instantiation: njs_flathsh.c:njs_utf8_size
Unexecuted instantiation: njs_trace.c:njs_utf8_size
Unexecuted instantiation: njs_malloc.c:njs_utf8_size
Unexecuted instantiation: njs_utils.c:njs_utf8_size
Unexecuted instantiation: njs_chb.c:njs_utf8_size
Unexecuted instantiation: njs_lexer.c:njs_utf8_size
Unexecuted instantiation: njs_boolean.c:njs_utf8_size
Unexecuted instantiation: njs_math.c:njs_utf8_size
Unexecuted instantiation: njs_encoding.c:njs_utf8_size
Unexecuted instantiation: njs_crypto_module.c:njs_utf8_size
Unexecuted instantiation: njs_webcrypto_module.c:njs_utf8_size
Unexecuted instantiation: njs_fs_module.c:njs_utf8_size
Unexecuted instantiation: njs_query_string_module.c:njs_utf8_size
Unexecuted instantiation: njs_diyfp.c:njs_utf8_size
Unexecuted instantiation: njs_str.c:njs_utf8_size
Unexecuted instantiation: njs_random.c:njs_utf8_size
166
167
168
njs_inline size_t
169
njs_utf8_size_uint16(uint32_t cp)
170
0
{
171
0
    return ((cp < 0x80) ? 1 : ((cp < 0x0800) ? 2 : 3));
172
0
}
Unexecuted instantiation: njs_shell.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_arr.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_rbtree.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_mp.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_sprintf.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_value.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_atom.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_vm.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_vmcode.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_parser.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_variable.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_scope.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_generator.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_disassembler.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_module.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_extern.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_number.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_symbol.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_string.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_object.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_object_prop.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_array.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_json.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_function.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_regexp.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_date.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_error.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_array_buffer.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_typed_array.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_promise.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_iterator.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_async.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_builtin.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_regex.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_buffer.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_modules.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_dtoa.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_dtoa_fixed.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_strtod.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_djb_hash.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_utf8.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_utf16.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_flathsh.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_trace.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_malloc.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_utils.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_chb.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_lexer.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_boolean.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_math.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_encoding.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_crypto_module.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_webcrypto_module.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_fs_module.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_query_string_module.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_diyfp.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_str.c:njs_utf8_size_uint16
Unexecuted instantiation: njs_random.c:njs_utf8_size_uint16
173
174
175
njs_inline njs_bool_t
176
njs_utf8_is_whitespace(uint32_t c)
177
817k
{
178
817k
    switch (c) {
179
69.0k
    case 0x0009:  /* <TAB>  */
180
71.1k
    case 0x000A:  /* <LF>   */
181
76.6k
    case 0x000B:  /* <VT>   */
182
92.6k
    case 0x000C:  /* <FF>   */
183
188k
    case 0x000D:  /* <CR>   */
184
194k
    case 0x0020:  /* <SP>   */
185
197k
    case 0x00A0:  /* <NBSP> */
186
200k
    case 0x1680:
187
201k
    case 0x2000:
188
203k
    case 0x2001:
189
205k
    case 0x2002:
190
214k
    case 0x2003:
191
216k
    case 0x2004:
192
218k
    case 0x2005:
193
220k
    case 0x2006:
194
225k
    case 0x2007:
195
227k
    case 0x2008:
196
231k
    case 0x2009:
197
233k
    case 0x200A:
198
236k
    case 0x2028:  /* <LS>   */
199
244k
    case 0x2029:  /* <PS>   */
200
250k
    case 0x202F:
201
251k
    case 0x205F:
202
251k
    case 0x3000:
203
254k
    case 0xFEFF:  /* <BOM>  */
204
254k
        return 1;
205
206
562k
    default:
207
562k
        return 0;
208
817k
    }
209
817k
}
Unexecuted instantiation: njs_shell.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_arr.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_rbtree.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_mp.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_sprintf.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_value.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_atom.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_vm.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_vmcode.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_parser.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_variable.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_scope.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_generator.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_disassembler.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_module.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_extern.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_number.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_symbol.c:njs_utf8_is_whitespace
njs_string.c:njs_utf8_is_whitespace
Line
Count
Source
177
781k
{
178
781k
    switch (c) {
179
69.0k
    case 0x0009:  /* <TAB>  */
180
71.1k
    case 0x000A:  /* <LF>   */
181
76.6k
    case 0x000B:  /* <VT>   */
182
92.6k
    case 0x000C:  /* <FF>   */
183
188k
    case 0x000D:  /* <CR>   */
184
194k
    case 0x0020:  /* <SP>   */
185
197k
    case 0x00A0:  /* <NBSP> */
186
198k
    case 0x1680:
187
199k
    case 0x2000:
188
200k
    case 0x2001:
189
201k
    case 0x2002:
190
202k
    case 0x2003:
191
203k
    case 0x2004:
192
205k
    case 0x2005:
193
207k
    case 0x2006:
194
209k
    case 0x2007:
195
211k
    case 0x2008:
196
213k
    case 0x2009:
197
215k
    case 0x200A:
198
216k
    case 0x2028:  /* <LS>   */
199
223k
    case 0x2029:  /* <PS>   */
200
229k
    case 0x202F:
201
230k
    case 0x205F:
202
230k
    case 0x3000:
203
231k
    case 0xFEFF:  /* <BOM>  */
204
231k
        return 1;
205
206
550k
    default:
207
550k
        return 0;
208
781k
    }
209
781k
}
Unexecuted instantiation: njs_object.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_object_prop.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_array.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_json.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_function.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_regexp.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_date.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_error.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_array_buffer.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_typed_array.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_promise.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_iterator.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_async.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_builtin.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_regex.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_buffer.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_modules.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_dtoa.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_dtoa_fixed.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_strtod.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_djb_hash.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_utf8.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_utf16.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_flathsh.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_trace.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_malloc.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_utils.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_chb.c:njs_utf8_is_whitespace
njs_lexer.c:njs_utf8_is_whitespace
Line
Count
Source
177
35.4k
{
178
35.4k
    switch (c) {
179
0
    case 0x0009:  /* <TAB>  */
180
0
    case 0x000A:  /* <LF>   */
181
0
    case 0x000B:  /* <VT>   */
182
0
    case 0x000C:  /* <FF>   */
183
0
    case 0x000D:  /* <CR>   */
184
0
    case 0x0020:  /* <SP>   */
185
0
    case 0x00A0:  /* <NBSP> */
186
1.41k
    case 0x1680:
187
2.16k
    case 0x2000:
188
2.70k
    case 0x2001:
189
3.99k
    case 0x2002:
190
12.2k
    case 0x2003:
191
12.4k
    case 0x2004:
192
13.1k
    case 0x2005:
193
13.5k
    case 0x2006:
194
15.5k
    case 0x2007:
195
15.7k
    case 0x2008:
196
17.6k
    case 0x2009:
197
18.1k
    case 0x200A:
198
19.5k
    case 0x2028:  /* <LS>   */
199
20.8k
    case 0x2029:  /* <PS>   */
200
20.8k
    case 0x202F:
201
20.9k
    case 0x205F:
202
21.1k
    case 0x3000:
203
23.1k
    case 0xFEFF:  /* <BOM>  */
204
23.1k
        return 1;
205
206
12.3k
    default:
207
12.3k
        return 0;
208
35.4k
    }
209
35.4k
}
Unexecuted instantiation: njs_boolean.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_math.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_encoding.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_crypto_module.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_webcrypto_module.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_fs_module.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_query_string_module.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_diyfp.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_str.c:njs_utf8_is_whitespace
Unexecuted instantiation: njs_random.c:njs_utf8_is_whitespace
210
211
212
#endif /* _NJS_UTF8_H_INCLUDED_ */