1 
2 /*
3  * Copyright (C) Igor Sysoev
4  * Copyright (C) NGINX, Inc.
5  */
6 
7 #ifndef _NJS_OBJECT_HASH_H_INCLUDED_
8 #define _NJS_OBJECT_HASH_H_INCLUDED_
9 
10 
11 #define NJS___PROTO___HASH                                                    \
12     njs_djb_hash_add(                                                         \
13     njs_djb_hash_add(                                                         \
14     njs_djb_hash_add(                                                         \
15     njs_djb_hash_add(                                                         \
16     njs_djb_hash_add(                                                         \
17     njs_djb_hash_add(                                                         \
18     njs_djb_hash_add(                                                         \
19     njs_djb_hash_add(                                                         \
20     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
21         '_'), '_'), 'p'), 'r'), 'o'), 't'), 'o'), '_'), '_')
22 
23 
24 #define NJS_ARRAY_HASH                                                        \
25     njs_djb_hash_add(                                                         \
26     njs_djb_hash_add(                                                         \
27     njs_djb_hash_add(                                                         \
28     njs_djb_hash_add(                                                         \
29     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
30         'A'), 'r'), 'r'), 'a'), 'y')
31 
32 
33 #define NJS_ARGV_HASH                                                         \
34     njs_djb_hash_add(                                                         \
35     njs_djb_hash_add(                                                         \
36     njs_djb_hash_add(                                                         \
37     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
38         'a'), 'r'), 'g'), 'v')
39 
40 
41 #define NJS_BOOLEAN_HASH                                                      \
42     njs_djb_hash_add(                                                         \
43     njs_djb_hash_add(                                                         \
44     njs_djb_hash_add(                                                         \
45     njs_djb_hash_add(                                                         \
46     njs_djb_hash_add(                                                         \
47     njs_djb_hash_add(                                                         \
48     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
49         'B'), 'o'), 'o'), 'l'), 'e'), 'a'), 'n')
50 
51 
52 #define NJS_CONFIGURABLE_HASH                                                 \
53     njs_djb_hash_add(                                                         \
54     njs_djb_hash_add(                                                         \
55     njs_djb_hash_add(                                                         \
56     njs_djb_hash_add(                                                         \
57     njs_djb_hash_add(                                                         \
58     njs_djb_hash_add(                                                         \
59     njs_djb_hash_add(                                                         \
60     njs_djb_hash_add(                                                         \
61     njs_djb_hash_add(                                                         \
62     njs_djb_hash_add(                                                         \
63     njs_djb_hash_add(                                                         \
64     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
65         'c'), 'o'), 'n'), 'f'), 'i'), 'g'), 'u'), 'r'), 'a'), 'b'), 'l'), 'e')
66 
67 
68 #define NJS_CONSTRUCTOR_HASH                                                  \
69     njs_djb_hash_add(                                                         \
70     njs_djb_hash_add(                                                         \
71     njs_djb_hash_add(                                                         \
72     njs_djb_hash_add(                                                         \
73     njs_djb_hash_add(                                                         \
74     njs_djb_hash_add(                                                         \
75     njs_djb_hash_add(                                                         \
76     njs_djb_hash_add(                                                         \
77     njs_djb_hash_add(                                                         \
78     njs_djb_hash_add(                                                         \
79     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
80         'c'), 'o'), 'n'), 's'), 't'), 'r'), 'u'), 'c'), 't'), 'o'), 'r')
81 
82 
83 #define NJS_DATE_HASH                                                         \
84     njs_djb_hash_add(                                                         \
85     njs_djb_hash_add(                                                         \
86     njs_djb_hash_add(                                                         \
87     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
88         'D'), 'a'), 't'), 'e')
89 
90 
91 #define NJS_PROMISE_HASH                                                      \
92     njs_djb_hash_add(                                                         \
93     njs_djb_hash_add(                                                         \
94     njs_djb_hash_add(                                                         \
95     njs_djb_hash_add(                                                         \
96     njs_djb_hash_add(                                                         \
97     njs_djb_hash_add(                                                         \
98     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
99         'P'), 'r'), 'o'), 'm'), 'i'), 's'), 'e')
100 
101 
102 #define NJS_ENUMERABLE_HASH                                                   \
103     njs_djb_hash_add(                                                         \
104     njs_djb_hash_add(                                                         \
105     njs_djb_hash_add(                                                         \
106     njs_djb_hash_add(                                                         \
107     njs_djb_hash_add(                                                         \
108     njs_djb_hash_add(                                                         \
109     njs_djb_hash_add(                                                         \
110     njs_djb_hash_add(                                                         \
111     njs_djb_hash_add(                                                         \
112     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
113         'e'), 'n'), 'u'), 'm'), 'e'), 'r'), 'a'), 'b'), 'l'), 'e')
114 
115 
116 #define NJS_ERRNO_HASH                                                        \
117     njs_djb_hash_add(                                                         \
118     njs_djb_hash_add(                                                         \
119     njs_djb_hash_add(                                                         \
120     njs_djb_hash_add(                                                         \
121     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
122         'e'), 'r'), 'r'), 'n'), 'o')
123 
124 
125 #define NJS_ERROR_HASH                                                        \
126     njs_djb_hash_add(                                                         \
127     njs_djb_hash_add(                                                         \
128     njs_djb_hash_add(                                                         \
129     njs_djb_hash_add(                                                         \
130     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
131         'E'), 'r'), 'r'), 'o'), 'r')
132 
133 
134 #define NJS_ENCODING_HASH                                                     \
135     njs_djb_hash_add(                                                         \
136     njs_djb_hash_add(                                                         \
137     njs_djb_hash_add(                                                         \
138     njs_djb_hash_add(                                                         \
139     njs_djb_hash_add(                                                         \
140     njs_djb_hash_add(                                                         \
141     njs_djb_hash_add(                                                         \
142     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
143         'e'), 'n'), 'c'), 'o'), 'd'), 'i'), 'n'), 'g')
144 
145 
146 #define NJS_ENV_HASH                                                          \
147     njs_djb_hash_add(                                                         \
148     njs_djb_hash_add(                                                         \
149     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
150         'e'), 'n'), 'v')
151 
152 
153 #define NJS_EVAL_ERROR_HASH                                                   \
154     njs_djb_hash_add(                                                         \
155     njs_djb_hash_add(                                                         \
156     njs_djb_hash_add(                                                         \
157     njs_djb_hash_add(                                                         \
158     njs_djb_hash_add(                                                         \
159     njs_djb_hash_add(                                                         \
160     njs_djb_hash_add(                                                         \
161     njs_djb_hash_add(                                                         \
162     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
163         'E'), 'v'), 'a'), 'l'), 'E'), 'r'), 'r'), 'o'), 'r')
164 
165 
166 #define NJS_FLAG_HASH                                                         \
167     njs_djb_hash_add(                                                         \
168     njs_djb_hash_add(                                                         \
169     njs_djb_hash_add(                                                         \
170     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
171         'f'), 'l'), 'a'), 'g')
172 
173 
174 #define NJS_GET_HASH                                                          \
175     njs_djb_hash_add(                                                         \
176     njs_djb_hash_add(                                                         \
177     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
178         'g'), 'e'), 't')
179 
180 
181 #define NJS_GLOBAL_HASH                                                       \
182     njs_djb_hash_add(                                                         \
183     njs_djb_hash_add(                                                         \
184     njs_djb_hash_add(                                                         \
185     njs_djb_hash_add(                                                         \
186     njs_djb_hash_add(                                                         \
187     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
188         'g'), 'l'), 'o'), 'b'), 'a'), 'l')
189 
190 
191 #define NJS_GLOBAL_THIS_HASH                                                  \
192     njs_djb_hash_add(                                                         \
193     njs_djb_hash_add(                                                         \
194     njs_djb_hash_add(                                                         \
195     njs_djb_hash_add(                                                         \
196     njs_djb_hash_add(                                                         \
197     njs_djb_hash_add(                                                         \
198     njs_djb_hash_add(                                                         \
199     njs_djb_hash_add(                                                         \
200     njs_djb_hash_add(                                                         \
201     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
202         'g'), 'l'), 'o'), 'b'), 'a'), 'l'), 'T'), 'h'), 'i'), 's')
203 
204 
205 #define NJS_FUNCTION_HASH                                                     \
206     njs_djb_hash_add(                                                         \
207     njs_djb_hash_add(                                                         \
208     njs_djb_hash_add(                                                         \
209     njs_djb_hash_add(                                                         \
210     njs_djb_hash_add(                                                         \
211     njs_djb_hash_add(                                                         \
212     njs_djb_hash_add(                                                         \
213     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
214         'F'), 'u'), 'n'), 'c'), 't'), 'i'), 'o'), 'n')
215 
216 
217 #define NJS_INDEX_HASH                                                        \
218     njs_djb_hash_add(                                                         \
219     njs_djb_hash_add(                                                         \
220     njs_djb_hash_add(                                                         \
221     njs_djb_hash_add(                                                         \
222     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
223         'i'), 'n'), 'd'), 'e'), 'x')
224 
225 
226 #define NJS_INPUT_HASH                                                        \
227     njs_djb_hash_add(                                                         \
228     njs_djb_hash_add(                                                         \
229     njs_djb_hash_add(                                                         \
230     njs_djb_hash_add(                                                         \
231     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
232         'i'), 'n'), 'p'), 'u'), 't')
233 
234 
235 #define NJS_INTERNAL_ERROR_HASH                                               \
236     njs_djb_hash_add(                                                         \
237     njs_djb_hash_add(                                                         \
238     njs_djb_hash_add(                                                         \
239     njs_djb_hash_add(                                                         \
240     njs_djb_hash_add(                                                         \
241     njs_djb_hash_add(                                                         \
242     njs_djb_hash_add(                                                         \
243     njs_djb_hash_add(                                                         \
244     njs_djb_hash_add(                                                         \
245     njs_djb_hash_add(                                                         \
246     njs_djb_hash_add(                                                         \
247     njs_djb_hash_add(                                                         \
248     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
249         'I'), 'n'), 't'), 'e'), 'r'), 'n'), 'a'), 'l'),                       \
250         'E'), 'r'), 'r'), 'o'), 'r')
251 
252 
253 #define NJS_GROUPS_HASH                                                       \
254     njs_djb_hash_add(                                                         \
255     njs_djb_hash_add(                                                         \
256     njs_djb_hash_add(                                                         \
257     njs_djb_hash_add(                                                         \
258     njs_djb_hash_add(                                                         \
259     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
260         'g'), 'r'), 'o'), 'u'), 'p'), 's')
261 
262 
263 #define NJS_JOIN_HASH                                                         \
264     njs_djb_hash_add(                                                         \
265     njs_djb_hash_add(                                                         \
266     njs_djb_hash_add(                                                         \
267     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
268         'j'), 'o'), 'i'), 'n')
269 
270 
271 #define NJS_JSON_HASH                                                         \
272     njs_djb_hash_add(                                                         \
273     njs_djb_hash_add(                                                         \
274     njs_djb_hash_add(                                                         \
275     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
276         'J'), 'S'), 'O'), 'N')
277 
278 
279 #define NJS_LENGTH_HASH                                                       \
280     njs_djb_hash_add(                                                         \
281     njs_djb_hash_add(                                                         \
282     njs_djb_hash_add(                                                         \
283     njs_djb_hash_add(                                                         \
284     njs_djb_hash_add(                                                         \
285     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
286         'l'), 'e'), 'n'), 'g'), 't'), 'h')
287 
288 
289 #define NJS_NAME_HASH                                                         \
290     njs_djb_hash_add(                                                         \
291     njs_djb_hash_add(                                                         \
292     njs_djb_hash_add(                                                         \
293     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
294         'n'), 'a'), 'm'), 'e')
295 
296 
297 #define NJS_NJS_HASH                                                          \
298     njs_djb_hash_add(                                                         \
299     njs_djb_hash_add(                                                         \
300     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
301         'n'), 'j'), 's')
302 
303 
304 #define NJS_262_HASH                                                          \
305     njs_djb_hash_add(                                                         \
306     njs_djb_hash_add(                                                         \
307     njs_djb_hash_add(                                                         \
308     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
309         '$'), '2'), '6'), '2')
310 
311 
312 #define NJS_NUMBER_HASH                                                       \
313     njs_djb_hash_add(                                                         \
314     njs_djb_hash_add(                                                         \
315     njs_djb_hash_add(                                                         \
316     njs_djb_hash_add(                                                         \
317     njs_djb_hash_add(                                                         \
318     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
319         'N'), 'u'), 'm'), 'b'), 'e'), 'r')
320 
321 
322 #define NJS_MATH_HASH                                                         \
323     njs_djb_hash_add(                                                         \
324     njs_djb_hash_add(                                                         \
325     njs_djb_hash_add(                                                         \
326     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
327         'M'), 'a'), 't'), 'h')
328 
329 
330 #define NJS_MEMORY_ERROR_HASH                                                 \
331     njs_djb_hash_add(                                                         \
332     njs_djb_hash_add(                                                         \
333     njs_djb_hash_add(                                                         \
334     njs_djb_hash_add(                                                         \
335     njs_djb_hash_add(                                                         \
336     njs_djb_hash_add(                                                         \
337     njs_djb_hash_add(                                                         \
338     njs_djb_hash_add(                                                         \
339     njs_djb_hash_add(                                                         \
340     njs_djb_hash_add(                                                         \
341     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
342         'M'), 'e'), 'm'), 'o'), 'r'), 'y'),                                   \
343         'E'), 'r'), 'r'), 'o'), 'r')
344 
345 
346 #define NJS_AGGREGATE_ERROR_HASH                                              \
347     njs_djb_hash_add(                                                         \
348     njs_djb_hash_add(                                                         \
349     njs_djb_hash_add(                                                         \
350     njs_djb_hash_add(                                                         \
351     njs_djb_hash_add(                                                         \
352     njs_djb_hash_add(                                                         \
353     njs_djb_hash_add(                                                         \
354     njs_djb_hash_add(                                                         \
355     njs_djb_hash_add(                                                         \
356     njs_djb_hash_add(                                                         \
357     njs_djb_hash_add(                                                         \
358     njs_djb_hash_add(                                                         \
359     njs_djb_hash_add(                                                         \
360     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
361         'A'), 'g'), 'g'), 'r'), 'e'), 'g'), 'a'), 't'), 'e'),                 \
362         'E'), 'r'), 'r'), 'o'), 'r')
363 
364 
365 #define NJS_MESSAGE_HASH                                                      \
366     njs_djb_hash_add(                                                         \
367     njs_djb_hash_add(                                                         \
368     njs_djb_hash_add(                                                         \
369     njs_djb_hash_add(                                                         \
370     njs_djb_hash_add(                                                         \
371     njs_djb_hash_add(                                                         \
372     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
373         'm'), 'e'), 's'), 's'), 'a'), 'g'), 'e')
374 
375 
376 #define NJS_ERRORS_HASH                                                       \
377     njs_djb_hash_add(                                                         \
378     njs_djb_hash_add(                                                         \
379     njs_djb_hash_add(                                                         \
380     njs_djb_hash_add(                                                         \
381     njs_djb_hash_add(                                                         \
382     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
383         'e'), 'r'), 'r'), 'o'), 'r'), 's')
384 
385 
386 #define NJS_MODE_HASH                                                         \
387     njs_djb_hash_add(                                                         \
388     njs_djb_hash_add(                                                         \
389     njs_djb_hash_add(                                                         \
390     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
391         'm'), 'o'), 'd'), 'e')
392 
393 
394 #define NJS_OBJECT_HASH                                                       \
395     njs_djb_hash_add(                                                         \
396     njs_djb_hash_add(                                                         \
397     njs_djb_hash_add(                                                         \
398     njs_djb_hash_add(                                                         \
399     njs_djb_hash_add(                                                         \
400     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
401         'O'), 'b'), 'j'), 'e'), 'c'), 't')
402 
403 
404 #define NJS_PATH_HASH                                                         \
405     njs_djb_hash_add(                                                         \
406     njs_djb_hash_add(                                                         \
407     njs_djb_hash_add(                                                         \
408     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
409         'p'), 'a'), 't'), 'h')
410 
411 
412 #define NJS_PROCESS_HASH                                                      \
413     njs_djb_hash_add(                                                         \
414     njs_djb_hash_add(                                                         \
415     njs_djb_hash_add(                                                         \
416     njs_djb_hash_add(                                                         \
417     njs_djb_hash_add(                                                         \
418     njs_djb_hash_add(                                                         \
419     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
420         'p'), 'r'), 'o'), 'c'), 'e'), 's'), 's')
421 
422 
423 #define NJS_PROTOTYPE_HASH                                                    \
424     njs_djb_hash_add(                                                         \
425     njs_djb_hash_add(                                                         \
426     njs_djb_hash_add(                                                         \
427     njs_djb_hash_add(                                                         \
428     njs_djb_hash_add(                                                         \
429     njs_djb_hash_add(                                                         \
430     njs_djb_hash_add(                                                         \
431     njs_djb_hash_add(                                                         \
432     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
433         'p'), 'r'), 'o'), 't'), 'o'), 't'), 'y'), 'p'), 'e')
434 
435 
436 #define NJS_RANGE_ERROR_HASH                                                  \
437     njs_djb_hash_add(                                                         \
438     njs_djb_hash_add(                                                         \
439     njs_djb_hash_add(                                                         \
440     njs_djb_hash_add(                                                         \
441     njs_djb_hash_add(                                                         \
442     njs_djb_hash_add(                                                         \
443     njs_djb_hash_add(                                                         \
444     njs_djb_hash_add(                                                         \
445     njs_djb_hash_add(                                                         \
446     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
447         'R'), 'a'), 'n'), 'g'), 'e'), 'E'), 'r'), 'r'), 'o'), 'r')
448 
449 
450 #define NJS_REF_ERROR_HASH                                                    \
451     njs_djb_hash_add(                                                         \
452     njs_djb_hash_add(                                                         \
453     njs_djb_hash_add(                                                         \
454     njs_djb_hash_add(                                                         \
455     njs_djb_hash_add(                                                         \
456     njs_djb_hash_add(                                                         \
457     njs_djb_hash_add(                                                         \
458     njs_djb_hash_add(                                                         \
459     njs_djb_hash_add(                                                         \
460     njs_djb_hash_add(                                                         \
461     njs_djb_hash_add(                                                         \
462     njs_djb_hash_add(                                                         \
463     njs_djb_hash_add(                                                         \
464     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
465         'R'), 'e'), 'f'), 'e'), 'r'), 'e'), 'n'), 'c'), 'e'),                 \
466         'E'), 'r'), 'r'), 'o'), 'r')
467 
468 
469 #define NJS_REGEXP_HASH                                                       \
470     njs_djb_hash_add(                                                         \
471     njs_djb_hash_add(                                                         \
472     njs_djb_hash_add(                                                         \
473     njs_djb_hash_add(                                                         \
474     njs_djb_hash_add(                                                         \
475     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
476         'R'), 'e'), 'g'), 'E'), 'x'), 'p')
477 
478 
479 #define NJS_SET_HASH                                                          \
480     njs_djb_hash_add(                                                         \
481     njs_djb_hash_add(                                                         \
482     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
483         's'), 'e'), 't')
484 
485 
486 #define NJS_STACK_HASH                                                        \
487     njs_djb_hash_add(                                                         \
488     njs_djb_hash_add(                                                         \
489     njs_djb_hash_add(                                                         \
490     njs_djb_hash_add(                                                         \
491     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
492         's'), 't'), 'a'), 'c'), 'k')
493 
494 
495 #define NJS_STRING_HASH                                                       \
496     njs_djb_hash_add(                                                         \
497     njs_djb_hash_add(                                                         \
498     njs_djb_hash_add(                                                         \
499     njs_djb_hash_add(                                                         \
500     njs_djb_hash_add(                                                         \
501     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
502         'S'), 't'), 'r'), 'i'), 'n'), 'g')
503 
504 
505 #define NJS_SYMBOL_HASH                                                       \
506     njs_djb_hash_add(                                                         \
507     njs_djb_hash_add(                                                         \
508     njs_djb_hash_add(                                                         \
509     njs_djb_hash_add(                                                         \
510     njs_djb_hash_add(                                                         \
511     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
512         'S'), 'y'), 'm'), 'b'), 'o'), 'l')
513 
514 
515 #define NJS_SYNTAX_ERROR_HASH                                                 \
516     njs_djb_hash_add(                                                         \
517     njs_djb_hash_add(                                                         \
518     njs_djb_hash_add(                                                         \
519     njs_djb_hash_add(                                                         \
520     njs_djb_hash_add(                                                         \
521     njs_djb_hash_add(                                                         \
522     njs_djb_hash_add(                                                         \
523     njs_djb_hash_add(                                                         \
524     njs_djb_hash_add(                                                         \
525     njs_djb_hash_add(                                                         \
526     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
527         'S'), 'y'), 'n'), 't'), 'a'), 'x'),                                   \
528         'E'), 'r'), 'r'), 'o'), 'r')
529 
530 
531 #define NJS_SYSCALL_HASH                                                      \
532     njs_djb_hash_add(                                                         \
533     njs_djb_hash_add(                                                         \
534     njs_djb_hash_add(                                                         \
535     njs_djb_hash_add(                                                         \
536     njs_djb_hash_add(                                                         \
537     njs_djb_hash_add(                                                         \
538     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
539         's'), 'y'), 's'), 'c'), 'a'), 'l'), 'l')
540 
541 
542 #define NJS_TO_JSON_HASH                                                      \
543     njs_djb_hash_add(                                                         \
544     njs_djb_hash_add(                                                         \
545     njs_djb_hash_add(                                                         \
546     njs_djb_hash_add(                                                         \
547     njs_djb_hash_add(                                                         \
548     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
549         't'), 'o'), 'J'), 'S'), 'O'), 'N')
550 
551 
552 #define NJS_TO_STRING_HASH                                                    \
553     njs_djb_hash_add(                                                         \
554     njs_djb_hash_add(                                                         \
555     njs_djb_hash_add(                                                         \
556     njs_djb_hash_add(                                                         \
557     njs_djb_hash_add(                                                         \
558     njs_djb_hash_add(                                                         \
559     njs_djb_hash_add(                                                         \
560     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
561         't'), 'o'), 'S'), 't'), 'r'), 'i'), 'n'), 'g')
562 
563 
564 #define NJS_TO_ISO_STRING_HASH                                                \
565     njs_djb_hash_add(                                                         \
566     njs_djb_hash_add(                                                         \
567     njs_djb_hash_add(                                                         \
568     njs_djb_hash_add(                                                         \
569     njs_djb_hash_add(                                                         \
570     njs_djb_hash_add(                                                         \
571     njs_djb_hash_add(                                                         \
572     njs_djb_hash_add(                                                         \
573     njs_djb_hash_add(                                                         \
574     njs_djb_hash_add(                                                         \
575     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
576         't'), 'o'), 'I'), 'S'), 'O'), 'S'), 't'), 'r'), 'i'), 'n'), 'g')
577 
578 
579 #define NJS_TYPE_ERROR_HASH                                                   \
580     njs_djb_hash_add(                                                         \
581     njs_djb_hash_add(                                                         \
582     njs_djb_hash_add(                                                         \
583     njs_djb_hash_add(                                                         \
584     njs_djb_hash_add(                                                         \
585     njs_djb_hash_add(                                                         \
586     njs_djb_hash_add(                                                         \
587     njs_djb_hash_add(                                                         \
588     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
589         'T'), 'y'), 'p'), 'e'), 'E'), 'r'), 'r'), 'o'), 'r')
590 
591 
592 #define NJS_VALUE_HASH                                                        \
593     njs_djb_hash_add(                                                         \
594     njs_djb_hash_add(                                                         \
595     njs_djb_hash_add(                                                         \
596     njs_djb_hash_add(                                                         \
597     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
598         'v'), 'a'), 'l'), 'u'), 'e')
599 
600 
601 #define NJS_VALUE_OF_HASH                                                     \
602     njs_djb_hash_add(                                                         \
603     njs_djb_hash_add(                                                         \
604     njs_djb_hash_add(                                                         \
605     njs_djb_hash_add(                                                         \
606     njs_djb_hash_add(                                                         \
607     njs_djb_hash_add(                                                         \
608     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
609         'v'), 'a'), 'l'), 'u'), 'e'), 'O'), 'f')
610 
611 
612 #define NJS_WRITABABLE_HASH                                                   \
613     njs_djb_hash_add(                                                         \
614     njs_djb_hash_add(                                                         \
615     njs_djb_hash_add(                                                         \
616     njs_djb_hash_add(                                                         \
617     njs_djb_hash_add(                                                         \
618     njs_djb_hash_add(                                                         \
619     njs_djb_hash_add(                                                         \
620     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
621         'w'), 'r'), 'i'), 't'), 'a'), 'b'), 'l'), 'e')
622 
623 
624 #define NJS_URI_ERROR_HASH                                                    \
625     njs_djb_hash_add(                                                         \
626     njs_djb_hash_add(                                                         \
627     njs_djb_hash_add(                                                         \
628     njs_djb_hash_add(                                                         \
629     njs_djb_hash_add(                                                         \
630     njs_djb_hash_add(                                                         \
631     njs_djb_hash_add(                                                         \
632     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
633         'U'), 'R'), 'I'), 'E'), 'r'), 'r'), 'o'), 'r')
634 
635 
636 #define NJS_ARRAY_BUFFER_HASH                                                 \
637     njs_djb_hash_add(                                                         \
638     njs_djb_hash_add(                                                         \
639     njs_djb_hash_add(                                                         \
640     njs_djb_hash_add(                                                         \
641     njs_djb_hash_add(                                                         \
642     njs_djb_hash_add(                                                         \
643     njs_djb_hash_add(                                                         \
644     njs_djb_hash_add(                                                         \
645     njs_djb_hash_add(                                                         \
646     njs_djb_hash_add(                                                         \
647     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
648         'A'), 'r'), 'r'), 'a'), 'y'), 'B'), 'u'), 'f'), 'f'), 'e'), 'r')
649 
650 
651 #define NJS_DATA_VIEW_HASH                                                    \
652     njs_djb_hash_add(                                                         \
653     njs_djb_hash_add(                                                         \
654     njs_djb_hash_add(                                                         \
655     njs_djb_hash_add(                                                         \
656     njs_djb_hash_add(                                                         \
657     njs_djb_hash_add(                                                         \
658     njs_djb_hash_add(                                                         \
659     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
660         'D'), 'a'), 't'), 'a'), 'V'), 'i'), 'e'), 'w')
661 
662 
663 #define NJS_UINT8ARRAY_HASH                                                   \
664     njs_djb_hash_add(                                                         \
665     njs_djb_hash_add(                                                         \
666     njs_djb_hash_add(                                                         \
667     njs_djb_hash_add(                                                         \
668     njs_djb_hash_add(                                                         \
669     njs_djb_hash_add(                                                         \
670     njs_djb_hash_add(                                                         \
671     njs_djb_hash_add(                                                         \
672     njs_djb_hash_add(                                                         \
673     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
674         'U'), 'i'), 'n'), 't'), '8'), 'A'), 'r'), 'r'), 'a'), 'y')
675 
676 
677 #define NJS_UINT16ARRAY_HASH                                                  \
678     njs_djb_hash_add(                                                         \
679     njs_djb_hash_add(                                                         \
680     njs_djb_hash_add(                                                         \
681     njs_djb_hash_add(                                                         \
682     njs_djb_hash_add(                                                         \
683     njs_djb_hash_add(                                                         \
684     njs_djb_hash_add(                                                         \
685     njs_djb_hash_add(                                                         \
686     njs_djb_hash_add(                                                         \
687     njs_djb_hash_add(                                                         \
688     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
689         'U'), 'i'), 'n'), 't'), '1'), '6'), 'A'), 'r'), 'r'), 'a'), 'y')
690 
691 
692 #define NJS_UINT32ARRAY_HASH                                                  \
693     njs_djb_hash_add(                                                         \
694     njs_djb_hash_add(                                                         \
695     njs_djb_hash_add(                                                         \
696     njs_djb_hash_add(                                                         \
697     njs_djb_hash_add(                                                         \
698     njs_djb_hash_add(                                                         \
699     njs_djb_hash_add(                                                         \
700     njs_djb_hash_add(                                                         \
701     njs_djb_hash_add(                                                         \
702     njs_djb_hash_add(                                                         \
703     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
704         'U'), 'i'), 'n'), 't'), '3'), '2'), 'A'), 'r'), 'r'), 'a'), 'y')
705 
706 
707 #define NJS_INT8ARRAY_HASH                                                    \
708     njs_djb_hash_add(                                                         \
709     njs_djb_hash_add(                                                         \
710     njs_djb_hash_add(                                                         \
711     njs_djb_hash_add(                                                         \
712     njs_djb_hash_add(                                                         \
713     njs_djb_hash_add(                                                         \
714     njs_djb_hash_add(                                                         \
715     njs_djb_hash_add(                                                         \
716     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
717         'I'), 'n'), 't'), '8'), 'A'), 'r'), 'r'), 'a'), 'y')
718 
719 
720 #define NJS_INT16ARRAY_HASH                                                   \
721     njs_djb_hash_add(                                                         \
722     njs_djb_hash_add(                                                         \
723     njs_djb_hash_add(                                                         \
724     njs_djb_hash_add(                                                         \
725     njs_djb_hash_add(                                                         \
726     njs_djb_hash_add(                                                         \
727     njs_djb_hash_add(                                                         \
728     njs_djb_hash_add(                                                         \
729     njs_djb_hash_add(                                                         \
730     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
731         'I'), 'n'), 't'), '1'), '6'), 'A'), 'r'), 'r'), 'a'), 'y')
732 
733 
734 #define NJS_INT32ARRAY_HASH                                                   \
735     njs_djb_hash_add(                                                         \
736     njs_djb_hash_add(                                                         \
737     njs_djb_hash_add(                                                         \
738     njs_djb_hash_add(                                                         \
739     njs_djb_hash_add(                                                         \
740     njs_djb_hash_add(                                                         \
741     njs_djb_hash_add(                                                         \
742     njs_djb_hash_add(                                                         \
743     njs_djb_hash_add(                                                         \
744     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
745         'I'), 'n'), 't'), '3'), '2'), 'A'), 'r'), 'r'), 'a'), 'y')
746 
747 
748 #define NJS_FLOAT32ARRAY_HASH                                                 \
749     njs_djb_hash_add(                                                         \
750     njs_djb_hash_add(                                                         \
751     njs_djb_hash_add(                                                         \
752     njs_djb_hash_add(                                                         \
753     njs_djb_hash_add(                                                         \
754     njs_djb_hash_add(                                                         \
755     njs_djb_hash_add(                                                         \
756     njs_djb_hash_add(                                                         \
757     njs_djb_hash_add(                                                         \
758     njs_djb_hash_add(                                                         \
759     njs_djb_hash_add(                                                         \
760     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
761         'F'), 'l'), 'o'), 'a'), 't'), '3'), '2'), 'A'), 'r'), 'r'), 'a'), 'y')
762 
763 
764 #define NJS_FLOAT64ARRAY_HASH                                                 \
765     njs_djb_hash_add(                                                         \
766     njs_djb_hash_add(                                                         \
767     njs_djb_hash_add(                                                         \
768     njs_djb_hash_add(                                                         \
769     njs_djb_hash_add(                                                         \
770     njs_djb_hash_add(                                                         \
771     njs_djb_hash_add(                                                         \
772     njs_djb_hash_add(                                                         \
773     njs_djb_hash_add(                                                         \
774     njs_djb_hash_add(                                                         \
775     njs_djb_hash_add(                                                         \
776     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
777         'F'), 'l'), 'o'), 'a'), 't'), '6'), '4'), 'A'), 'r'), 'r'), 'a'), 'y')
778 
779 
780 #define NJS_UINT8CLAMPEDARRAY_HASH                                            \
781     njs_djb_hash_add(                                                         \
782     njs_djb_hash_add(                                                         \
783     njs_djb_hash_add(                                                         \
784     njs_djb_hash_add(                                                         \
785     njs_djb_hash_add(                                                         \
786     njs_djb_hash_add(                                                         \
787     njs_djb_hash_add(                                                         \
788     njs_djb_hash_add(                                                         \
789     njs_djb_hash_add(                                                         \
790     njs_djb_hash_add(                                                         \
791     njs_djb_hash_add(                                                         \
792     njs_djb_hash_add(                                                         \
793     njs_djb_hash_add(                                                         \
794     njs_djb_hash_add(                                                         \
795     njs_djb_hash_add(                                                         \
796     njs_djb_hash_add(                                                         \
797     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
798         'U'), 'i'), 'n'), 't'), '8'), 'C'), 'l'), 'a'), 'm'), 'p'), 'e'),     \
799         'd'), 'A'), 'r'), 'r'), 'a'), 'y')
800 
801 
802 #define NJS_TEXT_DECODER_HASH                                                 \
803     njs_djb_hash_add(                                                         \
804     njs_djb_hash_add(                                                         \
805     njs_djb_hash_add(                                                         \
806     njs_djb_hash_add(                                                         \
807     njs_djb_hash_add(                                                         \
808     njs_djb_hash_add(                                                         \
809     njs_djb_hash_add(                                                         \
810     njs_djb_hash_add(                                                         \
811     njs_djb_hash_add(                                                         \
812     njs_djb_hash_add(                                                         \
813     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
814         'T'), 'e'), 'x'), 't'), 'D'), 'e'), 'c'), 'o'), 'd'), 'e'), 'r')
815 
816 
817 #define NJS_TEXT_ENCODER_HASH                                                 \
818     njs_djb_hash_add(                                                         \
819     njs_djb_hash_add(                                                         \
820     njs_djb_hash_add(                                                         \
821     njs_djb_hash_add(                                                         \
822     njs_djb_hash_add(                                                         \
823     njs_djb_hash_add(                                                         \
824     njs_djb_hash_add(                                                         \
825     njs_djb_hash_add(                                                         \
826     njs_djb_hash_add(                                                         \
827     njs_djb_hash_add(                                                         \
828     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
829         'T'), 'e'), 'x'), 't'), 'E'), 'n'), 'c'), 'o'), 'd'), 'e'), 'r')
830 
831 
832 #define NJS_BUFFER_HASH                                                       \
833     njs_djb_hash_add(                                                         \
834     njs_djb_hash_add(                                                         \
835     njs_djb_hash_add(                                                         \
836     njs_djb_hash_add(                                                         \
837     njs_djb_hash_add(                                                         \
838     njs_djb_hash_add(NJS_DJB_HASH_INIT,                                       \
839         'B'), 'u'), 'f'), 'f'), 'e'), 'r')
840 
841 
842 #endif /* _NJS_OBJECT_HASH_H_INCLUDED_ */
843