1 /*
2  *  Top-level include file to be used for all (internal) source files.
3  *
4  *  Source files should not include individual header files, as they
5  *  have not been designed to be individually included.
6  */
7 
8 #ifndef DUK_INTERNAL_H_INCLUDED
9 #define DUK_INTERNAL_H_INCLUDED
10 
11 /*
12  *  The 'duktape.h' header provides the public API, but also handles all
13  *  compiler and platform specific feature detection, Duktape feature
14  *  resolution, inclusion of system headers, etc.  These have been merged
15  *  because the public API is also dependent on e.g. detecting appropriate
16  *  C types which is quite platform/compiler specific especially for a non-C99
17  *  build.  The public API is also dependent on the resolved feature set.
18  *
19  *  Some actions taken by the merged header (such as including system headers)
20  *  are not appropriate for building a user application.  The define
21  *  DUK_COMPILING_DUKTAPE allows the merged header to skip/include some
22  *  sections depending on what is being built.
23  */
24 
25 #define DUK_COMPILING_DUKTAPE
26 #include "duktape.h"
27 
28 /*
29  *  User declarations, e.g. prototypes for user functions used by Duktape
30  *  macros.  Concretely, if DUK_USE_PANIC_HANDLER is used and the macro
31  *  value calls a user function, it needs to be declared for Duktape
32  *  compilation to avoid warnings.
33  */
34 
35 DUK_USE_USER_DECLARE()
36 
37 /*
38  *  Duktape includes (other than duk_features.h)
39  *
40  *  The header files expect to be included in an order which satisfies header
41  *  dependencies correctly (the headers themselves don't include any other
42  *  includes).  Forward declarations are used to break circular struct/typedef
43  *  dependencies.
44  */
45 
46 #include "duk_replacements.h"
47 #include "duk_jmpbuf.h"
48 #include "duk_exception.h"
49 #include "duk_forwdecl.h"
50 #include "duk_tval.h"      /* builtins need e.g. duk_tval tag definitions */
51 #include "duk_builtins.h"  /* autogenerated: strings and built-in object init data */
52 
53 #include "duk_util.h"
54 #include "duk_strings.h"
55 #include "duk_js_bytecode.h"
56 #include "duk_lexer.h"
57 #include "duk_js_compiler.h"
58 #include "duk_regexp.h"
59 #include "duk_heaphdr.h"
60 #include "duk_api_internal.h"
61 #include "duk_hstring.h"
62 #include "duk_hobject.h"
63 #include "duk_hcompiledfunction.h"
64 #include "duk_hnativefunction.h"
65 #include "duk_hbufferobject.h"
66 #include "duk_hthread.h"
67 #include "duk_hbuffer.h"
68 #include "duk_heap.h"
69 #include "duk_debugger.h"
70 #include "duk_debug.h"
71 #include "duk_error.h"
72 #include "duk_unicode.h"
73 #include "duk_json.h"
74 #include "duk_js.h"
75 #include "duk_numconv.h"
76 #include "duk_bi_protos.h"
77 #include "duk_selftest.h"
78 
79 #endif  /* DUK_INTERNAL_H_INCLUDED */
80