5#ifndef V8_WASM_WASM_FEATURE_FLAGS_H_
6#define V8_WASM_WASM_FEATURE_FLAGS_H_
8#if !V8_ENABLE_WEBASSEMBLY
9#error This header should only be included if WebAssembly is enabled.
26#define FOREACH_WASM_EXPERIMENTAL_FEATURE_FLAG(V) \
31 V(type_reflection, "wasm type reflection in JS", false) \
35 V(compilation_hints, "compilation hints section", false) \
40 V(instruction_tracing, "instruction tracing section", false) \
46 V(stack_switching, "stack switching", false) \
51 V(custom_descriptors, "custom descriptors", false) \
56 V(shared, "shared-everything threads", false) \
61 V(fp16, "fp16", false) \
64 V(growable_stacks, "growable stacks for jspi", false) \
69 V(memory_control, "memory control", false) \
74 V(wasmfx, "core stack switching", false) \
79 V(rab_integration, "resizable buffers integration", false)
91#define FOREACH_WASM_STAGING_FEATURE_FLAG(V) \
95 V(stringref, "reference-typed strings", false) \
100 V(imported_strings_utf8, "imported strings (utf8 features)", false) \
105 V(exnref, "exnref", false) \
110 V(jspi, "javascript promise integration", false)
115#define FOREACH_WASM_SHIPPED_FEATURE_FLAG(V) \
121 V(legacy_eh, "legacy exception handling opcodes", true) \
128 V(branch_hinting, "branch hinting", true) \
134 V(imported_strings, "imported strings", true)
137#define FOREACH_WASM_FEATURE_FLAG(V) \
138 FOREACH_WASM_EXPERIMENTAL_FEATURE_FLAG(V) \
139 FOREACH_WASM_STAGING_FEATURE_FLAG(V) \
140 FOREACH_WASM_SHIPPED_FEATURE_FLAG(V)
143#define CHECK_WASM_FEATURE_OFF_BY_DEFAULT(name, desc, enabled) \
144 static_assert(enabled == false);
145#define CHECK_WASM_FEATURE_ON_BY_DEFAULT(name, desc, enabled) \
146 static_assert(enabled == true);
150#undef CHECK_WASM_FEATURE_OFF_BY_DEFAULT
151#undef CHECK_WASM_FEATURE_ON_BY_DEFAULT
#define CHECK_WASM_FEATURE_OFF_BY_DEFAULT(name, desc, enabled)
#define FOREACH_WASM_STAGING_FEATURE_FLAG(V)
#define FOREACH_WASM_SHIPPED_FEATURE_FLAG(V)
#define FOREACH_WASM_EXPERIMENTAL_FEATURE_FLAG(V)
#define CHECK_WASM_FEATURE_ON_BY_DEFAULT(name, desc, enabled)