diff --git a/config/architectures.yaml b/config/architectures.yaml new file mode 100644 index 00000000..4f1d9f0e --- /dev/null +++ b/config/architectures.yaml @@ -0,0 +1,34 @@ +# Architecture metadata + +required_defines: + - DUK_USE_ARCH_STRING +# - DUK_USE_INTEGER_LE +# - DUK_USE_DOUBLE_LE + - DUK_USE_ALIGN_BY + - DUK_USE_UNALIGNED_ACCESSES_POSSIBLE + - DUK_USE_HASHBYTES_UNALIGNED_U32_ACCESS + - DUK_USE_PACKED_TVAL + - DUK_USE_PACKED_TVAL_POSSIBLE # FIXME + +autodetect: + - + name: x86 + check: DUK_F_X86 + include: architecture_x86.h.in + - + name: x64 + check: DUK_F_X64 + include: architecture_x64.h.in +# FIXME +# - +# name: x32 +# check: DUK_F_X32 +# include: architecture_x32.h.in +# - +# name: arm +# check: DUK_F_ARM +# include: architecture_arm.h.in + - + name: generic + check: null + include: architecture_generic.h.in diff --git a/config/compilers.yaml b/config/compilers.yaml new file mode 100644 index 00000000..c5b0f2ae --- /dev/null +++ b/config/compilers.yaml @@ -0,0 +1,21 @@ +# Compiler metadata + +required_defines: + # FIXME + - DUK_USE_COMPILER_STRING + +# FIXME +autodetect: + - + name: gcc + check: DUK_F_GCC + include: compiler_gcc.h.in +# FIXME +# - +# name: clang +# check: DUK_F_CLANG +# include: compiler_clang.h.in + - + name: generic + check: null + include: compiler_generic.h.in diff --git a/config/config-options/DUK_USE_ALIGN_BY.yaml b/config/config-options/DUK_USE_ALIGN_BY.yaml index bed2f508..525a1064 100644 --- a/config/config-options/DUK_USE_ALIGN_BY.yaml +++ b/config/config-options/DUK_USE_ALIGN_BY.yaml @@ -1,4 +1,13 @@ define: DUK_USE_ALIGN_BY +# FIXME: resolve wrapper +feature_snippet: | + #if !defined(DUK_USE_ALIGN_BY) + #if defined(DUK_OPT_FORCE_ALIGN) + #define DUK_USE_ALIGN_BY DUK_OPT_FORCE_ALIGN + #else + #define DUK_USE_ALIGN_BY 8 + #endif + #endif introduced: 1.3.0 default: 8 tags: diff --git a/config/config-options/DUK_USE_ASSERTIONS.yaml b/config/config-options/DUK_USE_ASSERTIONS.yaml index 30af4668..2ccb1aa0 100644 --- a/config/config-options/DUK_USE_ASSERTIONS.yaml +++ b/config/config-options/DUK_USE_ASSERTIONS.yaml @@ -1,6 +1,7 @@ define: DUK_USE_ASSERTIONS related_feature_defines: - DUK_OPT_ASSERTIONS +feature_enables: DUK_OPT_ASSERTIONS introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_AUGMENT_ERROR_CREATE.yaml b/config/config-options/DUK_USE_AUGMENT_ERROR_CREATE.yaml index 84121f31..46aa5ed9 100644 --- a/config/config-options/DUK_USE_AUGMENT_ERROR_CREATE.yaml +++ b/config/config-options/DUK_USE_AUGMENT_ERROR_CREATE.yaml @@ -1,4 +1,5 @@ define: DUK_USE_AUGMENT_ERROR_CREATE +feature_enables: DUK_OPT_AUGMENT_ERRORS introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_AUGMENT_ERROR_THROW.yaml b/config/config-options/DUK_USE_AUGMENT_ERROR_THROW.yaml index 12441976..d881f802 100644 --- a/config/config-options/DUK_USE_AUGMENT_ERROR_THROW.yaml +++ b/config/config-options/DUK_USE_AUGMENT_ERROR_THROW.yaml @@ -1,4 +1,5 @@ define: DUK_USE_AUGMENT_ERROR_THROW +feature_enables: DUK_OPT_AUGMENT_ERRORS introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_BROWSER_LIKE.yaml b/config/config-options/DUK_USE_BROWSER_LIKE.yaml index 64b088ec..fb8aeb2b 100644 --- a/config/config-options/DUK_USE_BROWSER_LIKE.yaml +++ b/config/config-options/DUK_USE_BROWSER_LIKE.yaml @@ -1,4 +1,5 @@ define: DUK_USE_BROWSER_LIKE +feature_enables: DUK_OPT_BROWSER_LIKE introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_BUFFEROBJECT_SUPPORT.yaml b/config/config-options/DUK_USE_BUFFEROBJECT_SUPPORT.yaml index 7a682a34..891e8ec0 100644 --- a/config/config-options/DUK_USE_BUFFEROBJECT_SUPPORT.yaml +++ b/config/config-options/DUK_USE_BUFFEROBJECT_SUPPORT.yaml @@ -1,4 +1,5 @@ define: DUK_USE_BUFFEROBJECT_SUPPORT +feature_enables: DUK_OPT_BUFFEROBJECT_SUPPORT introduced: 1.3.0 default: true tags: diff --git a/config/config-options/DUK_USE_BUFLEN16.yaml b/config/config-options/DUK_USE_BUFLEN16.yaml index 1e40f4bb..08a19f2d 100644 --- a/config/config-options/DUK_USE_BUFLEN16.yaml +++ b/config/config-options/DUK_USE_BUFLEN16.yaml @@ -1,4 +1,5 @@ define: DUK_USE_BUFLEN16 +feature_enables: DUK_OPT_BUFLEN16 introduced: 1.1.0 default: false tags: diff --git a/config/config-options/DUK_USE_BYTECODE_DUMP_SUPPORT.yaml b/config/config-options/DUK_USE_BYTECODE_DUMP_SUPPORT.yaml index 6a419532..1bdb49a6 100644 --- a/config/config-options/DUK_USE_BYTECODE_DUMP_SUPPORT.yaml +++ b/config/config-options/DUK_USE_BYTECODE_DUMP_SUPPORT.yaml @@ -1,6 +1,7 @@ define: DUK_USE_BYTECODE_DUMP_SUPPORT related_feature_defines: - DUK_OPT_NO_BYTECODE_DUMP_SUPPORT +feature_enables: DUK_OPT_BYTECODE_DUMP_SUPPORT introduced: 1.3.0 default: true tags: diff --git a/config/config-options/DUK_USE_BYTEORDER_FORCED.yaml b/config/config-options/DUK_USE_BYTEORDER_FORCED.yaml index a7e5a9e1..04e7847e 100644 --- a/config/config-options/DUK_USE_BYTEORDER_FORCED.yaml +++ b/config/config-options/DUK_USE_BYTEORDER_FORCED.yaml @@ -1,4 +1,5 @@ define: DUK_USE_BYTEORDER_FORCED +feature_enables: DUK_OPT_FORCE_BYTEORDER introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_COMMONJS_MODULES.yaml b/config/config-options/DUK_USE_COMMONJS_MODULES.yaml index 7972f39b..fa7405b7 100644 --- a/config/config-options/DUK_USE_COMMONJS_MODULES.yaml +++ b/config/config-options/DUK_USE_COMMONJS_MODULES.yaml @@ -1,4 +1,5 @@ define: DUK_USE_COMMONJS_MODULES +feature_enables: DUK_OPT_COMMONJS_MODULES introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_DATAPTR16.yaml b/config/config-options/DUK_USE_DATAPTR16.yaml index 5c424ce6..0fb156f5 100644 --- a/config/config-options/DUK_USE_DATAPTR16.yaml +++ b/config/config-options/DUK_USE_DATAPTR16.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DATAPTR16 +feature_enables: DUK_OPT_DATAPTR16 introduced: 1.1.0 related: - DUK_USE_DATAPTR_ENC16 diff --git a/config/config-options/DUK_USE_DATAPTR_DEC16.yaml b/config/config-options/DUK_USE_DATAPTR_DEC16.yaml index 1cdf2ecf..32bb0b1c 100644 --- a/config/config-options/DUK_USE_DATAPTR_DEC16.yaml +++ b/config/config-options/DUK_USE_DATAPTR_DEC16.yaml @@ -1,4 +1,10 @@ define: DUK_USE_DATAPTR_DEC16 +feature_snippet: | + #if defined(DUK_OPT_DATAPTR_DEC16) + #define DUK_USE_DATAPTR_DEC16(udata,ptr) DUK_OPT_DATAPTR_DEC16((udata),(ptr)) + #else + #undef DUK_USE_DATAPTR_DEC16 + #endif introduced: 1.1.0 requires: - DUK_USE_DATAPTR16 diff --git a/config/config-options/DUK_USE_DATAPTR_ENC16.yaml b/config/config-options/DUK_USE_DATAPTR_ENC16.yaml index 988e6b79..ea16bf41 100644 --- a/config/config-options/DUK_USE_DATAPTR_ENC16.yaml +++ b/config/config-options/DUK_USE_DATAPTR_ENC16.yaml @@ -1,4 +1,10 @@ define: DUK_USE_DATAPTR_ENC16 +feature_snippet: | + #if defined(DUK_OPT_DATAPTR_ENC16) + #define DUK_USE_DATAPTR_ENC16(udata,ptr) DUK_OPT_DATAPTR_ENC16((udata),(ptr)) + #else + #undef DUK_USE_DATAPTR_ENC16 + #endif introduced: 1.1.0 requires: - DUK_USE_DATAPTR16 diff --git a/config/config-options/DUK_USE_DDDPRINT.yaml b/config/config-options/DUK_USE_DDDPRINT.yaml index 0d431617..fe4c6364 100644 --- a/config/config-options/DUK_USE_DDDPRINT.yaml +++ b/config/config-options/DUK_USE_DDDPRINT.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DDDPRINT +feature_enables: DUK_OPT_DDDPRINT introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_DDPRINT.yaml b/config/config-options/DUK_USE_DDPRINT.yaml index 7cf7110a..41a0cd8e 100644 --- a/config/config-options/DUK_USE_DDPRINT.yaml +++ b/config/config-options/DUK_USE_DDPRINT.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DDPRINT +feature_enables: DUK_OPT_DDPRINT introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_DEBUG.yaml b/config/config-options/DUK_USE_DEBUG.yaml index 3c8f7047..0a85432d 100644 --- a/config/config-options/DUK_USE_DEBUG.yaml +++ b/config/config-options/DUK_USE_DEBUG.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DEBUG +feature_enables: DUK_OPT_DEBUG introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_DEBUGGER_DUMPHEAP.yaml b/config/config-options/DUK_USE_DEBUGGER_DUMPHEAP.yaml index 5174d132..f86286bf 100644 --- a/config/config-options/DUK_USE_DEBUGGER_DUMPHEAP.yaml +++ b/config/config-options/DUK_USE_DEBUGGER_DUMPHEAP.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DEBUGGER_DUMPHEAP +feature_enables: DUK_OPT_DEBUGGER_DUMPHEAP introduced: 1.2.0 requires: - DUK_USE_DEBUGGER_SUPPORT diff --git a/config/config-options/DUK_USE_DEBUGGER_FWD_LOGGING.yaml b/config/config-options/DUK_USE_DEBUGGER_FWD_LOGGING.yaml index 3c3ae075..c86fb7b4 100644 --- a/config/config-options/DUK_USE_DEBUGGER_FWD_LOGGING.yaml +++ b/config/config-options/DUK_USE_DEBUGGER_FWD_LOGGING.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DEBUGGER_FWD_LOGGING +feature_enables: DUK_OPT_DEBUGGER_FWD_LOGGING introduced: 1.2.0 requires: - DUK_USE_DEBUGGER_SUPPORT diff --git a/config/config-options/DUK_USE_DEBUGGER_FWD_PRINTALERT.yaml b/config/config-options/DUK_USE_DEBUGGER_FWD_PRINTALERT.yaml index b51d3caf..9efb6517 100644 --- a/config/config-options/DUK_USE_DEBUGGER_FWD_PRINTALERT.yaml +++ b/config/config-options/DUK_USE_DEBUGGER_FWD_PRINTALERT.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DEBUGGER_FWD_PRINTALERT +feature_enables: DUK_OPT_DEBUGGER_FWD_PRINTALERT introduced: 1.2.0 requires: - DUK_USE_DEBUGGER_SUPPORT diff --git a/config/config-options/DUK_USE_DEBUGGER_SUPPORT.yaml b/config/config-options/DUK_USE_DEBUGGER_SUPPORT.yaml index a67ac73fd..bdd08197 100644 --- a/config/config-options/DUK_USE_DEBUGGER_SUPPORT.yaml +++ b/config/config-options/DUK_USE_DEBUGGER_SUPPORT.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DEBUGGER_SUPPORT +feature_enables: DUK_OPT_DEBUGGER_SUPPORT introduced: 1.2.0 requires: - DUK_USE_INTERRUPT_COUNTER diff --git a/config/config-options/DUK_USE_DEBUGGER_TRANSPORT_TORTURE.yaml b/config/config-options/DUK_USE_DEBUGGER_TRANSPORT_TORTURE.yaml index b29410e2..f376667e 100644 --- a/config/config-options/DUK_USE_DEBUGGER_TRANSPORT_TORTURE.yaml +++ b/config/config-options/DUK_USE_DEBUGGER_TRANSPORT_TORTURE.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DEBUGGER_TRANSPORT_TORTURE +feature_enables: DUK_OPT_DEBUGGER_TRANSPORT_TORTURE introduced: 1.2.0 requires: - DUK_USE_DEBUGGER_SUPPORT diff --git a/config/config-options/DUK_USE_DEBUG_BUFSIZE.yaml b/config/config-options/DUK_USE_DEBUG_BUFSIZE.yaml index 1d93415e..bb3babb5 100644 --- a/config/config-options/DUK_USE_DEBUG_BUFSIZE.yaml +++ b/config/config-options/DUK_USE_DEBUG_BUFSIZE.yaml @@ -1,4 +1,10 @@ define: DUK_USE_DEBUG_BUFSIZE +feature_snippet: | + #if defined(DUK_OPT_DEBUG_BUFSIZE) + #define DUK_USE_DEBUG_BUFSIZE DUK_OPT_DEBUG_BUFSIZE + #else + #define DUK_USE_DEBUG_BUFSIZE 65536L + #endif introduced: 1.0.0 related: # not strictly required, value is defined even when DUK_USE_DEBUG not defined - DUK_USE_DEBUG diff --git a/config/config-options/DUK_USE_DEEP_C_STACK.yaml b/config/config-options/DUK_USE_DEEP_C_STACK.yaml index 82de9941..ff09b525 100644 --- a/config/config-options/DUK_USE_DEEP_C_STACK.yaml +++ b/config/config-options/DUK_USE_DEEP_C_STACK.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DEEP_C_STACK +feature_enables: DUK_OPT_DEEP_C_STACK introduced: 1.0.0 removed: 1.3.0 default: true diff --git a/config/config-options/DUK_USE_DOUBLE_BE.yaml b/config/config-options/DUK_USE_DOUBLE_BE.yaml index ec899409..bd690f66 100644 --- a/config/config-options/DUK_USE_DOUBLE_BE.yaml +++ b/config/config-options/DUK_USE_DOUBLE_BE.yaml @@ -1,4 +1,18 @@ define: DUK_USE_DOUBLE_BE +feature_snippet: | + #if defined(DUK_OPT_FORCE_BYTEORDER) + #if (DUK_OPT_FORCE_BYTEORDER == 1) + #undef DUK_USE_DOUBLE_BE + #elif (DUK_OPT_FORCE_BYTEORDER == 2) + #undef DUK_USE_DOUBLE_BE + #elif (DUK_OPT_FORCE_BYTEORDER == 3) + #define DUK_USE_DOUBLE_BE + #else + #error invalid DUK_OPT_FORCE_BYTEORDER + #endif + #else + #undef DUK_USE_DOUBLE_BE + #endif introduced: 1.0.0 default: false conflicts: diff --git a/config/config-options/DUK_USE_DOUBLE_LE.yaml b/config/config-options/DUK_USE_DOUBLE_LE.yaml index c3e0b583..344801b5 100644 --- a/config/config-options/DUK_USE_DOUBLE_LE.yaml +++ b/config/config-options/DUK_USE_DOUBLE_LE.yaml @@ -1,4 +1,18 @@ define: DUK_USE_DOUBLE_LE +feature_snippet: | + #if defined(DUK_OPT_FORCE_BYTEORDER) + #if (DUK_OPT_FORCE_BYTEORDER == 1) + #define DUK_USE_DOUBLE_LE + #elif (DUK_OPT_FORCE_BYTEORDER == 2) + #undef DUK_USE_DOUBLE_LE + #elif (DUK_OPT_FORCE_BYTEORDER == 3) + #undef DUK_USE_DOUBLE_LE + #else + #error invalid DUK_OPT_FORCE_BYTEORDER + #endif + #else + #define DUK_USE_DOUBLE_LE + #endif introduced: 1.0.0 default: true conflicts: diff --git a/config/config-options/DUK_USE_DOUBLE_LINKED_HEAP.yaml b/config/config-options/DUK_USE_DOUBLE_LINKED_HEAP.yaml index eda00526..f7338f4a 100644 --- a/config/config-options/DUK_USE_DOUBLE_LINKED_HEAP.yaml +++ b/config/config-options/DUK_USE_DOUBLE_LINKED_HEAP.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DOUBLE_LINKED_HEAP +feature_enables: DUK_OPT_REFERENCE_COUNTING introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_DOUBLE_ME.yaml b/config/config-options/DUK_USE_DOUBLE_ME.yaml index 5f6432a1..c096255c 100644 --- a/config/config-options/DUK_USE_DOUBLE_ME.yaml +++ b/config/config-options/DUK_USE_DOUBLE_ME.yaml @@ -1,4 +1,18 @@ define: DUK_USE_DOUBLE_ME +feature_snippet: | + #if defined(DUK_OPT_FORCE_BYTEORDER) + #if (DUK_OPT_FORCE_BYTEORDER == 1) + #undef DUK_USE_DOUBLE_ME + #elif (DUK_OPT_FORCE_BYTEORDER == 2) + #define DUK_USE_DOUBLE_ME + #elif (DUK_OPT_FORCE_BYTEORDER == 3) + #undef DUK_USE_DOUBLE_ME + #else + #error invalid DUK_OPT_FORCE_BYTEORDER + #endif + #else + #undef DUK_USE_DOUBLE_ME + #endif introduced: 1.0.0 default: false conflicts: diff --git a/config/config-options/DUK_USE_DPRINT.yaml b/config/config-options/DUK_USE_DPRINT.yaml index ac52a8d4..d778595f 100644 --- a/config/config-options/DUK_USE_DPRINT.yaml +++ b/config/config-options/DUK_USE_DPRINT.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DPRINT +feature_enables: DUK_OPT_DPRINT introduced: 1.0.0 requires: - DUK_USE_DEBUG diff --git a/config/config-options/DUK_USE_DPRINT_COLORS.yaml b/config/config-options/DUK_USE_DPRINT_COLORS.yaml index 56eee9f4..6bd6ac5a 100644 --- a/config/config-options/DUK_USE_DPRINT_COLORS.yaml +++ b/config/config-options/DUK_USE_DPRINT_COLORS.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DPRINT_COLORS +feature_enables: DUK_OPT_DPRINT_COLORS introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_DPRINT_RDTSC.yaml b/config/config-options/DUK_USE_DPRINT_RDTSC.yaml index 1b40ebc2..79c2311a 100644 --- a/config/config-options/DUK_USE_DPRINT_RDTSC.yaml +++ b/config/config-options/DUK_USE_DPRINT_RDTSC.yaml @@ -1,4 +1,5 @@ define: DUK_USE_DPRINT_RDTSC +feature_enables: DUK_OPT_DPRINT_RDTSC introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_ERRCREATE.yaml b/config/config-options/DUK_USE_ERRCREATE.yaml index a25b3b8d..37cc7cd8 100644 --- a/config/config-options/DUK_USE_ERRCREATE.yaml +++ b/config/config-options/DUK_USE_ERRCREATE.yaml @@ -1,4 +1,5 @@ define: DUK_USE_ERRCREATE +feature_enables: DUK_OPT_AUGMENT_ERRORS introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_ERRTHROW.yaml b/config/config-options/DUK_USE_ERRTHROW.yaml index f9d5b193..d6b94be0 100644 --- a/config/config-options/DUK_USE_ERRTHROW.yaml +++ b/config/config-options/DUK_USE_ERRTHROW.yaml @@ -1,4 +1,5 @@ define: DUK_USE_ERRTHROW +feature_enables: DUK_OPT_AUGMENT_ERRORS introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_ES6_OBJECT_PROTO_PROPERTY.yaml b/config/config-options/DUK_USE_ES6_OBJECT_PROTO_PROPERTY.yaml index ceabe8f1..1c136295 100644 --- a/config/config-options/DUK_USE_ES6_OBJECT_PROTO_PROPERTY.yaml +++ b/config/config-options/DUK_USE_ES6_OBJECT_PROTO_PROPERTY.yaml @@ -1,4 +1,5 @@ define: DUK_USE_ES6_OBJECT_PROTO_PROPERTY +feature_enables: DUK_OPT_ES6_OBJECT_PROTO_PROPERTY introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_ES6_OBJECT_SETPROTOTYPEOF.yaml b/config/config-options/DUK_USE_ES6_OBJECT_SETPROTOTYPEOF.yaml index c1259f6a..2033b915 100644 --- a/config/config-options/DUK_USE_ES6_OBJECT_SETPROTOTYPEOF.yaml +++ b/config/config-options/DUK_USE_ES6_OBJECT_SETPROTOTYPEOF.yaml @@ -1,4 +1,5 @@ define: DUK_USE_ES6_OBJECT_SETPROTOTYPEOF +feature_enables: DUK_OPT_ES6_OBJECT_SETPROTOTYPEOF introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_ES6_PROXY.yaml b/config/config-options/DUK_USE_ES6_PROXY.yaml index 05439612..0eb620b9 100644 --- a/config/config-options/DUK_USE_ES6_PROXY.yaml +++ b/config/config-options/DUK_USE_ES6_PROXY.yaml @@ -1,4 +1,5 @@ define: DUK_USE_ES6_PROXY +feature_enables: DUK_OPT_ES6_PROXY introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_EXAMPLE.yaml b/config/config-options/DUK_USE_EXAMPLE.yaml index 2602df6a..70179d6a 100644 --- a/config/config-options/DUK_USE_EXAMPLE.yaml +++ b/config/config-options/DUK_USE_EXAMPLE.yaml @@ -13,6 +13,23 @@ define: DUK_USE_OBJSIZES16 related_feature_defines: - DUK_OPT_OBJSIZES16 +# Feature define (DUK_OPT_xxx) enables config define (DUK_USE_xxx), and +# negative feature define (DUK_OPT_NO_xxx) disables config define. If +# neither present, use default. +#feature_enables: DUK_OPT_OBJSIZES16 + +# Feature define disables config define, and vice versa. +#feature_disables: DUK_OPT_OBJSIZES16 + +# Feature detection snippet given explicitly. +#feature_snippet: | +# #if defined(DUK_OPT_OBJSIZES16) +# #define DUK_USE_OBJSIZES16 +# #if defined(XYZ) +# #error DUK_OPT_OBJSIZES16 conflicts with XYZ +# #endif +# #endif + # Duktape version number where this option was first introduced. introduced: 1.1.0 diff --git a/config/config-options/DUK_USE_EXEC_INDIRECT_BOUND_CHECK.yaml b/config/config-options/DUK_USE_EXEC_INDIRECT_BOUND_CHECK.yaml index 16c30f05..4a1ee6f0 100644 --- a/config/config-options/DUK_USE_EXEC_INDIRECT_BOUND_CHECK.yaml +++ b/config/config-options/DUK_USE_EXEC_INDIRECT_BOUND_CHECK.yaml @@ -1,4 +1,10 @@ define: DUK_USE_EXEC_INDIRECT_BOUND_CHECK +feature_snippet: | + #undef DUK_USE_EXEC_INDIRECT_BOUND_CHECK + #if defined(DUK_OPT_DEBUG) || defined(DUK_OPT_ASSERTIONS) + /* Enabled with debug/assertions just so that any issues can be caught. */ + #define DUK_USE_EXEC_INDIRECT_BOUND_CHECK + #endif introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_EXEC_TIMEOUT_CHECK.yaml b/config/config-options/DUK_USE_EXEC_TIMEOUT_CHECK.yaml index e59c7fde..ed80141b 100644 --- a/config/config-options/DUK_USE_EXEC_TIMEOUT_CHECK.yaml +++ b/config/config-options/DUK_USE_EXEC_TIMEOUT_CHECK.yaml @@ -1,4 +1,9 @@ define: DUK_USE_EXEC_TIMEOUT_CHECK +feature_snippet: | + #undef DUK_USE_EXEC_TIMEOUT_CHECK + #if defined(DUK_OPT_EXEC_TIMEOUT_CHECK) + #define DUK_USE_EXEC_TIMEOUT_CHECK(udata) DUK_OPT_EXEC_TIMEOUT_CHECK((udata)) + #endif introduced: 1.2.0 requires: - DUK_USE_INTERRUPT_COUNTER diff --git a/config/config-options/DUK_USE_EXPLICIT_NULL_INIT.yaml b/config/config-options/DUK_USE_EXPLICIT_NULL_INIT.yaml index 141fe33a..0da6c1b8 100644 --- a/config/config-options/DUK_USE_EXPLICIT_NULL_INIT.yaml +++ b/config/config-options/DUK_USE_EXPLICIT_NULL_INIT.yaml @@ -9,4 +9,4 @@ description: > only be necessary when a NULL pointer is not represented by zero bytes in memory. -# FIXME: condition in Duktape 1.2 seems wrong, and is linked to packed tval? + # NOTE: Condition in Duktape 1.2 seems wrong, and is linked to packed tval. diff --git a/config/config-options/DUK_USE_EXTSTR_FREE.yaml b/config/config-options/DUK_USE_EXTSTR_FREE.yaml index d65feade..ae6f4e1c 100644 --- a/config/config-options/DUK_USE_EXTSTR_FREE.yaml +++ b/config/config-options/DUK_USE_EXTSTR_FREE.yaml @@ -1,4 +1,9 @@ define: DUK_USE_EXTSTR_FREE +feature_snippet: | + #undef DUK_USE_EXTSTR_FREE + #if defined(DUK_OPT_EXTERNAL_STRINGS) && defined(DUK_OPT_EXTSTR_FREE) + #define DUK_USE_EXTSTR_FREE(udata,ptr) DUK_OPT_EXTSTR_FREE((udata), (ptr)) + #endif introduced: 1.1.0 requires: - DUK_USE_HSTRING_EXTDATA diff --git a/config/config-options/DUK_USE_EXTSTR_INTERN_CHECK.yaml b/config/config-options/DUK_USE_EXTSTR_INTERN_CHECK.yaml index 784eb25a..20f1b2b7 100644 --- a/config/config-options/DUK_USE_EXTSTR_INTERN_CHECK.yaml +++ b/config/config-options/DUK_USE_EXTSTR_INTERN_CHECK.yaml @@ -1,4 +1,9 @@ define: DUK_USE_EXTSTR_INTERN_CHECK +feature_snippet: | + #undef DUK_USE_EXTSTR_INTERN_CHECK + #if defined(DUK_OPT_EXTERNAL_STRINGS) && defined(DUK_OPT_EXTSTR_INTERN_CHECK) + #define DUK_USE_EXTSTR_INTERN_CHECK(udata,ptr,len) DUK_OPT_EXTSTR_INTERN_CHECK((udata), (ptr), (len)) + #endif introduced: 1.1.0 requires: - DUK_USE_HSTRING_EXTDATA diff --git a/config/config-options/DUK_USE_FASTINT.yaml b/config/config-options/DUK_USE_FASTINT.yaml index a7d56c6f..b2938e94 100644 --- a/config/config-options/DUK_USE_FASTINT.yaml +++ b/config/config-options/DUK_USE_FASTINT.yaml @@ -1,4 +1,13 @@ define: DUK_USE_FASTINT +feature_snippet: | + /* Support for 48-bit signed integer duk_tval with transparent semantics. */ + #undef DUK_USE_FASTINT + #if defined(DUK_OPT_FASTINT) + #if !defined(DUK_F_HAVE_64BIT) + #error DUK_OPT_FASTINT requires 64-bit integer type support at the moment + #endif + #define DUK_USE_FASTINT + #endif related_feature_defines: - DUK_OPT_FASTINT introduced: 1.2.0 diff --git a/config/config-options/DUK_USE_FILE_IO.yaml b/config/config-options/DUK_USE_FILE_IO.yaml index ab8839f6..01ece70d 100644 --- a/config/config-options/DUK_USE_FILE_IO.yaml +++ b/config/config-options/DUK_USE_FILE_IO.yaml @@ -1,4 +1,5 @@ define: DUK_USE_FILE_IO +feature_enables: DUK_OPT_FILE_IO related_feature_defines: - DUK_OPT_NO_FILE_IO introduced: 1.0.0 diff --git a/config/config-options/DUK_USE_FUNCPTR16.yaml b/config/config-options/DUK_USE_FUNCPTR16.yaml index bf54cdba..332f94ec 100644 --- a/config/config-options/DUK_USE_FUNCPTR16.yaml +++ b/config/config-options/DUK_USE_FUNCPTR16.yaml @@ -1,4 +1,5 @@ define: DUK_USE_FUNCPTR16 +feature_enables: DUK_OPT_FUNCPTR16 introduced: 1.1.0 related: - DUK_USE_FUNCPTR_ENC16 diff --git a/config/config-options/DUK_USE_FUNCPTR_DEC16.yaml b/config/config-options/DUK_USE_FUNCPTR_DEC16.yaml index f1e10c08..23873c6c 100644 --- a/config/config-options/DUK_USE_FUNCPTR_DEC16.yaml +++ b/config/config-options/DUK_USE_FUNCPTR_DEC16.yaml @@ -1,4 +1,10 @@ define: DUK_USE_FUNCPTR_DEC16 +feature_snippet: | + #if defined(DUK_OPT_FUNCPTR_DEC16) + #define DUK_USE_FUNCPTR_DEC16(udata,ptr) DUK_OPT_FUNCPTR_DEC16((udata),(ptr)) + #else + #undef DUK_USE_FUNCPTR_DEC16 + #endif introduced: 1.1.0 requires: - DUK_USE_FUNCPTR16 diff --git a/config/config-options/DUK_USE_FUNCPTR_ENC16.yaml b/config/config-options/DUK_USE_FUNCPTR_ENC16.yaml index 51ff3630..caaeb4c1 100644 --- a/config/config-options/DUK_USE_FUNCPTR_ENC16.yaml +++ b/config/config-options/DUK_USE_FUNCPTR_ENC16.yaml @@ -1,4 +1,10 @@ define: DUK_USE_FUNCPTR_ENC16 +feature_snippet: | + #if defined(DUK_OPT_FUNCPTR_ENC16) + #define DUK_USE_FUNCPTR_ENC16(udata,ptr) DUK_OPT_FUNCPTR_ENC16((udata),(ptr)) + #else + #undef DUK_USE_FUNCPTR_ENC16 + #endif introduced: 1.1.0 requires: - DUK_USE_FUNCPTR16 diff --git a/config/config-options/DUK_USE_GC_TORTURE.yaml b/config/config-options/DUK_USE_GC_TORTURE.yaml index a9fa5826..b6c102f4 100644 --- a/config/config-options/DUK_USE_GC_TORTURE.yaml +++ b/config/config-options/DUK_USE_GC_TORTURE.yaml @@ -1,4 +1,5 @@ define: DUK_USE_GC_TORTURE +feature_enables: DUK_OPT_GC_TORTURE introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_HEAPPTR16.yaml b/config/config-options/DUK_USE_HEAPPTR16.yaml index 2d18dc56..146e4a8c 100644 --- a/config/config-options/DUK_USE_HEAPPTR16.yaml +++ b/config/config-options/DUK_USE_HEAPPTR16.yaml @@ -1,4 +1,5 @@ define: DUK_USE_HEAPPTR16 +feature_enables: DUK_OPT_HEAPPTR16 introduced: 1.1.0 conflicts: - DUK_USE_DEBUG diff --git a/config/config-options/DUK_USE_HEAPPTR_DEC16.yaml b/config/config-options/DUK_USE_HEAPPTR_DEC16.yaml index 1262dcae..d637dcd1 100644 --- a/config/config-options/DUK_USE_HEAPPTR_DEC16.yaml +++ b/config/config-options/DUK_USE_HEAPPTR_DEC16.yaml @@ -1,4 +1,10 @@ define: DUK_USE_HEAPPTR_DEC16 +feature_snippet: | + #if defined(DUK_OPT_HEAPPTR_DEC16) + #define DUK_USE_HEAPPTR_DEC16(udata,ptr) DUK_OPT_HEAPPTR_DEC16((udata),(ptr)) + #else + #undef DUK_USE_HEAPPTR_DEC16 + #endif introduced: 1.1.0 requires: - DUK_USE_HEAPPTR16 diff --git a/config/config-options/DUK_USE_HEAPPTR_ENC16.yaml b/config/config-options/DUK_USE_HEAPPTR_ENC16.yaml index 7339c49c..4b45b6bc 100644 --- a/config/config-options/DUK_USE_HEAPPTR_ENC16.yaml +++ b/config/config-options/DUK_USE_HEAPPTR_ENC16.yaml @@ -1,4 +1,10 @@ define: DUK_USE_HEAPPTR_ENC16 +feature_snippet: | + #if defined(DUK_OPT_HEAPPTR_ENC16) + #define DUK_USE_HEAPPTR_ENC16(udata,ptr) DUK_OPT_HEAPPTR_ENC16((udata),(ptr)) + #else + #undef DUK_USE_HEAPPTR_ENC16 + #endif introduced: 1.1.0 requires: - DUK_USE_HEAPPTR16 diff --git a/config/config-options/DUK_USE_HOBJECT_HASH_PART.yaml b/config/config-options/DUK_USE_HOBJECT_HASH_PART.yaml index 16d91de4..55d1e152 100644 --- a/config/config-options/DUK_USE_HOBJECT_HASH_PART.yaml +++ b/config/config-options/DUK_USE_HOBJECT_HASH_PART.yaml @@ -1,4 +1,10 @@ define: DUK_USE_HOBJECT_HASH_PART +feature_snippet: | + /* For now, hash part is dropped if and only if 16-bit object fields are used. */ + #define DUK_USE_HOBJECT_HASH_PART + #if defined(DUK_OPT_OBJSIZES16) + #undef DUK_USE_HOBJECT_HASH_PART + #endif introduced: 1.1.0 default: true tags: diff --git a/config/config-options/DUK_USE_HSTRING_EXTDATA.yaml b/config/config-options/DUK_USE_HSTRING_EXTDATA.yaml index 9b82d665..b104bef9 100644 --- a/config/config-options/DUK_USE_HSTRING_EXTDATA.yaml +++ b/config/config-options/DUK_USE_HSTRING_EXTDATA.yaml @@ -1,4 +1,5 @@ define: DUK_USE_HSTRING_EXTDATA +feature_enables: DUK_OPT_EXTERNAL_STRINGS introduced: 1.1.0 related_feature_defines: - DUK_OPT_EXTERNAL_STRINGS diff --git a/config/config-options/DUK_USE_INTEGER_BE.yaml b/config/config-options/DUK_USE_INTEGER_BE.yaml index 0b29d0e4..40d15bfb 100644 --- a/config/config-options/DUK_USE_INTEGER_BE.yaml +++ b/config/config-options/DUK_USE_INTEGER_BE.yaml @@ -1,4 +1,18 @@ define: DUK_USE_INTEGER_BE +feature_snippet: | + #if defined(DUK_OPT_FORCE_BYTEORDER) + #if (DUK_OPT_FORCE_BYTEORDER == 1) + #undef DUK_USE_INTEGER_BE + #elif (DUK_OPT_FORCE_BYTEORDER == 2) + #undef DUK_USE_INTEGER_BE + #elif (DUK_OPT_FORCE_BYTEORDER == 3) + #define DUK_USE_INTEGER_BE + #else + #error invalid DUK_OPT_FORCE_BYTEORDER + #endif + #else + #undef DUK_USE_INTEGER_BE + #endif introduced: 1.0.0 default: false conflicts: diff --git a/config/config-options/DUK_USE_INTEGER_LE.yaml b/config/config-options/DUK_USE_INTEGER_LE.yaml index fe9365d1..655bff5c 100644 --- a/config/config-options/DUK_USE_INTEGER_LE.yaml +++ b/config/config-options/DUK_USE_INTEGER_LE.yaml @@ -1,4 +1,18 @@ define: DUK_USE_INTEGER_LE +feature_snippet: | + #if defined(DUK_OPT_FORCE_BYTEORDER) + #if (DUK_OPT_FORCE_BYTEORDER == 1) + #define DUK_USE_INTEGER_LE + #elif (DUK_OPT_FORCE_BYTEORDER == 2) + #define DUK_USE_INTEGER_LE + #elif (DUK_OPT_FORCE_BYTEORDER == 3) + #undef DUK_USE_INTEGER_LE + #else + #error invalid DUK_OPT_FORCE_BYTEORDER + #endif + #else + #define DUK_USE_INTEGER_LE + #endif introduced: 1.0.0 default: true conflicts: diff --git a/config/config-options/DUK_USE_INTERRUPT_COUNTER.yaml b/config/config-options/DUK_USE_INTERRUPT_COUNTER.yaml index 614c7fab..438ad1c8 100644 --- a/config/config-options/DUK_USE_INTERRUPT_COUNTER.yaml +++ b/config/config-options/DUK_USE_INTERRUPT_COUNTER.yaml @@ -1,4 +1,5 @@ define: DUK_USE_INTERRUPT_COUNTER +feature_enables: DUK_OPT_INTERRUPT_COUNTER introduced: 1.1.0 related: - DUK_USE_DEBUGGER_SUPPORT diff --git a/config/config-options/DUK_USE_JC.yaml b/config/config-options/DUK_USE_JC.yaml index 0bfc8184..93b864a2 100644 --- a/config/config-options/DUK_USE_JC.yaml +++ b/config/config-options/DUK_USE_JC.yaml @@ -1,4 +1,5 @@ define: DUK_USE_JC +feature_enables: DUK_OPT_JC introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_JSON_STRINGIFY_FASTPATH.yaml b/config/config-options/DUK_USE_JSON_STRINGIFY_FASTPATH.yaml index 7e0fa9c6..0138036a 100644 --- a/config/config-options/DUK_USE_JSON_STRINGIFY_FASTPATH.yaml +++ b/config/config-options/DUK_USE_JSON_STRINGIFY_FASTPATH.yaml @@ -1,4 +1,5 @@ define: DUK_USE_JSON_STRINGIFY_FASTPATH +feature_enables: DUK_OPT_JSON_STRINGIFY_FASTPATH introduced: 1.3.0 default: false tags: diff --git a/config/config-options/DUK_USE_JX.yaml b/config/config-options/DUK_USE_JX.yaml index f037c96e..52909f1d 100644 --- a/config/config-options/DUK_USE_JX.yaml +++ b/config/config-options/DUK_USE_JX.yaml @@ -1,4 +1,5 @@ define: DUK_USE_JX +feature_enables: DUK_OPT_JX introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_LIGHTFUNC_BUILTINS.yaml b/config/config-options/DUK_USE_LIGHTFUNC_BUILTINS.yaml index 649bdd09..b4161fe7 100644 --- a/config/config-options/DUK_USE_LIGHTFUNC_BUILTINS.yaml +++ b/config/config-options/DUK_USE_LIGHTFUNC_BUILTINS.yaml @@ -1,4 +1,5 @@ define: DUK_USE_LIGHTFUNC_BUILTINS +feature_enables: DUK_OPT_LIGHTFUNC_BUILTINS introduced: 1.1.0 default: false tags: diff --git a/config/config-options/DUK_USE_MARK_AND_SWEEP.yaml b/config/config-options/DUK_USE_MARK_AND_SWEEP.yaml index 81fac74c..d3246ff0 100644 --- a/config/config-options/DUK_USE_MARK_AND_SWEEP.yaml +++ b/config/config-options/DUK_USE_MARK_AND_SWEEP.yaml @@ -1,4 +1,5 @@ define: DUK_USE_MARK_AND_SWEEP +feature_enables: DUK_OPT_MARK_AND_SWEEP introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_MS_STRINGTABLE_RESIZE.yaml b/config/config-options/DUK_USE_MS_STRINGTABLE_RESIZE.yaml index 8c77452e..03e83573 100644 --- a/config/config-options/DUK_USE_MS_STRINGTABLE_RESIZE.yaml +++ b/config/config-options/DUK_USE_MS_STRINGTABLE_RESIZE.yaml @@ -1,4 +1,5 @@ define: DUK_USE_MS_STRINGTABLE_RESIZE +feature_enables: DUK_OPT_MS_STRINGTABLE_RESIZE introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_NONSTD_ARRAY_CONCAT_TRAILER.yaml b/config/config-options/DUK_USE_NONSTD_ARRAY_CONCAT_TRAILER.yaml index 3b871e00..04992f62 100644 --- a/config/config-options/DUK_USE_NONSTD_ARRAY_CONCAT_TRAILER.yaml +++ b/config/config-options/DUK_USE_NONSTD_ARRAY_CONCAT_TRAILER.yaml @@ -1,4 +1,5 @@ define: DUK_USE_NONSTD_ARRAY_CONCAT_TRAILER +feature_enables: DUK_OPT_NONSTD_ARRAY_CONCAT_TRAILER introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_NONSTD_ARRAY_MAP_TRAILER.yaml b/config/config-options/DUK_USE_NONSTD_ARRAY_MAP_TRAILER.yaml index 905b9652..67f28b2a 100644 --- a/config/config-options/DUK_USE_NONSTD_ARRAY_MAP_TRAILER.yaml +++ b/config/config-options/DUK_USE_NONSTD_ARRAY_MAP_TRAILER.yaml @@ -1,4 +1,5 @@ define: DUK_USE_NONSTD_ARRAY_MAP_TRAILER +feature_enables: DUK_OPT_NONSTD_ARRAY_MAP_TRAILER introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_NONSTD_ARRAY_SPLICE_DELCOUNT.yaml b/config/config-options/DUK_USE_NONSTD_ARRAY_SPLICE_DELCOUNT.yaml index c3856310..a4cff0f2 100644 --- a/config/config-options/DUK_USE_NONSTD_ARRAY_SPLICE_DELCOUNT.yaml +++ b/config/config-options/DUK_USE_NONSTD_ARRAY_SPLICE_DELCOUNT.yaml @@ -1,4 +1,5 @@ define: DUK_USE_NONSTD_ARRAY_SPLICE_DELCOUNT +feature_enables: DUK_OPT_NONSTD_ARRAY_SPLICE_DELCOUNT introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_NONSTD_FUNC_CALLER_PROPERTY.yaml b/config/config-options/DUK_USE_NONSTD_FUNC_CALLER_PROPERTY.yaml index 7535c62c..7487d615 100644 --- a/config/config-options/DUK_USE_NONSTD_FUNC_CALLER_PROPERTY.yaml +++ b/config/config-options/DUK_USE_NONSTD_FUNC_CALLER_PROPERTY.yaml @@ -1,4 +1,5 @@ define: DUK_USE_NONSTD_FUNC_CALLER_PROPERTY +feature_enables: DUK_OPT_NONSTD_FUNC_CALLER_PROPERTY introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_NONSTD_FUNC_SOURCE_PROPERTY.yaml b/config/config-options/DUK_USE_NONSTD_FUNC_SOURCE_PROPERTY.yaml index 7739300c..e0fe673c 100644 --- a/config/config-options/DUK_USE_NONSTD_FUNC_SOURCE_PROPERTY.yaml +++ b/config/config-options/DUK_USE_NONSTD_FUNC_SOURCE_PROPERTY.yaml @@ -1,4 +1,5 @@ define: DUK_USE_NONSTD_FUNC_SOURCE_PROPERTY +feature_enables: DUK_OPT_NONSTD_FUNC_SOURCE_PROPERTY introduced: 1.0.0 default: false tags: @@ -8,4 +9,4 @@ description: > function toString() to print out the actual function source. The property is disabled by default because it increases memory footprint. - NOTE: Unimplemented as of Duktape 1.2.0. + NOTE: Unimplemented as of Duktape 1.3.0. diff --git a/config/config-options/DUK_USE_NONSTD_FUNC_STMT.yaml b/config/config-options/DUK_USE_NONSTD_FUNC_STMT.yaml index 894acefa..bee70966 100644 --- a/config/config-options/DUK_USE_NONSTD_FUNC_STMT.yaml +++ b/config/config-options/DUK_USE_NONSTD_FUNC_STMT.yaml @@ -1,4 +1,5 @@ define: DUK_USE_NONSTD_FUNC_STMT +feature_enables: DUK_OPT_NONSTD_FUNC_STMT introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_NONSTD_GETTER_KEY_ARGUMENT.yaml b/config/config-options/DUK_USE_NONSTD_GETTER_KEY_ARGUMENT.yaml index 09b6c905..2f071133 100644 --- a/config/config-options/DUK_USE_NONSTD_GETTER_KEY_ARGUMENT.yaml +++ b/config/config-options/DUK_USE_NONSTD_GETTER_KEY_ARGUMENT.yaml @@ -1,4 +1,5 @@ define: DUK_USE_NONSTD_GETTER_KEY_ARGUMENT +feature_enables: DUK_OPT_NONSTD_ACCESSOR_KEY_ARGUMENT introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_NONSTD_JSON_ESC_U2028_U2029.yaml b/config/config-options/DUK_USE_NONSTD_JSON_ESC_U2028_U2029.yaml index 20f330bf..c625f9e9 100644 --- a/config/config-options/DUK_USE_NONSTD_JSON_ESC_U2028_U2029.yaml +++ b/config/config-options/DUK_USE_NONSTD_JSON_ESC_U2028_U2029.yaml @@ -1,4 +1,5 @@ define: DUK_USE_NONSTD_JSON_ESC_U2028_U2029 +feature_enables: DUK_OPT_NONSTD_JSON_ESC_U2028_U2029 introduced: 1.1.0 default: true tags: diff --git a/config/config-options/DUK_USE_NONSTD_REGEXP_DOLLAR_ESCAPE.yaml b/config/config-options/DUK_USE_NONSTD_REGEXP_DOLLAR_ESCAPE.yaml index 5cc2efbb..464e049f 100644 --- a/config/config-options/DUK_USE_NONSTD_REGEXP_DOLLAR_ESCAPE.yaml +++ b/config/config-options/DUK_USE_NONSTD_REGEXP_DOLLAR_ESCAPE.yaml @@ -1,4 +1,5 @@ define: DUK_USE_NONSTD_REGEXP_DOLLAR_ESCAPE +feature_enables: DUK_OPT_NONSTD_REGEXP_DOLLAR_ESCAPE introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_NONSTD_SETTER_KEY_ARGUMENT.yaml b/config/config-options/DUK_USE_NONSTD_SETTER_KEY_ARGUMENT.yaml index 8731d272..bcc63889 100644 --- a/config/config-options/DUK_USE_NONSTD_SETTER_KEY_ARGUMENT.yaml +++ b/config/config-options/DUK_USE_NONSTD_SETTER_KEY_ARGUMENT.yaml @@ -1,4 +1,5 @@ define: DUK_USE_NONSTD_SETTER_KEY_ARGUMENT +feature_enables: DUK_OPT_NONSTD_ACCESSOR_KEY_ARGUMENT introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_NONSTD_STRING_FROMCHARCODE_32BIT.yaml b/config/config-options/DUK_USE_NONSTD_STRING_FROMCHARCODE_32BIT.yaml index d3331339..36558c33 100644 --- a/config/config-options/DUK_USE_NONSTD_STRING_FROMCHARCODE_32BIT.yaml +++ b/config/config-options/DUK_USE_NONSTD_STRING_FROMCHARCODE_32BIT.yaml @@ -1,4 +1,5 @@ define: DUK_USE_NONSTD_STRING_FROMCHARCODE_32BIT +feature_enables: DUK_OPT_NONSTD_STRING_FROMCHARCODE_32BIT introduced: 1.2.0 default: true tags: diff --git a/config/config-options/DUK_USE_OBJSIZES16.yaml b/config/config-options/DUK_USE_OBJSIZES16.yaml index a10cf1f1..c19a8110 100644 --- a/config/config-options/DUK_USE_OBJSIZES16.yaml +++ b/config/config-options/DUK_USE_OBJSIZES16.yaml @@ -1,4 +1,5 @@ define: DUK_USE_OBJSIZES16 +feature_enables: DUK_OPT_OBJSIZES16 introduced: 1.1.0 default: false tags: diff --git a/config/config-options/DUK_USE_OCTAL_SUPPORT.yaml b/config/config-options/DUK_USE_OCTAL_SUPPORT.yaml index 83057e39..28955ee6 100644 --- a/config/config-options/DUK_USE_OCTAL_SUPPORT.yaml +++ b/config/config-options/DUK_USE_OCTAL_SUPPORT.yaml @@ -1,4 +1,5 @@ define: DUK_USE_OCTAL_SUPPORT +feature_enables: DUK_OPT_OCTAL_SUPPORT introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_PACKED_TVAL.yaml b/config/config-options/DUK_USE_PACKED_TVAL.yaml index 1bda2823..a4bfd11d 100644 --- a/config/config-options/DUK_USE_PACKED_TVAL.yaml +++ b/config/config-options/DUK_USE_PACKED_TVAL.yaml @@ -1,4 +1,9 @@ define: DUK_USE_PACKED_TVAL +feature_enables: DUK_OPT_PACKED_TVAL +# FIXME: current snippet is actually: +#if defined(DUK_USE_PACKED_TVAL_POSSIBLE) && !defined(DUK_OPT_NO_PACKED_TVAL) +#define DUK_USE_PACKED_TVAL +#endif introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_PANIC_ABORT.yaml b/config/config-options/DUK_USE_PANIC_ABORT.yaml index fd32caba..3c8973e6 100644 --- a/config/config-options/DUK_USE_PANIC_ABORT.yaml +++ b/config/config-options/DUK_USE_PANIC_ABORT.yaml @@ -1,4 +1,9 @@ define: DUK_USE_PANIC_ABORT +feature_snippet: | + #undef DUK_USE_PANIC_ABORT + #if !defined(DUK_OPT_SEGFAULT_ON_PANIC) + #define DUK_USE_PANIC_ABORT + #endif introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_PANIC_HANDLER.yaml b/config/config-options/DUK_USE_PANIC_HANDLER.yaml index 7802e412..b1b27765 100644 --- a/config/config-options/DUK_USE_PANIC_HANDLER.yaml +++ b/config/config-options/DUK_USE_PANIC_HANDLER.yaml @@ -1,4 +1,9 @@ define: DUK_USE_PANIC_HANDLER +feature_snippet: | + #undef DUK_USE_PANIC_HANDLER + #if defined(DUK_OPT_PANIC_HANDLER) + #define DUK_USE_PANIC_HANDLER(code,msg) DUK_OPT_PANIC_HANDLER((code),(msg)) + #endif introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_PANIC_SEGFAULT.yaml b/config/config-options/DUK_USE_PANIC_SEGFAULT.yaml index 463a2f0e..7fe5463f 100644 --- a/config/config-options/DUK_USE_PANIC_SEGFAULT.yaml +++ b/config/config-options/DUK_USE_PANIC_SEGFAULT.yaml @@ -1,4 +1,9 @@ define: DUK_USE_PANIC_SEGFAULT +feature_snippet: | + #undef DUK_USE_PANIC_SEGFAULT + #if defined(DUK_OPT_SEGFAULT_ON_PANIC) + #define DUK_USE_PANIC_SEGFAULT + #endif introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_PC2LINE.yaml b/config/config-options/DUK_USE_PC2LINE.yaml index c31b757c..5439a472 100644 --- a/config/config-options/DUK_USE_PC2LINE.yaml +++ b/config/config-options/DUK_USE_PC2LINE.yaml @@ -1,4 +1,5 @@ define: DUK_USE_PC2LINE +feature_enables: DUK_OPT_PC2LINE introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_REFCOUNT16.yaml b/config/config-options/DUK_USE_REFCOUNT16.yaml index d86882bf..4e8eb878 100644 --- a/config/config-options/DUK_USE_REFCOUNT16.yaml +++ b/config/config-options/DUK_USE_REFCOUNT16.yaml @@ -1,4 +1,5 @@ define: DUK_USE_REFCOUNT16 +feature_enables: DUK_OPT_REFCOUNT16 introduced: 1.1.0 default: false tags: diff --git a/config/config-options/DUK_USE_REFERENCE_COUNTING.yaml b/config/config-options/DUK_USE_REFERENCE_COUNTING.yaml index 4683d4a4..d4cbf4ab 100644 --- a/config/config-options/DUK_USE_REFERENCE_COUNTING.yaml +++ b/config/config-options/DUK_USE_REFERENCE_COUNTING.yaml @@ -1,4 +1,5 @@ define: DUK_USE_REFERENCE_COUNTING +feature_enables: DUK_OPT_REFERENCE_COUNTING related_feature_defines: - DUK_OPT_NO_REFERENCE_COUNTING introduced: 1.0.0 diff --git a/config/config-options/DUK_USE_REGEXP_SUPPORT.yaml b/config/config-options/DUK_USE_REGEXP_SUPPORT.yaml index 39ed04ef..9292981a 100644 --- a/config/config-options/DUK_USE_REGEXP_SUPPORT.yaml +++ b/config/config-options/DUK_USE_REGEXP_SUPPORT.yaml @@ -1,4 +1,5 @@ define: DUK_USE_REGEXP_SUPPORT +feature_enables: DUK_OPT_REGEXP_SUPPORT introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_SECTION_B.yaml b/config/config-options/DUK_USE_SECTION_B.yaml index 11f49900..b0b5125c 100644 --- a/config/config-options/DUK_USE_SECTION_B.yaml +++ b/config/config-options/DUK_USE_SECTION_B.yaml @@ -1,4 +1,5 @@ define: DUK_USE_SECTION_B +feature_enables: DUK_OPT_SECTION_B introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_SELF_TESTS.yaml b/config/config-options/DUK_USE_SELF_TESTS.yaml index 8c9b77c4..1538aecc 100644 --- a/config/config-options/DUK_USE_SELF_TESTS.yaml +++ b/config/config-options/DUK_USE_SELF_TESTS.yaml @@ -1,4 +1,5 @@ define: DUK_USE_SELF_TESTS +feature_enables: DUK_OPT_SELF_TESTS introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_SETJMP.yaml b/config/config-options/DUK_USE_SETJMP.yaml index 28eafb84..1b062af7 100644 --- a/config/config-options/DUK_USE_SETJMP.yaml +++ b/config/config-options/DUK_USE_SETJMP.yaml @@ -1,4 +1,5 @@ define: DUK_USE_SETJMP +feature_enables: DUK_OPT_SETJMP introduced: 1.1.0 default: true tags: diff --git a/config/config-options/DUK_USE_SHUFFLE_TORTURE.yaml b/config/config-options/DUK_USE_SHUFFLE_TORTURE.yaml index 822ca6e2..0f121283 100644 --- a/config/config-options/DUK_USE_SHUFFLE_TORTURE.yaml +++ b/config/config-options/DUK_USE_SHUFFLE_TORTURE.yaml @@ -1,4 +1,5 @@ define: DUK_USE_SHUFFLE_TORTURE +feature_enables: DUK_OPT_SHUFFLE_TORTURE introduced: 1.2.0 default: false tags: diff --git a/config/config-options/DUK_USE_SIGSETJMP.yaml b/config/config-options/DUK_USE_SIGSETJMP.yaml index 610ea75d..1d46c5ae 100644 --- a/config/config-options/DUK_USE_SIGSETJMP.yaml +++ b/config/config-options/DUK_USE_SIGSETJMP.yaml @@ -1,4 +1,5 @@ define: DUK_USE_SIGSETJMP +feature_enables: DUK_OPT_SIGSETJMP introduced: 1.1.0 default: false tags: diff --git a/config/config-options/DUK_USE_SOURCE_NONBMP.yaml b/config/config-options/DUK_USE_SOURCE_NONBMP.yaml index 9682a179..e96f886f 100644 --- a/config/config-options/DUK_USE_SOURCE_NONBMP.yaml +++ b/config/config-options/DUK_USE_SOURCE_NONBMP.yaml @@ -1,4 +1,5 @@ define: DUK_USE_SOURCE_NONBMP +feature_enables: DUK_OPT_SOURCE_NONBMP introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_STRHASH16.yaml b/config/config-options/DUK_USE_STRHASH16.yaml index f66e36b5..6ee967d9 100644 --- a/config/config-options/DUK_USE_STRHASH16.yaml +++ b/config/config-options/DUK_USE_STRHASH16.yaml @@ -1,4 +1,5 @@ define: DUK_USE_STRHASH16 +feature_enables: DUK_OPT_STRHASH16 introduced: 1.1.0 default: false tags: diff --git a/config/config-options/DUK_USE_STRICT_DECL.yaml b/config/config-options/DUK_USE_STRICT_DECL.yaml index 533bf743..27b3ec1d 100644 --- a/config/config-options/DUK_USE_STRICT_DECL.yaml +++ b/config/config-options/DUK_USE_STRICT_DECL.yaml @@ -1,4 +1,5 @@ define: DUK_USE_STRICT_DECL +feature_enables: DUK_OPT_STRICT_DECL introduced: 1.1.0 default: true tags: diff --git a/config/config-options/DUK_USE_STRICT_UTF8_SOURCE.yaml b/config/config-options/DUK_USE_STRICT_UTF8_SOURCE.yaml index ceac807b..e4110eac 100644 --- a/config/config-options/DUK_USE_STRICT_UTF8_SOURCE.yaml +++ b/config/config-options/DUK_USE_STRICT_UTF8_SOURCE.yaml @@ -1,4 +1,5 @@ define: DUK_USE_STRICT_UTF8_SOURCE +feature_enables: DUK_OPT_STRICT_UTF8_SOURCE introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_STRLEN16.yaml b/config/config-options/DUK_USE_STRLEN16.yaml index 4d8a801c..1e57702b 100644 --- a/config/config-options/DUK_USE_STRLEN16.yaml +++ b/config/config-options/DUK_USE_STRLEN16.yaml @@ -1,4 +1,5 @@ define: DUK_USE_STRLEN16 +feature_enables: DUK_OPT_STRLEN16 introduced: 1.1.0 default: false tags: diff --git a/config/config-options/DUK_USE_STRTAB_CHAIN.yaml b/config/config-options/DUK_USE_STRTAB_CHAIN.yaml index c2e814cc..034264da 100644 --- a/config/config-options/DUK_USE_STRTAB_CHAIN.yaml +++ b/config/config-options/DUK_USE_STRTAB_CHAIN.yaml @@ -1,4 +1,9 @@ define: DUK_USE_STRTAB_CHAIN +feature_snippet: | + #undef DUK_USE_STRTAB_CHAIN + #if defined(DUK_OPT_STRTAB_CHAIN) && defined(DUK_OPT_STRTAB_CHAIN_SIZE) + #define DUK_USE_STRTAB_CHAIN + #endif introduced: 1.1.0 related: - DUK_USE_STRTAB_CHAIN_SIZE diff --git a/config/config-options/DUK_USE_STRTAB_CHAIN_SIZE.yaml b/config/config-options/DUK_USE_STRTAB_CHAIN_SIZE.yaml index 71868543..c3bfa364 100644 --- a/config/config-options/DUK_USE_STRTAB_CHAIN_SIZE.yaml +++ b/config/config-options/DUK_USE_STRTAB_CHAIN_SIZE.yaml @@ -1,4 +1,10 @@ define: DUK_USE_STRTAB_CHAIN_SIZE +feature_snippet: | + #undef DUK_USE_STRTAB_CHAIN_SIZE + #if defined(DUK_OPT_STRTAB_CHAIN) && defined(DUK_OPT_STRTAB_CHAIN_SIZE) + /* Low memory algorithm: separate chaining using arrays, fixed size hash */ + #define DUK_USE_STRTAB_CHAIN_SIZE DUK_OPT_STRTAB_CHAIN_SIZE + #endif introduced: 1.1.0 requires: - DUK_USE_STRTAB_CHAIN diff --git a/config/config-options/DUK_USE_STRTAB_PROBE.yaml b/config/config-options/DUK_USE_STRTAB_PROBE.yaml index 25b6e6f4..ae496e0c 100644 --- a/config/config-options/DUK_USE_STRTAB_PROBE.yaml +++ b/config/config-options/DUK_USE_STRTAB_PROBE.yaml @@ -1,4 +1,9 @@ define: DUK_USE_STRTAB_PROBE +feature_snippet: | + #undef DUK_USE_STRTAB_PROBE + #if !(defined(DUK_OPT_STRTAB_CHAIN) && defined(DUK_OPT_STRTAB_CHAIN_SIZE)) + #define DUK_USE_STRTAB_PROBE + #endif introduced: 1.1.0 default: true tags: diff --git a/config/config-options/DUK_USE_TAILCALL.yaml b/config/config-options/DUK_USE_TAILCALL.yaml index 55fc5c22..2c113e67 100644 --- a/config/config-options/DUK_USE_TAILCALL.yaml +++ b/config/config-options/DUK_USE_TAILCALL.yaml @@ -1,4 +1,10 @@ define: DUK_USE_TAILCALL +feature_snippet: | + #if defined(DUK_OPT_NONSTD_FUNC_CALLER_PROPERTY) + #undef DUK_USE_TAILCALL + #else + #define DUK_USE_TAILCALL + #endif introduced: 1.0.0 conflicts: - DUK_USE_NONSTD_FUNC_CALLER_PROPERTY diff --git a/config/config-options/DUK_USE_TARGET_INFO.yaml b/config/config-options/DUK_USE_TARGET_INFO.yaml index 6ea33054..270496d9 100644 --- a/config/config-options/DUK_USE_TARGET_INFO.yaml +++ b/config/config-options/DUK_USE_TARGET_INFO.yaml @@ -1,4 +1,10 @@ define: DUK_USE_TARGET_INFO +feature_snippet: | + #if defined(DUK_OPT_TARGET_INFO) + #define DUK_USE_TARGET_INFO DUK_OPT_TARGET_INFO + #else + #define DUK_USE_TARGET_INFO "unknown" + #endif introduced: 1.2.0 default: string: "unknown" diff --git a/config/config-options/DUK_USE_TRACEBACKS.yaml b/config/config-options/DUK_USE_TRACEBACKS.yaml index f9f4bda6..1a8a57c3 100644 --- a/config/config-options/DUK_USE_TRACEBACKS.yaml +++ b/config/config-options/DUK_USE_TRACEBACKS.yaml @@ -1,4 +1,12 @@ define: DUK_USE_TRACEBACKS +feature_snippet: | + #if defined(DUK_OPT_NO_AUGMENT_ERRORS) + #undef DUK_USE_TRACEBACKS + #elif defined(DUK_OPT_NO_TRACEBACKS) + #undef DUK_USE_TRACEBACKS + #else + #define DUK_USE_TRACEBACKS + #endif introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_TRACEBACK_DEPTH.yaml b/config/config-options/DUK_USE_TRACEBACK_DEPTH.yaml index f3a0b42a..2f4f0e02 100644 --- a/config/config-options/DUK_USE_TRACEBACK_DEPTH.yaml +++ b/config/config-options/DUK_USE_TRACEBACK_DEPTH.yaml @@ -1,4 +1,10 @@ define: DUK_USE_TRACEBACK_DEPTH +feature_snippet: | + #if defined(DUK_OPT_TRACEBACK_DEPTH) + #define DUK_USE_TRACEBACK_DEPTH DUK_OPT_TRACEBACK_DEPTH + #else + #define DUK_USE_TRACEBACK_DEPTH 10 + #endif introduced: 1.0.0 default: 10 tags: diff --git a/config/config-options/DUK_USE_UNDERSCORE_SETJMP.yaml b/config/config-options/DUK_USE_UNDERSCORE_SETJMP.yaml index 88d34d5e..d0a34851 100644 --- a/config/config-options/DUK_USE_UNDERSCORE_SETJMP.yaml +++ b/config/config-options/DUK_USE_UNDERSCORE_SETJMP.yaml @@ -1,4 +1,5 @@ define: DUK_USE_UNDERSCORE_SETJMP +feature_enables: DUK_OPT_UNDERSCORE_SETJMP introduced: 1.1.0 default: false tags: diff --git a/config/config-options/DUK_USE_USER_DECLARE.yaml b/config/config-options/DUK_USE_USER_DECLARE.yaml index 755ca4ee..0309d891 100644 --- a/config/config-options/DUK_USE_USER_DECLARE.yaml +++ b/config/config-options/DUK_USE_USER_DECLARE.yaml @@ -1,4 +1,10 @@ define: DUK_USE_USER_DECLARE +feature_snippet: | + #if defined(DUK_OPT_DECLARE) + #define DUK_USE_USER_DECLARE() DUK_OPT_DECLARE + #else + #define DUK_USE_USER_DECLARE() /* no user declarations */ + #endif introduced: 1.0.0 default: verbatim: '#define DUK_USE_USER_DECLARE() /* no user declarations */' diff --git a/config/config-options/DUK_USE_USER_INITJS.yaml b/config/config-options/DUK_USE_USER_INITJS.yaml index f49a3ce1..7e09a40c 100644 --- a/config/config-options/DUK_USE_USER_INITJS.yaml +++ b/config/config-options/DUK_USE_USER_INITJS.yaml @@ -1,4 +1,10 @@ define: DUK_USE_USER_INITJS +feature_snippet: | + /* User provided InitJS. */ + #undef DUK_USE_USER_INITJS + #if defined(DUK_OPT_USER_INITJS) + #define DUK_USE_USER_INITJS (DUK_OPT_USER_INITJS) + #endif introduced: 1.0.0 default: false tags: diff --git a/config/config-options/DUK_USE_VERBOSE_ERRORS.yaml b/config/config-options/DUK_USE_VERBOSE_ERRORS.yaml index 1ad9127e..ed3cc7b7 100644 --- a/config/config-options/DUK_USE_VERBOSE_ERRORS.yaml +++ b/config/config-options/DUK_USE_VERBOSE_ERRORS.yaml @@ -1,4 +1,5 @@ define: DUK_USE_VERBOSE_ERRORS +feature_enables: DUK_OPT_VERBOSE_ERRORS introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_VOLUNTARY_GC.yaml b/config/config-options/DUK_USE_VOLUNTARY_GC.yaml index 530df47f..8b7dd85a 100644 --- a/config/config-options/DUK_USE_VOLUNTARY_GC.yaml +++ b/config/config-options/DUK_USE_VOLUNTARY_GC.yaml @@ -1,4 +1,5 @@ define: DUK_USE_VOLUNTARY_GC +feature_enables: DUK_OPT_VOLUNTARY_GC introduced: 1.0.0 default: true tags: diff --git a/config/config-options/DUK_USE_ZERO_BUFFER_DATA.yaml b/config/config-options/DUK_USE_ZERO_BUFFER_DATA.yaml index 4015c934..152d5366 100644 --- a/config/config-options/DUK_USE_ZERO_BUFFER_DATA.yaml +++ b/config/config-options/DUK_USE_ZERO_BUFFER_DATA.yaml @@ -1,4 +1,5 @@ define: DUK_USE_ZERO_BUFFER_DATA +feature_enables: DUK_OPT_ZERO_BUFFER_DATA introduced: 1.0.0 default: true tags: diff --git a/config/examples/low_memory.yaml b/config/examples/low_memory.yaml index 345cd331..ea6b3ffa 100644 --- a/config/examples/low_memory.yaml +++ b/config/examples/low_memory.yaml @@ -21,6 +21,8 @@ DUK_USE_LEXER_SLIDING_WINDOW: false DUK_USE_JSON_STRINGIFY_FASTPATH: false DUK_USE_JSON_QUOTESTRING_FASTPATH: false DUK_USE_JSON_DECSTRING_FASTPATH: false +DUK_USE_JSON_DECNUMBER_FASTPATH: false +DUK_USE_JSON_EATWHITE_FASTPATH: false DUK_USE_BYTECODE_DUMP_SUPPORT: false DUK_USE_JX: false DUK_USE_JC: false diff --git a/config/feature-options/DUK_OPT_BUFFEROBJECT_SUPPORT.yaml b/config/feature-options/DUK_OPT_BUFFEROBJECT_SUPPORT.yaml new file mode 100644 index 00000000..1cb1dae5 --- /dev/null +++ b/config/feature-options/DUK_OPT_BUFFEROBJECT_SUPPORT.yaml @@ -0,0 +1,8 @@ +define: DUK_OPT_BUFFEROBJECT_SUPPORT +introduced: 1.3.0 +tags: + - ecmascript6 +description: > + Enable support for Khronos/ES6 typed arrays and Node.js Buffer objects. + This adds about 8-9 kB of code footprint on x64. When disabled, Duktape + custom plain buffers and Duktape.Buffer are still supported. diff --git a/config/feature-options/DUK_OPT_NO_BUFFEROBJECT_SUPPORT.yaml b/config/feature-options/DUK_OPT_NO_BUFFEROBJECT_SUPPORT.yaml new file mode 100644 index 00000000..395aaf50 --- /dev/null +++ b/config/feature-options/DUK_OPT_NO_BUFFEROBJECT_SUPPORT.yaml @@ -0,0 +1,8 @@ +define: DUK_OPT_NO_BUFFEROBJECT_SUPPORT +introduced: 1.3.0 +tags: + - ecmascript6 +description: > + Disable support for Khronos/ES6 typed arrays and Node.js Buffer objects + which reduces code footprint. When disabled, Duktape custom plain buffers + and Duktape.Buffer are still supported. diff --git a/config/header-snippets/DUK_F_MSVC_CRT_SECURE.h.in b/config/header-snippets/DUK_F_MSVC_CRT_SECURE.h.in new file mode 100644 index 00000000..e69de29b diff --git a/config/header-snippets/DUK_F_NO_STDINT_H.h.in b/config/header-snippets/DUK_F_NO_STDINT_H.h.in new file mode 100644 index 00000000..15d4ae95 --- /dev/null +++ b/config/header-snippets/DUK_F_NO_STDINT_H.h.in @@ -0,0 +1,10 @@ +#if defined(DUK_F_WINDOWS) && defined(_MSC_VER) +#if (_MSC_VER < 1700) +/* VS2012+ has stdint.h, < VS2012 does not (but it's available for download). */ +#define DUK_F_NO_STDINT_H +#endif +#endif + +#if defined(DUK_F_TOS) || defined(DUK_F_BCC) +#define DUK_F_NO_STDINT_H +#endif diff --git a/config/header-snippets/DUK_F_POSIX.h.in b/config/header-snippets/DUK_F_POSIX.h.in new file mode 100644 index 00000000..c0f6f2fd --- /dev/null +++ b/config/header-snippets/DUK_F_POSIX.h.in @@ -0,0 +1,3 @@ +#if defined(__posix) +#define DUK_F_POSIX +#endif diff --git a/config/header-snippets/DUK_F_PPC.h.in b/config/header-snippets/DUK_F_PPC.h.in new file mode 100644 index 00000000..055379f8 --- /dev/null +++ b/config/header-snippets/DUK_F_PPC.h.in @@ -0,0 +1,9 @@ +/* PowerPC */ +#if defined(__powerpc) || defined(__powerpc__) || defined(__PPC__) +#define DUK_F_PPC +#if defined(__PPC64__) +#define DUK_F_PPC64 +#else +#define DUK_F_PPC32 +#endif +#endif diff --git a/config/header-snippets/DUK_F_ULL_CONSTS.h.in b/config/header-snippets/DUK_F_ULL_CONSTS.h.in index 59fd0c9e..c10e15af 100644 --- a/config/header-snippets/DUK_F_ULL_CONSTS.h.in +++ b/config/header-snippets/DUK_F_ULL_CONSTS.h.in @@ -4,4 +4,6 @@ * Assume C99/C++11 environments have these. However, BCC is nominally * C99 but doesn't support these constants. */ +#if !defined(DUK_F_BCC) #define DUK_F_ULL_CONSTS +#endif diff --git a/config/header-snippets/DUK_F_X32.h.in b/config/header-snippets/DUK_F_X32.h.in index 48d6f8a0..7b231258 100644 --- a/config/header-snippets/DUK_F_X32.h.in +++ b/config/header-snippets/DUK_F_X32.h.in @@ -7,6 +7,6 @@ (defined(_ILP32) || defined(__ILP32__)) #define DUK_F_X32 /* define only one of: DUK_F_X86, DUK_F_X32, or DUK_F_X64 */ -#undef DUK_F_X64 -#undef DUK_F_X86 +#undef DUK_F_X64 /* redefine */ +#undef DUK_F_X86 /* redefine */ #endif diff --git a/config/header-snippets/architecture_generic.h.in b/config/header-snippets/architecture_generic.h.in new file mode 100644 index 00000000..9bb98d2f --- /dev/null +++ b/config/header-snippets/architecture_generic.h.in @@ -0,0 +1,9 @@ +/* These are necessary wild guesses. */ +#define DUK_USE_ARCH_STRING "generic" +#define DUK_USE_INTEGER_LE +#define DUK_USE_DOUBLE_LE +#define DUK_USE_ALIGN_BY 8 +#undef DUK_USE_UNALIGNED_ACCESSES_POSSIBLE +#undef DUK_USE_HASHBYTES_UNALIGNED_U32_ACCESS +#undef DUK_USE_PACKED_TVAL +#undef DUK_USE_PACKED_TVAL_POSSIBLE diff --git a/config/header-snippets/architecture_m68k.h.in b/config/header-snippets/architecture_m68k.h.in new file mode 100644 index 00000000..41aefe8c --- /dev/null +++ b/config/header-snippets/architecture_m68k.h.in @@ -0,0 +1,10 @@ +/* FIXME: untested */ + +#define DUK_USE_ARCH_STRING "m68k" +#define DUK_USE_INTEGER_BE +#define DUK_USE_DOUBLE_BE +#define DUK_USE_ALIGN_BY 8 +#undef DUK_USE_UNALIGNED_ACCESSES_POSSIBLE +#undef DUK_USE_HASHBYTES_UNALIGNED_U32_ACCESS +#define DUK_USE_PACKED_TVAL +#define DUK_USE_PACKED_TVAL_POSSIBLE diff --git a/config/header-snippets/architecture_powerpc.h.in b/config/header-snippets/architecture_powerpc.h.in new file mode 100644 index 00000000..1a97e899 --- /dev/null +++ b/config/header-snippets/architecture_powerpc.h.in @@ -0,0 +1,10 @@ +/* FIXME: untested */ + +#define DUK_USE_ARCH_STRING "ppc" +#define DUK_USE_INTEGER_BE +#define DUK_USE_DOUBLE_BE +#define DUK_USE_ALIGN_BY 8 +#undef DUK_USE_UNALIGNED_ACCESSES_POSSIBLE +#undef DUK_USE_HASHBYTES_UNALIGNED_U32_ACCESS +#define DUK_USE_PACKED_TVAL +#define DUK_USE_PACKED_TVAL_POSSIBLE diff --git a/config/header-snippets/compiler_clang.h.in b/config/header-snippets/compiler_clang.h.in new file mode 100644 index 00000000..a540c915 --- /dev/null +++ b/config/header-snippets/compiler_clang.h.in @@ -0,0 +1 @@ +/* FIXME */ diff --git a/config/header-snippets/compiler_generic.h.in b/config/header-snippets/compiler_generic.h.in new file mode 100644 index 00000000..365172bb --- /dev/null +++ b/config/header-snippets/compiler_generic.h.in @@ -0,0 +1,68 @@ +/* FIXME: unfinished */ + +#define DUK_VA_COPY(dest,src) va_copy(dest,src) + +/* FIXME: these should have defaults because these are compiler independent + * at least in almost all cases. + */ +#define DUK_F_STRINGIFY_HELPER(x) #x +#define DUK_MACRO_STRINGIFY(x) DUK_F_STRINGIFY_HELPER(x) +#define DUK_CAUSE_SEGFAULT() do { *((volatile duk_uint32_t *) NULL) = (duk_uint32_t) 0xdeadbeefUL; } while (0) +#define DUK_UNREF(x) do { (void) (x); } while (0) + +#define DUK_NORETURN(decl) decl +#define DUK_UNREACHABLE() do { } while(0) +#define DUK_LIKELY(x) (x) +#define DUK_UNLIKELY(x) (x) +#define DUK_NOINLINE /*nop*/ +#define DUK_INLINE /*nop*/ +#define DUK_ALWAYS_INLINE /*nop*/ + +#define DUK_EXTERNAL_DECL extern +#define DUK_EXTERNAL /*empty*/ +#if defined(DUK_SINGLE_FILE) +#define DUK_INTERNAL_DECL static +#define DUK_INTERNAL static +#else /* DUK_SINGLE_FILE */ +#define DUK_INTERNAL_DECL extern +#define DUK_INTERNAL /*empty*/ +#endif +#define DUK_LOCAL_DECL static +#define DUK_LOCAL static + +#define DUK_FILE_MACRO __FILE__ +#define DUK_LINE_MACRO __LINE__ +#define DUK_FUNC_MACRO __func__ + +#define DUK_BSWAP32(x) \ + ((((duk_uint32_t) (x)) >> 24) | \ + ((((duk_uint32_t) (x)) >> 8) & 0xff00UL) | \ + ((((duk_uint32_t) (x)) << 8) & 0xff0000UL) | \ + (((duk_uint32_t) (x)) << 24)) + +#define DUK_BSWAP16(x) \ + ((duk_uint16_t) (x) >> 8) | \ + ((duk_uint16_t) (x) << 8) + +#if defined(DUK_F_CPP) +#define DUK_USE_COMPILER_STRING "generic-c++" +#else +#define DUK_USE_COMPILER_STRING "generic" +#endif + +#undef DUK_USE_VARIADIC_MACROS +#if defined(DUK_F_C99) || defined(DUK_F_CPP11) +#define DUK_USE_VARIADIC_MACROS +#endif + +#undef DUK_USE_FLEX_C99 +#undef DUK_USE_FLEX_ZEROSIZE +#undef DUK_USE_FLEX_ONESIZE +#if defined(DUK_F_C99) +#define DUK_USE_FLEX_C99 +#else +#define DUK_USE_FLEX_ZEROSIZE +#endif + +#undef DUK_USE_GCC_PRAGMAS +#undef DUK_USE_PACK_DUMMY_MEMBER diff --git a/config/header-snippets/platform_amigaos.h.in b/config/header-snippets/platform_amigaos.h.in new file mode 100644 index 00000000..7b4f9ab1 --- /dev/null +++ b/config/header-snippets/platform_amigaos.h.in @@ -0,0 +1,53 @@ +/* FIXME: untested */ + +#if defined(DUK_F_M68K) +/* AmigaOS on M68k */ +#define DUK_USE_DATE_NOW_TIME +#define DUK_USE_DATE_TZO_GMTIME +/* no parsing (not an error) */ +#define DUK_USE_DATE_FMT_STRFTIME +#include +#include +#elif defined(DUK_F_PPC) +#define DUK_USE_DATE_NOW_GETTIMEOFDAY +#define DUK_USE_DATE_TZO_GMTIME_R +#define DUK_USE_DATE_PRS_STRPTIME +#define DUK_USE_DATE_FMT_STRFTIME +#include +#include +#ifndef UINTPTR_MAX +#define UINTPTR_MAX UINT_MAX +#endif +#else +#error AmigaOS but not M68K/PPC, not supported now +#endif + +#include +#include +#include +#include /* varargs */ +#include +#include /* e.g. ptrdiff_t */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include /* varargs */ +#include +#include /* e.g. ptrdiff_t */ +#include +#include + +/* FIXME: setjmp stuff needs a rework. */ +#define DUK_USE_SETJMP +#define DUK_SETJMP(jb) setjmp((jb)) +#define DUK_LONGJMP(jb) longjmp((jb), 1) + +#define DUK_USE_OS_STRING "amigaos" diff --git a/config/header-snippets/platform_apple.h.in b/config/header-snippets/platform_apple.h.in new file mode 100644 index 00000000..ced5972f --- /dev/null +++ b/config/header-snippets/platform_apple.h.in @@ -0,0 +1,29 @@ +/* Mac OSX, iPhone, Darwin */ +#define DUK_USE_DATE_NOW_GETTIMEOFDAY +#define DUK_USE_DATE_TZO_GMTIME_R +#define DUK_USE_DATE_PRS_STRPTIME +#define DUK_USE_DATE_FMT_STRFTIME +#include +#include +#include +#include +#include +#include + +/* http://stackoverflow.com/questions/5919996/how-to-detect-reliably-mac-os-x-ios-linux-windows-in-c-preprocessor */ +#if TARGET_IPHONE_SIMULATOR +#define DUK_USE_OS_STRING "iphone-sim" +#elif TARGET_OS_IPHONE +#define DUK_USE_OS_STRING "iphone" +#elif TARGET_OS_MAC +#define DUK_USE_OS_STRING "ios" +#else +#define DUK_USE_OS_STRING "ios-unknown" +#endif + +/* FIXME: setjmp/longjmp needs a rework, DUK_USE_UNDERSCORE_SETJMP is needed because + * duk_jmpbuf.h needs it. It shouldn't. + */ +#define DUK_USE_UNDERSCORE_SETJMP +#define DUK_SETJMP(jb) _setjmp((jb)) +#define DUK_LONGJMP(jb) _longjmp((jb), 1) diff --git a/config/header-snippets/platform_cppextras.h.in b/config/header-snippets/platform_cppextras.h.in new file mode 100644 index 00000000..2beccfd2 --- /dev/null +++ b/config/header-snippets/platform_cppextras.h.in @@ -0,0 +1,9 @@ +/* Workaround for older C++ compilers before including , + * see e.g.: https://sourceware.org/bugzilla/show_bug.cgi?id=15366 + */ +#if defined(__cplusplus) && !defined(__STDC_LIMIT_MACROS) +#define __STDC_LIMIT_MACROS +#endif +#if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS) +#define __STDC_CONSTANT_MACROS +#endif diff --git a/config/header-snippets/platform_cygwin.h.in b/config/header-snippets/platform_cygwin.h.in new file mode 100644 index 00000000..dd7ad6b8 --- /dev/null +++ b/config/header-snippets/platform_cygwin.h.in @@ -0,0 +1,16 @@ +/* Cygwin -- don't use strptime() for now */ +#define DUK_USE_DATE_NOW_GETTIMEOFDAY +#define DUK_USE_DATE_TZO_GMTIME_R +#define DUK_USE_DATE_FMT_STRFTIME +#include +#include +#include +#include +#include +#include + +#define DUK_USE_SETJMP +#define DUK_SETJMP(jb) _setjmp((jb)) +#define DUK_LONGJMP(jb) _longjmp((jb), 1) + +#define DUK_USE_OS_STRING "windows" diff --git a/config/header-snippets/platform_flashplayer.h.in b/config/header-snippets/platform_flashplayer.h.in new file mode 100644 index 00000000..ae4fe4c6 --- /dev/null +++ b/config/header-snippets/platform_flashplayer.h.in @@ -0,0 +1,16 @@ +/* Crossbridge */ +#define DUK_USE_DATE_NOW_GETTIMEOFDAY +#define DUK_USE_DATE_TZO_GMTIME_R +#define DUK_USE_DATE_PRS_STRPTIME +#define DUK_USE_DATE_FMT_STRFTIME +#include +#include +#include +#include +#include + +#define DUK_USE_SETJMP +#define DUK_SETJMP(jb) _setjmp((jb)) +#define DUK_LONGJMP(jb) _longjmp((jb), 1) + +#define DUK_USE_OS_STRING "flashplayer" diff --git a/config/header-snippets/platform_genericbsd.h.in b/config/header-snippets/platform_genericbsd.h.in new file mode 100644 index 00000000..eee79b97 --- /dev/null +++ b/config/header-snippets/platform_genericbsd.h.in @@ -0,0 +1,17 @@ +/* other BSD */ +#define DUK_USE_DATE_NOW_GETTIMEOFDAY +#define DUK_USE_DATE_TZO_GMTIME_R +#define DUK_USE_DATE_PRS_STRPTIME +#define DUK_USE_DATE_FMT_STRFTIME +#include +#include +#include +#include +#include +#include + +#define DUK_USE_SETJMP +#define DUK_SETJMP(jb) _setjmp((jb)) +#define DUK_LONGJMP(jb) _longjmp((jb), 1) + +#define DUK_USE_OS_STRING "bsd" diff --git a/config/header-snippets/platform_genericunix.h.in b/config/header-snippets/platform_genericunix.h.in new file mode 100644 index 00000000..f6bdb207 --- /dev/null +++ b/config/header-snippets/platform_genericunix.h.in @@ -0,0 +1,21 @@ +/* Other UNIX, hopefully others */ +#define DUK_USE_DATE_NOW_GETTIMEOFDAY +#define DUK_USE_DATE_TZO_GMTIME_R +#define DUK_USE_DATE_PRS_STRPTIME +#define DUK_USE_DATE_FMT_STRFTIME +#include +#if defined(DUK_F_BCC) +/* no endian.h */ +#else +#include +#endif /* DUK_F_BCC */ +#include +#include +#include +#include + +#define DUK_USE_SETJMP +#define DUK_SETJMP(jb) _setjmp((jb)) +#define DUK_LONGJMP(jb) _longjmp((jb), 1) + +#define DUK_USE_OS_STRING "unix" diff --git a/config/header-snippets/platform_linux.h.in b/config/header-snippets/platform_linux.h.in index 0165fd51..2fedf477 100644 --- a/config/header-snippets/platform_linux.h.in +++ b/config/header-snippets/platform_linux.h.in @@ -12,7 +12,11 @@ #endif /* DUK_COMPILING_DUKTAPE */ #include +#if defined(DUK_F_BCC) +/* no endian.h */ +#else #include +#endif /* DUK_F_BCC */ #include #include #include diff --git a/config/header-snippets/platform_openbsd.h.in b/config/header-snippets/platform_openbsd.h.in new file mode 100644 index 00000000..1bed42dd --- /dev/null +++ b/config/header-snippets/platform_openbsd.h.in @@ -0,0 +1,17 @@ +/* http://www.monkey.org/openbsd/archive/ports/0401/msg00089.html */ +#define DUK_USE_DATE_NOW_GETTIMEOFDAY +#define DUK_USE_DATE_TZO_GMTIME_R +#define DUK_USE_DATE_PRS_STRPTIME +#define DUK_USE_DATE_FMT_STRFTIME +#include +#include +#include +#include +#include +#include + +#define DUK_USE_SETJMP +#define DUK_SETJMP(jb) _setjmp((jb)) +#define DUK_LONGJMP(jb) _longjmp((jb), 1) + +#define DUK_USE_OS_STRING "openbsd" diff --git a/config/header-snippets/platform_posix.h.in b/config/header-snippets/platform_posix.h.in new file mode 100644 index 00000000..177439f6 --- /dev/null +++ b/config/header-snippets/platform_posix.h.in @@ -0,0 +1,17 @@ +/* POSIX */ +#define DUK_USE_DATE_NOW_GETTIMEOFDAY +#define DUK_USE_DATE_TZO_GMTIME_R +#define DUK_USE_DATE_PRS_STRPTIME +#define DUK_USE_DATE_FMT_STRFTIME +#include +#include +#include +#include +#include +#include + +#define DUK_USE_SETJMP +#define DUK_SETJMP(jb) _setjmp((jb)) +#define DUK_LONGJMP(jb) _longjmp((jb), 1) + +#define DUK_USE_OS_STRING "posix" diff --git a/config/header-snippets/platform_qnx.h.in b/config/header-snippets/platform_qnx.h.in new file mode 100644 index 00000000..92231289 --- /dev/null +++ b/config/header-snippets/platform_qnx.h.in @@ -0,0 +1,21 @@ +#if defined(DUK_F_QNX) && defined(DUK_COMPILING_DUKTAPE) +/* See: /opt/qnx650/target/qnx6/usr/include/sys/platform.h */ +#define _XOPEN_SOURCE 600 +#define _POSIX_C_SOURCE 200112L +#endif + +#define DUK_USE_DATE_NOW_GETTIMEOFDAY +#define DUK_USE_DATE_TZO_GMTIME_R +#define DUK_USE_DATE_PRS_STRPTIME +#define DUK_USE_DATE_FMT_STRFTIME +#include +#include +#include +#include +#include + +#define DUK_USE_SETJMP +#define DUK_SETJMP(jb) _setjmp((jb)) +#define DUK_LONGJMP(jb) _longjmp((jb), 1) + +#define DUK_USE_OS_STRING "qnx" diff --git a/config/header-snippets/platform_sharedincludes.h.in b/config/header-snippets/platform_sharedincludes.h.in new file mode 100644 index 00000000..071fff56 --- /dev/null +++ b/config/header-snippets/platform_sharedincludes.h.in @@ -0,0 +1,16 @@ +/* Shared includes */ +#include +#include +#include +#include /* varargs */ +#include +#include /* e.g. ptrdiff_t */ +#if defined(DUK_F_NO_STDINT_H) +/* stdint.h not available */ +#else +/* Technically C99 (C++11) but found in many systems. Note the workaround + * above for some C++ compilers (__STDC_LIMIT_MACROS etc). + */ +#include +#endif +#include diff --git a/config/header-snippets/platform_tinspire.h.in b/config/header-snippets/platform_tinspire.h.in new file mode 100644 index 00000000..a8a872a9 --- /dev/null +++ b/config/header-snippets/platform_tinspire.h.in @@ -0,0 +1,15 @@ +#define DUK_USE_DATE_NOW_GETTIMEOFDAY +#define DUK_USE_DATE_TZO_GMTIME_R +#define DUK_USE_DATE_PRS_STRPTIME +#define DUK_USE_DATE_FMT_STRFTIME +#include +#include +#include +#include +#include + +#define DUK_USE_SETJMP +#define DUK_SETJMP(jb) _setjmp((jb)) +#define DUK_LONGJMP(jb) _longjmp((jb), 1) + +#define DUK_USE_OS_STRING "tinspire" diff --git a/config/header-snippets/platform_tos.h.in b/config/header-snippets/platform_tos.h.in new file mode 100644 index 00000000..80443560 --- /dev/null +++ b/config/header-snippets/platform_tos.h.in @@ -0,0 +1,13 @@ +/* Atari ST TOS */ +#define DUK_USE_DATE_NOW_TIME +#define DUK_USE_DATE_TZO_GMTIME +/* no parsing (not an error) */ +#define DUK_USE_DATE_FMT_STRFTIME +#include +#include + +#define DUK_USE_SETJMP +#define DUK_SETJMP(jb) _setjmp((jb)) +#define DUK_LONGJMP(jb) _longjmp((jb), 1) + +#define DUK_USE_OS_STRING "tos" diff --git a/config/header-snippets/platform_windows.h.in b/config/header-snippets/platform_windows.h.in new file mode 100644 index 00000000..7e952a33 --- /dev/null +++ b/config/header-snippets/platform_windows.h.in @@ -0,0 +1,26 @@ +/* Initial fix: disable secure CRT related warnings when compiling Duktape + * itself (must be defined before including Windows headers). Don't define + * for user code including duktape.h. + */ +#if defined(DUK_COMPILING_DUKTAPE) && !defined(_CRT_SECURE_NO_WARNINGS) +#define _CRT_SECURE_NO_WARNINGS +#endif + +/* Windows 32-bit and 64-bit are currently the same. */ +/* MSVC does not have sys/param.h */ +#define DUK_USE_DATE_NOW_WINDOWS +#define DUK_USE_DATE_TZO_WINDOWS +/* Note: PRS and FMT are intentionally left undefined for now. This means + * there is no platform specific date parsing/formatting but there is still + * the ISO 8601 standard format. + */ +#if defined(DUK_COMPILING_DUKTAPE) +#include +#endif +#include + +#define DUK_USE_SETJMP +#define DUK_SETJMP(jb) _setjmp((jb)) +#define DUK_LONGJMP(jb) _longjmp((jb), 1) + +#define DUK_USE_OS_STRING "windows" diff --git a/config/header-snippets/unsorted_flags.h.in b/config/header-snippets/unsorted_flags.h.in index dbb88f6e..bbd865f7 100644 --- a/config/header-snippets/unsorted_flags.h.in +++ b/config/header-snippets/unsorted_flags.h.in @@ -412,6 +412,12 @@ #undef DUK_USE_NONSTD_ARRAY_WRITE #endif +/* Node.js Buffer and Khronos/ES6 typed array support. */ +#define DUK_USE_BUFFEROBJECT_SUPPORT +#if defined(DUK_OPT_NO_BUFFEROBJECT_SUPPORT) +#undef DUK_USE_BUFFEROBJECT_SUPPORT +#endif + /* * Optional C API options */ @@ -647,10 +653,6 @@ #define DUK_USE_PROVIDE_DEFAULT_ALLOC_FUNCTIONS #undef DUK_USE_EXPLICIT_NULL_INIT -#if !defined(DUK_USE_PACKED_TVAL) -#define DUK_USE_EXPLICIT_NULL_INIT -#endif - #define DUK_USE_ZERO_BUFFER_DATA #if defined(DUK_OPT_NO_ZERO_BUFFER_DATA) #undef DUK_USE_ZERO_BUFFER_DATA diff --git a/config/platforms.yaml b/config/platforms.yaml new file mode 100644 index 00000000..eef9af3d --- /dev/null +++ b/config/platforms.yaml @@ -0,0 +1,61 @@ +# Platform metadata + +required_defines: + # FIXME + - DUK_USE_PLATFORM_STRING + +autodetect: + # Platforms for autodetect header. Order matters because some defines + # overlap, so rules select for more specific define first. + - + name: Apple iPhone, OSX, Darwin + check: DUK_F_APPLE + include: platform_apple.h.in + - + name: OpenBSD + check: DUK_F_OPENBSD + include: platform_openbsd.h.in + - + name: Generic BSD + check: DUK_F_BSD + include: platform_genericbsd.h.in + - + name: Atari TOS + check: DUK_F_TOS + include: platform_tos.h.in + - + name: AmigaOS + check: DUK_F_AMIGAOS + include: platform_amigaos.h.in + - + name: Windows + check: DUK_F_WINDOWS + include: platform_windows.h.in + - + name: Flashplayer (Crossbridge) + check: DUK_F_FLASHPLAYER + include: platform_flashplayer.h.in + - + name: QNX + check: DUK_F_QNX + include: platform_qnx.h.in + - + name: TI-Nspire + check: DUK_F_TINSPIRE + include: platform_tinspire.h.in + - + name: Linux + check: DUK_F_LINUX + include: platform_linux.h.in + - + name: Generic POSIX + check: DUK_F_POSIX + include: platform_posix.h.in + - + name: Cygwin + check: DUK_F_CYGWIN + include: platform_cygwin.h.in + - + name: Generic UNIX + check: null + include: platform_genericunix.h.in # if nothing else