1#define DUK_NORETURN(decl) decl __attribute__((noreturn)) 2 3#if defined(__clang__) && defined(__has_builtin) 4#if __has_builtin(__builtin_unreachable) 5#define DUK_UNREACHABLE() do { __builtin_unreachable(); } while (0) 6#endif 7#endif 8 9#define DUK_USE_BRANCH_HINTS 10#define DUK_LIKELY(x) __builtin_expect((x), 1) 11#define DUK_UNLIKELY(x) __builtin_expect((x), 0) 12#if defined(__clang__) && defined(__has_builtin) 13#if __has_builtin(__builtin_unpredictable) 14#define DUK_UNPREDICTABLE(x) __builtin_unpredictable((x)) 15#endif 16#endif 17 18#if defined(DUK_F_C99) || defined(DUK_F_CPP11) 19#define DUK_NOINLINE __attribute__((noinline)) 20#define DUK_INLINE inline 21#define DUK_ALWAYS_INLINE inline __attribute__((always_inline)) 22#endif 23 24#snippet "gcc_clang_visibility.h.in" 25 26#define DUK_USE_COMPILER_STRING "emscripten" 27 28#undef DUK_USE_VARIADIC_MACROS 29#if defined(DUK_F_C99) || defined(DUK_F_CPP11) 30#define DUK_USE_VARIADIC_MACROS 31#endif 32 33#define DUK_USE_UNION_INITIALIZERS 34 35#undef DUK_USE_FLEX_C99 36#undef DUK_USE_FLEX_ZEROSIZE 37#undef DUK_USE_FLEX_ONESIZE 38#if defined(DUK_F_C99) 39#define DUK_USE_FLEX_C99 40#else 41#define DUK_USE_FLEX_ZEROSIZE 42#endif 43 44#undef DUK_USE_GCC_PRAGMAS 45#define DUK_USE_PACK_CLANG_ATTR 46