1 |
#ifndef _42TinyJS_config_h__ |
2 |
#define _42TinyJS_config_h__ |
3 |
|
4 |
/* |
5 |
* 42TinyJS |
6 |
* |
7 |
* A fork of TinyJS with the goal to makes a more JavaScript/ECMA compliant engine |
8 |
* |
9 |
* Authored By Armin Diedering <armin@diedering.de> |
10 |
* |
11 |
* Copyright (C) 2010-2013 ardisoft |
12 |
* |
13 |
* |
14 |
* Permission is hereby granted, free of charge, to any person obtaining a copy of |
15 |
* this software and associated documentation files (the "Software"), to deal in |
16 |
* the Software without restriction, including without limitation the rights to |
17 |
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies |
18 |
* of the Software, and to permit persons to whom the Software is furnished to do |
19 |
* so, subject to the following conditions: |
20 |
|
21 |
* The above copyright notice and this permission notice shall be included in all |
22 |
* copies or substantial portions of the Software. |
23 |
|
24 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
25 |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
26 |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
27 |
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
28 |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
29 |
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
30 |
* SOFTWARE. |
31 |
*/ |
32 |
|
33 |
////////////////////////////////////////////////////////////////////////// |
34 |
|
35 |
/* POOL-ALLOCATOR |
36 |
* ============== |
37 |
* To speed-up new & delete 42TinyJS adds an object-pool |
38 |
* The pool is activated by default. |
39 |
* To deactivate this stuff define NO_POOL_ALLOCATOR |
40 |
*/ |
41 |
//#define NO_POOL_ALLOCATOR |
42 |
|
43 |
/* |
44 |
* for debugging-stuff you can define DEBUG_POOL_ALLOCATOR |
45 |
* if a memory-leak detected the allocator usage is printed to stderr |
46 |
*/ |
47 |
//#define DEBUG_POOL_ALLOCATOR |
48 |
/* |
49 |
* with define LOG_POOL_ALLOCATOR_MEMORY_USAGE |
50 |
* the allocator usage is always printed to stderr |
51 |
*/ |
52 |
//#define LOG_POOL_ALLOCATOR_MEMORY_USAGE |
53 |
|
54 |
// NOTE: _DEBUG or LOG_POOL_ALLOCATOR_MEMORY_USAGE implies DEBUG_POOL_ALLOCATOR |
55 |
|
56 |
////////////////////////////////////////////////////////////////////////// |
57 |
|
58 |
/* REGEXP-SUPPORT |
59 |
* ============== |
60 |
* The RegExp-support needs boost-regex or TR1-regex |
61 |
* To deactivate this stuff define NO_REGEXP |
62 |
*/ |
63 |
//#define NO_REGEXP |
64 |
|
65 |
/* if NO_REGEXP not defined <regex> is included and std::regex is used |
66 |
* you can define HAVE_BOOST_REGEX and <boost/regex.hpp> is included and boost::regex is used |
67 |
*/ |
68 |
#define HAVE_BOOST_REGEX |
69 |
|
70 |
/* or you can define HAVE_TR1_REGEX and <tr1/regex> is included and std::tr1::regex is used |
71 |
*/ |
72 |
//#define HAVE_TR1_REGEX |
73 |
|
74 |
|
75 |
////////////////////////////////////////////////////////////////////////// |
76 |
|
77 |
/* LET-STUFF |
78 |
* ========= |
79 |
* Redeclaration of LET-vars is not allowed in block-scopes. |
80 |
* But in the root- and functions-scopes it is currently allowed |
81 |
* In future ECMAScript versions this will be also in root-and functions-scopes forbidden |
82 |
* To enable the future behavior define PREVENT_REDECLARATION_IN_FUNCTION_SCOPES |
83 |
*/ |
84 |
//#define PREVENT_REDECLARATION_IN_FUNCTION_SCOPES |
85 |
|
86 |
|
87 |
////////////////////////////////////////////////////////////////////////// |
88 |
|
89 |
/* MULTI-THREADING |
90 |
* =============== |
91 |
* 42TinyJS is basically thread-save. |
92 |
* You can run different or the same JS-code simultaneously in different instances of class TinyJS. |
93 |
* The threading-stuff is currently only needed by the pool-allocator |
94 |
* to deactivate threading define NO_THREADING |
95 |
* NOTE: if NO_POOL_ALLOCATOR not defined you can not run JS-code simultaneously |
96 |
* NO_POOL_ALLOCATOR implies NO_THREADING |
97 |
*/ |
98 |
|
99 |
//#define NO_THREADING |
100 |
|
101 |
/* on Windows the windows-threading-API is used by default. |
102 |
* on non-Windows (WIN32 is not defined) it is tried to use the POSIX pthread-API |
103 |
* to force the pthread-API define HAVE_PTHREAD (windows needs in this case |
104 |
* a pthread-lib e.g http://http://sourceware.org/pthreads-win32/) |
105 |
*/ |
106 |
//#define HAVE_PTHREAD |
107 |
|
108 |
/* you can implement your own custom thread-implementation. |
109 |
* to prevent the using of the win- or pthread-API define HAVE_CUSTOM_THREADING_IMPL |
110 |
*/ |
111 |
//#define HAVE_CUSTOM_THREADING_IMPL |
112 |
|
113 |
//////////////////////////////////////////////// |
114 |
// DO NOT MAKE CHANGES OF THE FOLLOWING STUFF // |
115 |
//////////////////////////////////////////////// |
116 |
|
117 |
#if defined(NO_POOL_ALLOCATOR) && !defined(NO_THREADING) |
118 |
# define NO_THREADING |
119 |
#endif |
120 |
|
121 |
#if !defined(NO_POOL_ALLOCATOR) && defined(NO_THREADING) |
122 |
#pragma message("\n***********************************************************************\n\ |
123 |
* You have defined NO_THREADING and not defined NO_POOL_ALLOCATOR\n\ |
124 |
* NOTE: you can not run JS-code simultaneously in different threads\n\ |
125 |
***********************************************************************\n") |
126 |
#endif |
127 |
|
128 |
|
129 |
#endif // _42TinyJS_config_h__ |