;;; TOOL: run-gen-wasm ;;; ARGS2: --generate-names ;; NOTE: same test as in test/decompile/names.txt magic version section(TYPE) { count[2] function params[0] results[1] i32 function params[0] results[0] } section(FUNCTION) { count[4] type[0] type[1] type[1] type[1] } section(MEMORY) { count[1] has_max[0] initial[0] } section(GLOBAL) { count[2] ;; This has both a sym and export name, prefer sym. type[i32] mut[0] init_expr[i32.const 0 end] ;; This only has an export name. type[i32] mut[0] init_expr[i32.const 0 end] } section(EXPORT) { count[5] str("F1_EXPORT") func_kind func[1] str("F2_EXPORT") func_kind func[2] str("F3_EXPORT") func_kind func[3] str("G0_EXPORT") global_kind global[0] str("G1_EXPORT") global_kind global[1] } section(CODE) { count[4] ;; Test name section. func { locals[decl_count[1] i32_count[1] i32] get_local 0 } ;; Test naming priorities ;; If there's a name section name, prefer that over sym/export. func { locals[0] } ;; If there's no name section name, prefer sym over export. func { locals[0] } ;; If there's only export, use that. func { locals[0] } } section(DATA) { count[2] ;; These can only be named thru symbols. memory_index[0] offset[i32.const 0 end] data[str("foo")] memory_index[0] offset[i32.const 10 end] data[str("bar")] } section("name") { section(NAME_MODULE) { str("M0") } section(NAME_FUNCTION) { func_count[2] index[0] str("F0") index[1] str("F1_NS") } section(NAME_LOCALS) { func_count[1] index[0] local_count[1] index[0] str("L0") } } section("linking") { metadata_version[2] section(LINKING_SYMBOL_TABLE) { num_symbols[5] type[0] flags[1] index[1] str("F1_SYM") type[0] flags[1] index[2] str("F2_SYM") type[2] flags[1] index[0] str("G0_SYM") type[1] flags[4] str("D0_SYM") segment[0] offset[0] size[1] type[1] flags[4] str("D1_SYM") segment[1] offset[0] size[1] } } (;; STDOUT ;;; (module $M0 (type $t0 (func (result i32))) (type $t1 (func)) (func $F0 (type $t0) (result i32) (local $L0 i32) local.get $L0) (func $F1_NS (type $t1)) (func $F2_SYM (type $t1)) (func $F3_EXPORT (type $t1)) (memory $M0 0) (global $G0_SYM i32 (i32.const 0)) (global $G1_EXPORT i32 (i32.const 0)) (export "F1_EXPORT" (func $F1_NS)) (export "F2_EXPORT" (func $F2_SYM)) (export "F3_EXPORT" (func $F3_EXPORT)) (export "G0_EXPORT" (global 0)) (export "G1_EXPORT" (global 1)) (data $D0_SYM (i32.const 0) "foo") (data $D1_SYM (i32.const 10) "bar")) ;;; STDOUT ;;)