; Generated by Ritz Framework with Signals ; Components: HTab, VTab, VerticalTabs, Tabs ; String constants @.str.0 = private unnamed_addr constant [3 x i8] c"li\00" @.str.1 = private unnamed_addr constant [11 x i8] c"tab active\00" @.str.2 = private unnamed_addr constant [4 x i8] c"tab\00" @.str.3 = private unnamed_addr constant [6 x i8] c"class\00" @.str.4 = private unnamed_addr constant [7 x i8] c"button\00" @.str.5 = private unnamed_addr constant [6 x i8] c"click\00" @.str.6 = private unnamed_addr constant [8 x i8] c"onclick\00" @.str.7 = private unnamed_addr constant [20 x i8] c"vertical-tab active\00" @.str.8 = private unnamed_addr constant [13 x i8] c"vertical-tab\00" @.str.9 = private unnamed_addr constant [4 x i8] c"div\00" @.str.10 = private unnamed_addr constant [13 x i8] c"setting-pane\00" @.str.11 = private unnamed_addr constant [3 x i8] c"h3\00" @.str.12 = private unnamed_addr constant [24 x i8] c"⚙️ General Settings\00" @.str.13 = private unnamed_addr constant [2 x i8] c"p\00" @.str.14 = private unnamed_addr constant [18 x i8] c"Language: English\00" @.str.15 = private unnamed_addr constant [15 x i8] c"Time Zone: UTC\00" @.str.16 = private unnamed_addr constant [22 x i8] c"🔒 Privacy Settings\00" @.str.17 = private unnamed_addr constant [26 x i8] c"Data Collection: Disabled\00" @.str.18 = private unnamed_addr constant [19 x i8] c"Analytics: Opt-out\00" @.str.19 = private unnamed_addr constant [23 x i8] c"🚀 Advanced Settings\00" @.str.20 = private unnamed_addr constant [16 x i8] c"Debug Mode: Off\00" @.str.21 = private unnamed_addr constant [32 x i8] c"Experimental Features: Disabled\00" @.str.22 = private unnamed_addr constant [16 x i8] c"Invalid setting\00" @.str.23 = private unnamed_addr constant [14 x i8] c"vertical-tabs\00" @.str.24 = private unnamed_addr constant [18 x i8] c"vertical-tab-menu\00" @.str.25 = private unnamed_addr constant [23 x i8] c"_lambda_0_VerticalTabs\00" @.str.26 = private unnamed_addr constant [15 x i8] c"⚙️ General\00" @.str.27 = private unnamed_addr constant [23 x i8] c"_lambda_1_VerticalTabs\00" @.str.28 = private unnamed_addr constant [13 x i8] c"🔒 Privacy\00" @.str.29 = private unnamed_addr constant [23 x i8] c"_lambda_2_VerticalTabs\00" @.str.30 = private unnamed_addr constant [14 x i8] c"🚀 Advanced\00" @.str.31 = private unnamed_addr constant [21 x i8] c"vertical-tab-content\00" @.str.32 = private unnamed_addr constant [9 x i8] c"Active: \00" @.str.33 = private unnamed_addr constant [14 x i8] c"tab-pane home\00" @.str.34 = private unnamed_addr constant [3 x i8] c"h2\00" @.str.35 = private unnamed_addr constant [18 x i8] c"🏠 Welcome Home\00" @.str.36 = private unnamed_addr constant [29 x i8] c"This is your home dashboard.\00" @.str.37 = private unnamed_addr constant [37 x i8] c"All your important info at a glance.\00" @.str.38 = private unnamed_addr constant [3 x i8] c"ul\00" @.str.39 = private unnamed_addr constant [20 x i8] c"✓ Recent activity\00" @.str.40 = private unnamed_addr constant [18 x i8] c"✓ Quick actions\00" @.str.41 = private unnamed_addr constant [18 x i8] c"✓ Summary stats\00" @.str.42 = private unnamed_addr constant [17 x i8] c"tab-pane profile\00" @.str.43 = private unnamed_addr constant [18 x i8] c"👤 Your Profile\00" @.str.44 = private unnamed_addr constant [30 x i8] c"Manage your account settings.\00" @.str.45 = private unnamed_addr constant [13 x i8] c"profile-info\00" @.str.46 = private unnamed_addr constant [16 x i8] c"Name: Ritz User\00" @.str.47 = private unnamed_addr constant [21 x i8] c"Email: user@ritz.dev\00" @.str.48 = private unnamed_addr constant [19 x i8] c"Member since: 2025\00" @.str.49 = private unnamed_addr constant [18 x i8] c"tab-pane settings\00" @.str.50 = private unnamed_addr constant [16 x i8] c"⚙️ Settings\00" @.str.51 = private unnamed_addr constant [55 x i8] c"Configure your preferences using the categories below:\00" @.str.52 = private unnamed_addr constant [15 x i8] c"tab-pane error\00" @.str.53 = private unnamed_addr constant [28 x i8] c"⚠️ Invalid tab selected\00" @.str.54 = private unnamed_addr constant [15 x i8] c"tabs-container\00" @.str.55 = private unnamed_addr constant [3 x i8] c"h1\00" @.str.56 = private unnamed_addr constant [19 x i8] c"Tab Component Demo\00" @.str.57 = private unnamed_addr constant [9 x i8] c"subtitle\00" @.str.58 = private unnamed_addr constant [58 x i8] c"Beautiful composition with TabMenu and TabPane components\00" @.str.59 = private unnamed_addr constant [9 x i8] c"tab-menu\00" @.str.60 = private unnamed_addr constant [15 x i8] c"_lambda_0_Tabs\00" @.str.61 = private unnamed_addr constant [10 x i8] c"🏠 Home\00" @.str.62 = private unnamed_addr constant [15 x i8] c"_lambda_1_Tabs\00" @.str.63 = private unnamed_addr constant [13 x i8] c"👤 Profile\00" @.str.64 = private unnamed_addr constant [15 x i8] c"_lambda_2_Tabs\00" @.str.65 = private unnamed_addr constant [12 x i8] c"tab-content\00" @.str.66 = private unnamed_addr constant [13 x i8] c"debug-footer\00" ; JavaScript bridge function declarations declare i32 @js_create_element(i8*) declare i32 @js_create_text(i8*) declare i32 @js_create_text_with_int(i8*, i32) declare void @js_append_child(i32, i32) declare void @js_set_attribute(i32, i8*, i8*) declare void @js_set_root(i32) declare void @js_bind_event(i32, i8*, i8*) declare void @js_update_text_content(i32, i8*) declare void @js_update_text_with_int(i32, i8*, i32) declare i32 @js_create_marker() declare void @js_replace_at_marker(i32, i32, i32) ; Component render function define i32 @render_HTab(i32 %label, i32 %active, i32 %onclick) { entry: %var1 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.0, i32 0, i32 0 %var0 = call i32 @js_create_element(i8* %var1) %var2 = icmp ne i32 0, 0 %var3 = getelementptr inbounds [11 x i8], [11 x i8]* @.str.1, i32 0, i32 0 %var4 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.2, i32 0, i32 0 %var5 = select i1 %var2, i8* %var3, i8* %var4 %var6 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var0, i8* %var6, i8* %var5) %var8 = getelementptr inbounds [7 x i8], [7 x i8]* @.str.4, i32 0, i32 0 %var7 = call i32 @js_create_element(i8* %var8) %var9 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.5, i32 0, i32 0 %var10 = getelementptr inbounds [8 x i8], [8 x i8]* @.str.6, i32 0, i32 0 call void @js_bind_event(i32 %var7, i8* %var9, i8* %var10) call void @js_append_child(i32 %var0, i32 %var7) ret i32 %var0 } ; Component render function define i32 @render_VTab(i32 %label, i32 %active, i32 %onclick) { entry: %var12 = getelementptr inbounds [7 x i8], [7 x i8]* @.str.4, i32 0, i32 0 %var11 = call i32 @js_create_element(i8* %var12) %var13 = icmp ne i32 0, 0 %var14 = getelementptr inbounds [20 x i8], [20 x i8]* @.str.7, i32 0, i32 0 %var15 = getelementptr inbounds [13 x i8], [13 x i8]* @.str.8, i32 0, i32 0 %var16 = select i1 %var13, i8* %var14, i8* %var15 %var17 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var11, i8* %var17, i8* %var16) %var18 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.5, i32 0, i32 0 %var19 = getelementptr inbounds [8 x i8], [8 x i8]* @.str.6, i32 0, i32 0 call void @js_bind_event(i32 %var11, i8* %var18, i8* %var19) ret i32 %var11 } ; Signal storage for VerticalTabs (reactive state in WASM memory) @signal_VerticalTabs_setting_tab = global i32 0 ; Conditional rendering state @cond_0_marker = global i32 0 @cond_0_current = global i32 0 @cond_0_case_0_root = global i32 0 @cond_0_case_1_root = global i32 0 @cond_0_case_2_root = global i32 0 @cond_0_case_3_root = global i32 0 ; Reactive attribute element storage @reactive_attr_0_elem = global i32 0 @reactive_attr_1_elem = global i32 0 @reactive_attr_2_elem = global i32 0 ; Signal helper functions define i32 @get_setting_tab() { entry: %val = load i32, i32* @signal_VerticalTabs_setting_tab ret i32 %val } define void @set_setting_tab(i32 %newval) { entry: store i32 %newval, i32* @signal_VerticalTabs_setting_tab ; TODO: Trigger DOM update callback ret void } ; Event handler: _lambda_0_VerticalTabs define void @_lambda_0_VerticalTabs() { entry: call void @set_setting(i32 0) ret void } ; Event handler: _lambda_1_VerticalTabs define void @_lambda_1_VerticalTabs() { entry: call void @set_setting(i32 1) ret void } ; Event handler: _lambda_2_VerticalTabs define void @_lambda_2_VerticalTabs() { entry: call void @set_setting(i32 2) ret void } ; Event handler: set_setting define void @set_setting(i32 %value) { entry: store i32 %value, i32* @signal_VerticalTabs_setting_tab call void @reevaluate_conditional_0() %var20 = load i32, i32* @reactive_attr_0_elem %var21 = load i32, i32* @signal_VerticalTabs_setting_tab %var22 = icmp eq i32 %var21, 0 %var23 = zext i1 %var22 to i32 %var24 = icmp ne i32 %var23, 0 %var25 = getelementptr inbounds [20 x i8], [20 x i8]* @.str.7, i32 0, i32 0 %var26 = getelementptr inbounds [13 x i8], [13 x i8]* @.str.8, i32 0, i32 0 %var27 = select i1 %var24, i8* %var25, i8* %var26 %var28 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var20, i8* %var28, i8* %var27) %var29 = load i32, i32* @reactive_attr_1_elem %var30 = load i32, i32* @signal_VerticalTabs_setting_tab %var31 = icmp eq i32 %var30, 1 %var32 = zext i1 %var31 to i32 %var33 = icmp ne i32 %var32, 0 %var34 = getelementptr inbounds [20 x i8], [20 x i8]* @.str.7, i32 0, i32 0 %var35 = getelementptr inbounds [13 x i8], [13 x i8]* @.str.8, i32 0, i32 0 %var36 = select i1 %var33, i8* %var34, i8* %var35 %var37 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var29, i8* %var37, i8* %var36) %var38 = load i32, i32* @reactive_attr_2_elem %var39 = load i32, i32* @signal_VerticalTabs_setting_tab %var40 = icmp eq i32 %var39, 2 %var41 = zext i1 %var40 to i32 %var42 = icmp ne i32 %var41, 0 %var43 = getelementptr inbounds [20 x i8], [20 x i8]* @.str.7, i32 0, i32 0 %var44 = getelementptr inbounds [13 x i8], [13 x i8]* @.str.8, i32 0, i32 0 %var45 = select i1 %var42, i8* %var43, i8* %var44 %var46 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var38, i8* %var46, i8* %var45) ret void } ; Initialize conditional 0 (match) define void @_init_conditional_0() { entry: ; Render all cases upfront %var47 = call i32 @_render_cond_0_case_0() store i32 %var47, i32* @cond_0_case_0_root %var48 = call i32 @_render_cond_0_case_1() store i32 %var48, i32* @cond_0_case_1_root %var49 = call i32 @_render_cond_0_case_2() store i32 %var49, i32* @cond_0_case_2_root %var50 = call i32 @_render_cond_0_case_3() store i32 %var50, i32* @cond_0_case_3_root %var51 = load i32, i32* @signal_VerticalTabs_setting_tab %var52 = load i32, i32* @cond_0_marker switch i32 %var51, label %insert_case_3 [ i32 0, label %insert_case_0 i32 1, label %insert_case_1 i32 2, label %insert_case_2 ] insert_case_0: call void @js_replace_at_marker(i32 %var52, i32 0, i32 %var47) store i32 0, i32* @cond_0_current ret void insert_case_1: call void @js_replace_at_marker(i32 %var52, i32 0, i32 %var48) store i32 1, i32* @cond_0_current ret void insert_case_2: call void @js_replace_at_marker(i32 %var52, i32 0, i32 %var49) store i32 2, i32* @cond_0_current ret void insert_case_3: call void @js_replace_at_marker(i32 %var52, i32 0, i32 %var50) store i32 3, i32* @cond_0_current ret void } ; Re-evaluate conditional 0 (match) define void @reevaluate_conditional_0() { entry: %var53 = load i32, i32* @signal_VerticalTabs_setting_tab %var54 = load i32, i32* @cond_0_current switch i32 %var53, label %case_3 [ i32 0, label %case_0 i32 1, label %case_1 i32 2, label %case_2 ] case_0: %var55 = icmp ne i32 %var54, 0 br i1 %var55, label %swap_0, label %done swap_0: %var56 = load i32, i32* @cond_0_marker %var57 = load i32, i32* @cond_0_case_0_root switch i32 %var54, label %load_old_0_3 [ i32 0, label %load_old_0_0 i32 1, label %load_old_0_1 i32 2, label %load_old_0_2 i32 3, label %load_old_0_3 ] load_old_0_0: %var59 = load i32, i32* @cond_0_case_0_root br label %merge_0 load_old_0_1: %var60 = load i32, i32* @cond_0_case_1_root br label %merge_0 load_old_0_2: %var61 = load i32, i32* @cond_0_case_2_root br label %merge_0 load_old_0_3: %var62 = load i32, i32* @cond_0_case_3_root br label %merge_0 merge_0: %var58 = phi i32 [ %var59, %load_old_0_0 ], [ %var60, %load_old_0_1 ], [ %var61, %load_old_0_2 ], [ %var62, %load_old_0_3 ] call void @js_replace_at_marker(i32 %var56, i32 %var58, i32 %var57) store i32 0, i32* @cond_0_current br label %done case_1: %var63 = icmp ne i32 %var54, 1 br i1 %var63, label %swap_1, label %done swap_1: %var64 = load i32, i32* @cond_0_marker %var65 = load i32, i32* @cond_0_case_1_root switch i32 %var54, label %load_old_1_3 [ i32 0, label %load_old_1_0 i32 1, label %load_old_1_1 i32 2, label %load_old_1_2 i32 3, label %load_old_1_3 ] load_old_1_0: %var67 = load i32, i32* @cond_0_case_0_root br label %merge_1 load_old_1_1: %var68 = load i32, i32* @cond_0_case_1_root br label %merge_1 load_old_1_2: %var69 = load i32, i32* @cond_0_case_2_root br label %merge_1 load_old_1_3: %var70 = load i32, i32* @cond_0_case_3_root br label %merge_1 merge_1: %var66 = phi i32 [ %var67, %load_old_1_0 ], [ %var68, %load_old_1_1 ], [ %var69, %load_old_1_2 ], [ %var70, %load_old_1_3 ] call void @js_replace_at_marker(i32 %var64, i32 %var66, i32 %var65) store i32 1, i32* @cond_0_current br label %done case_2: %var71 = icmp ne i32 %var54, 2 br i1 %var71, label %swap_2, label %done swap_2: %var72 = load i32, i32* @cond_0_marker %var73 = load i32, i32* @cond_0_case_2_root switch i32 %var54, label %load_old_2_3 [ i32 0, label %load_old_2_0 i32 1, label %load_old_2_1 i32 2, label %load_old_2_2 i32 3, label %load_old_2_3 ] load_old_2_0: %var75 = load i32, i32* @cond_0_case_0_root br label %merge_2 load_old_2_1: %var76 = load i32, i32* @cond_0_case_1_root br label %merge_2 load_old_2_2: %var77 = load i32, i32* @cond_0_case_2_root br label %merge_2 load_old_2_3: %var78 = load i32, i32* @cond_0_case_3_root br label %merge_2 merge_2: %var74 = phi i32 [ %var75, %load_old_2_0 ], [ %var76, %load_old_2_1 ], [ %var77, %load_old_2_2 ], [ %var78, %load_old_2_3 ] call void @js_replace_at_marker(i32 %var72, i32 %var74, i32 %var73) store i32 2, i32* @cond_0_current br label %done case_3: %var79 = icmp ne i32 %var54, 3 br i1 %var79, label %swap_3, label %done swap_3: %var80 = load i32, i32* @cond_0_marker %var81 = load i32, i32* @cond_0_case_3_root switch i32 %var54, label %load_old_3_3 [ i32 0, label %load_old_3_0 i32 1, label %load_old_3_1 i32 2, label %load_old_3_2 i32 3, label %load_old_3_3 ] load_old_3_0: %var83 = load i32, i32* @cond_0_case_0_root br label %merge_3 load_old_3_1: %var84 = load i32, i32* @cond_0_case_1_root br label %merge_3 load_old_3_2: %var85 = load i32, i32* @cond_0_case_2_root br label %merge_3 load_old_3_3: %var86 = load i32, i32* @cond_0_case_3_root br label %merge_3 merge_3: %var82 = phi i32 [ %var83, %load_old_3_0 ], [ %var84, %load_old_3_1 ], [ %var85, %load_old_3_2 ], [ %var86, %load_old_3_3 ] call void @js_replace_at_marker(i32 %var80, i32 %var82, i32 %var81) store i32 3, i32* @cond_0_current br label %done done: ret void } define i32 @_render_cond_0_case_0() { entry: %var88 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var87 = call i32 @js_create_element(i8* %var88) %var90 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var89 = call i32 @js_create_element(i8* %var90) %var91 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var92 = getelementptr inbounds [13 x i8], [13 x i8]* @.str.10, i32 0, i32 0 call void @js_set_attribute(i32 %var89, i8* %var91, i8* %var92) %var94 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.11, i32 0, i32 0 %var93 = call i32 @js_create_element(i8* %var94) %var95 = call i32 @js_create_text(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.12, i32 0, i32 0)) call void @js_append_child(i32 %var93, i32 %var95) call void @js_append_child(i32 %var89, i32 %var93) %var97 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var96 = call i32 @js_create_element(i8* %var97) %var98 = call i32 @js_create_text(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.14, i32 0, i32 0)) call void @js_append_child(i32 %var96, i32 %var98) call void @js_append_child(i32 %var89, i32 %var96) %var100 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var99 = call i32 @js_create_element(i8* %var100) %var101 = call i32 @js_create_text(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.15, i32 0, i32 0)) call void @js_append_child(i32 %var99, i32 %var101) call void @js_append_child(i32 %var89, i32 %var99) call void @js_append_child(i32 %var87, i32 %var89) ret i32 %var87 } define i32 @_render_cond_0_case_1() { entry: %var103 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var102 = call i32 @js_create_element(i8* %var103) %var105 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var104 = call i32 @js_create_element(i8* %var105) %var106 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var107 = getelementptr inbounds [13 x i8], [13 x i8]* @.str.10, i32 0, i32 0 call void @js_set_attribute(i32 %var104, i8* %var106, i8* %var107) %var109 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.11, i32 0, i32 0 %var108 = call i32 @js_create_element(i8* %var109) %var110 = call i32 @js_create_text(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.16, i32 0, i32 0)) call void @js_append_child(i32 %var108, i32 %var110) call void @js_append_child(i32 %var104, i32 %var108) %var112 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var111 = call i32 @js_create_element(i8* %var112) %var113 = call i32 @js_create_text(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.17, i32 0, i32 0)) call void @js_append_child(i32 %var111, i32 %var113) call void @js_append_child(i32 %var104, i32 %var111) %var115 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var114 = call i32 @js_create_element(i8* %var115) %var116 = call i32 @js_create_text(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.18, i32 0, i32 0)) call void @js_append_child(i32 %var114, i32 %var116) call void @js_append_child(i32 %var104, i32 %var114) call void @js_append_child(i32 %var102, i32 %var104) ret i32 %var102 } define i32 @_render_cond_0_case_2() { entry: %var118 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var117 = call i32 @js_create_element(i8* %var118) %var120 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var119 = call i32 @js_create_element(i8* %var120) %var121 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var122 = getelementptr inbounds [13 x i8], [13 x i8]* @.str.10, i32 0, i32 0 call void @js_set_attribute(i32 %var119, i8* %var121, i8* %var122) %var124 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.11, i32 0, i32 0 %var123 = call i32 @js_create_element(i8* %var124) %var125 = call i32 @js_create_text(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.19, i32 0, i32 0)) call void @js_append_child(i32 %var123, i32 %var125) call void @js_append_child(i32 %var119, i32 %var123) %var127 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var126 = call i32 @js_create_element(i8* %var127) %var128 = call i32 @js_create_text(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.20, i32 0, i32 0)) call void @js_append_child(i32 %var126, i32 %var128) call void @js_append_child(i32 %var119, i32 %var126) %var130 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var129 = call i32 @js_create_element(i8* %var130) %var131 = call i32 @js_create_text(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.21, i32 0, i32 0)) call void @js_append_child(i32 %var129, i32 %var131) call void @js_append_child(i32 %var119, i32 %var129) call void @js_append_child(i32 %var117, i32 %var119) ret i32 %var117 } define i32 @_render_cond_0_case_3() { entry: %var133 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var132 = call i32 @js_create_element(i8* %var133) %var135 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var134 = call i32 @js_create_element(i8* %var135) %var136 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var137 = getelementptr inbounds [13 x i8], [13 x i8]* @.str.10, i32 0, i32 0 call void @js_set_attribute(i32 %var134, i8* %var136, i8* %var137) %var139 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var138 = call i32 @js_create_element(i8* %var139) %var140 = call i32 @js_create_text(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.22, i32 0, i32 0)) call void @js_append_child(i32 %var138, i32 %var140) call void @js_append_child(i32 %var134, i32 %var138) call void @js_append_child(i32 %var132, i32 %var134) ret i32 %var132 } ; Component render function define i32 @render_VerticalTabs() { entry: %var142 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var141 = call i32 @js_create_element(i8* %var142) %var143 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var144 = getelementptr inbounds [14 x i8], [14 x i8]* @.str.23, i32 0, i32 0 call void @js_set_attribute(i32 %var141, i8* %var143, i8* %var144) %var146 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var145 = call i32 @js_create_element(i8* %var146) %var147 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var148 = getelementptr inbounds [18 x i8], [18 x i8]* @.str.24, i32 0, i32 0 call void @js_set_attribute(i32 %var145, i8* %var147, i8* %var148) %var150 = getelementptr inbounds [7 x i8], [7 x i8]* @.str.4, i32 0, i32 0 %var149 = call i32 @js_create_element(i8* %var150) %var151 = load i32, i32* @signal_VerticalTabs_setting_tab %var152 = icmp eq i32 %var151, 0 %var153 = zext i1 %var152 to i32 %var154 = icmp ne i32 %var153, 0 %var155 = getelementptr inbounds [20 x i8], [20 x i8]* @.str.7, i32 0, i32 0 %var156 = getelementptr inbounds [13 x i8], [13 x i8]* @.str.8, i32 0, i32 0 %var157 = select i1 %var154, i8* %var155, i8* %var156 %var158 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var149, i8* %var158, i8* %var157) %var159 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.5, i32 0, i32 0 %var160 = getelementptr inbounds [23 x i8], [23 x i8]* @.str.25, i32 0, i32 0 call void @js_bind_event(i32 %var149, i8* %var159, i8* %var160) store i32 %var149, i32* @reactive_attr_0_elem %var161 = call i32 @js_create_text(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.26, i32 0, i32 0)) call void @js_append_child(i32 %var149, i32 %var161) call void @js_append_child(i32 %var145, i32 %var149) %var163 = getelementptr inbounds [7 x i8], [7 x i8]* @.str.4, i32 0, i32 0 %var162 = call i32 @js_create_element(i8* %var163) %var164 = load i32, i32* @signal_VerticalTabs_setting_tab %var165 = icmp eq i32 %var164, 1 %var166 = zext i1 %var165 to i32 %var167 = icmp ne i32 %var166, 0 %var168 = getelementptr inbounds [20 x i8], [20 x i8]* @.str.7, i32 0, i32 0 %var169 = getelementptr inbounds [13 x i8], [13 x i8]* @.str.8, i32 0, i32 0 %var170 = select i1 %var167, i8* %var168, i8* %var169 %var171 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var162, i8* %var171, i8* %var170) %var172 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.5, i32 0, i32 0 %var173 = getelementptr inbounds [23 x i8], [23 x i8]* @.str.27, i32 0, i32 0 call void @js_bind_event(i32 %var162, i8* %var172, i8* %var173) store i32 %var162, i32* @reactive_attr_1_elem %var174 = call i32 @js_create_text(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.28, i32 0, i32 0)) call void @js_append_child(i32 %var162, i32 %var174) call void @js_append_child(i32 %var145, i32 %var162) %var176 = getelementptr inbounds [7 x i8], [7 x i8]* @.str.4, i32 0, i32 0 %var175 = call i32 @js_create_element(i8* %var176) %var177 = load i32, i32* @signal_VerticalTabs_setting_tab %var178 = icmp eq i32 %var177, 2 %var179 = zext i1 %var178 to i32 %var180 = icmp ne i32 %var179, 0 %var181 = getelementptr inbounds [20 x i8], [20 x i8]* @.str.7, i32 0, i32 0 %var182 = getelementptr inbounds [13 x i8], [13 x i8]* @.str.8, i32 0, i32 0 %var183 = select i1 %var180, i8* %var181, i8* %var182 %var184 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var175, i8* %var184, i8* %var183) %var185 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.5, i32 0, i32 0 %var186 = getelementptr inbounds [23 x i8], [23 x i8]* @.str.29, i32 0, i32 0 call void @js_bind_event(i32 %var175, i8* %var185, i8* %var186) store i32 %var175, i32* @reactive_attr_2_elem %var187 = call i32 @js_create_text(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.30, i32 0, i32 0)) call void @js_append_child(i32 %var175, i32 %var187) call void @js_append_child(i32 %var145, i32 %var175) call void @js_append_child(i32 %var141, i32 %var145) %var189 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var188 = call i32 @js_create_element(i8* %var189) %var190 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var191 = getelementptr inbounds [21 x i8], [21 x i8]* @.str.31, i32 0, i32 0 call void @js_set_attribute(i32 %var188, i8* %var190, i8* %var191) %var192 = call i32 @js_create_marker() call void @js_append_child(i32 %var188, i32 %var192) store i32 %var192, i32* @cond_0_marker call void @_init_conditional_0() call void @js_append_child(i32 %var141, i32 %var188) ret i32 %var141 } ; Signal storage for Tabs (reactive state in WASM memory) @signal_Tabs_tab_index = global i32 0 ; Conditional rendering state @cond_1_marker = global i32 0 @cond_1_current = global i32 0 @cond_1_case_0_root = global i32 0 @cond_1_case_1_root = global i32 0 @cond_1_case_2_root = global i32 0 @cond_1_case_3_root = global i32 0 ; Reactive attribute element storage @reactive_attr_3_elem = global i32 0 @reactive_attr_4_elem = global i32 0 @reactive_attr_5_elem = global i32 0 ; Reactive text node storage @reactive_text_0_node = global i32 0 ; Signal helper functions define i32 @get_tab_index() { entry: %val = load i32, i32* @signal_Tabs_tab_index ret i32 %val } define void @set_tab_index(i32 %newval) { entry: store i32 %newval, i32* @signal_Tabs_tab_index ; TODO: Trigger DOM update callback ret void } ; Event handler: _lambda_0_Tabs define void @_lambda_0_Tabs() { entry: call void @set_tab(i32 0) ret void } ; Event handler: _lambda_1_Tabs define void @_lambda_1_Tabs() { entry: call void @set_tab(i32 1) ret void } ; Event handler: _lambda_2_Tabs define void @_lambda_2_Tabs() { entry: call void @set_tab(i32 2) ret void } ; Event handler: set_tab define void @set_tab(i32 %value) { entry: store i32 %value, i32* @signal_Tabs_tab_index call void @reevaluate_conditional_1() %var193 = load i32, i32* @reactive_attr_3_elem %var194 = load i32, i32* @signal_Tabs_tab_index %var195 = icmp eq i32 %var194, 0 %var196 = zext i1 %var195 to i32 %var197 = icmp ne i32 %var196, 0 %var198 = getelementptr inbounds [11 x i8], [11 x i8]* @.str.1, i32 0, i32 0 %var199 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.2, i32 0, i32 0 %var200 = select i1 %var197, i8* %var198, i8* %var199 %var201 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var193, i8* %var201, i8* %var200) %var202 = load i32, i32* @reactive_attr_4_elem %var203 = load i32, i32* @signal_Tabs_tab_index %var204 = icmp eq i32 %var203, 1 %var205 = zext i1 %var204 to i32 %var206 = icmp ne i32 %var205, 0 %var207 = getelementptr inbounds [11 x i8], [11 x i8]* @.str.1, i32 0, i32 0 %var208 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.2, i32 0, i32 0 %var209 = select i1 %var206, i8* %var207, i8* %var208 %var210 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var202, i8* %var210, i8* %var209) %var211 = load i32, i32* @reactive_attr_5_elem %var212 = load i32, i32* @signal_Tabs_tab_index %var213 = icmp eq i32 %var212, 2 %var214 = zext i1 %var213 to i32 %var215 = icmp ne i32 %var214, 0 %var216 = getelementptr inbounds [11 x i8], [11 x i8]* @.str.1, i32 0, i32 0 %var217 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.2, i32 0, i32 0 %var218 = select i1 %var215, i8* %var216, i8* %var217 %var219 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var211, i8* %var219, i8* %var218) %var220 = load i32, i32* @reactive_text_0_node %var221 = getelementptr inbounds [9 x i8], [9 x i8]* @.str.32, i32 0, i32 0 %var222 = load i32, i32* @signal_Tabs_tab_index call void @js_update_text_with_int(i32 %var220, i8* %var221, i32 %var222) ret void } ; Initialize conditional 1 (match) define void @_init_conditional_1() { entry: ; Render all cases upfront %var223 = call i32 @_render_cond_1_case_0() store i32 %var223, i32* @cond_1_case_0_root %var224 = call i32 @_render_cond_1_case_1() store i32 %var224, i32* @cond_1_case_1_root %var225 = call i32 @_render_cond_1_case_2() store i32 %var225, i32* @cond_1_case_2_root %var226 = call i32 @_render_cond_1_case_3() store i32 %var226, i32* @cond_1_case_3_root %var227 = load i32, i32* @signal_Tabs_tab_index %var228 = load i32, i32* @cond_1_marker switch i32 %var227, label %insert_case_3 [ i32 0, label %insert_case_0 i32 1, label %insert_case_1 i32 2, label %insert_case_2 ] insert_case_0: call void @js_replace_at_marker(i32 %var228, i32 0, i32 %var223) store i32 0, i32* @cond_1_current ret void insert_case_1: call void @js_replace_at_marker(i32 %var228, i32 0, i32 %var224) store i32 1, i32* @cond_1_current ret void insert_case_2: call void @js_replace_at_marker(i32 %var228, i32 0, i32 %var225) store i32 2, i32* @cond_1_current ret void insert_case_3: call void @js_replace_at_marker(i32 %var228, i32 0, i32 %var226) store i32 3, i32* @cond_1_current ret void } ; Re-evaluate conditional 1 (match) define void @reevaluate_conditional_1() { entry: %var229 = load i32, i32* @signal_Tabs_tab_index %var230 = load i32, i32* @cond_1_current switch i32 %var229, label %case_3 [ i32 0, label %case_0 i32 1, label %case_1 i32 2, label %case_2 ] case_0: %var231 = icmp ne i32 %var230, 0 br i1 %var231, label %swap_0, label %done swap_0: %var232 = load i32, i32* @cond_1_marker %var233 = load i32, i32* @cond_1_case_0_root switch i32 %var230, label %load_old_0_3 [ i32 0, label %load_old_0_0 i32 1, label %load_old_0_1 i32 2, label %load_old_0_2 i32 3, label %load_old_0_3 ] load_old_0_0: %var235 = load i32, i32* @cond_1_case_0_root br label %merge_0 load_old_0_1: %var236 = load i32, i32* @cond_1_case_1_root br label %merge_0 load_old_0_2: %var237 = load i32, i32* @cond_1_case_2_root br label %merge_0 load_old_0_3: %var238 = load i32, i32* @cond_1_case_3_root br label %merge_0 merge_0: %var234 = phi i32 [ %var235, %load_old_0_0 ], [ %var236, %load_old_0_1 ], [ %var237, %load_old_0_2 ], [ %var238, %load_old_0_3 ] call void @js_replace_at_marker(i32 %var232, i32 %var234, i32 %var233) store i32 0, i32* @cond_1_current br label %done case_1: %var239 = icmp ne i32 %var230, 1 br i1 %var239, label %swap_1, label %done swap_1: %var240 = load i32, i32* @cond_1_marker %var241 = load i32, i32* @cond_1_case_1_root switch i32 %var230, label %load_old_1_3 [ i32 0, label %load_old_1_0 i32 1, label %load_old_1_1 i32 2, label %load_old_1_2 i32 3, label %load_old_1_3 ] load_old_1_0: %var243 = load i32, i32* @cond_1_case_0_root br label %merge_1 load_old_1_1: %var244 = load i32, i32* @cond_1_case_1_root br label %merge_1 load_old_1_2: %var245 = load i32, i32* @cond_1_case_2_root br label %merge_1 load_old_1_3: %var246 = load i32, i32* @cond_1_case_3_root br label %merge_1 merge_1: %var242 = phi i32 [ %var243, %load_old_1_0 ], [ %var244, %load_old_1_1 ], [ %var245, %load_old_1_2 ], [ %var246, %load_old_1_3 ] call void @js_replace_at_marker(i32 %var240, i32 %var242, i32 %var241) store i32 1, i32* @cond_1_current br label %done case_2: %var247 = icmp ne i32 %var230, 2 br i1 %var247, label %swap_2, label %done swap_2: %var248 = load i32, i32* @cond_1_marker %var249 = load i32, i32* @cond_1_case_2_root switch i32 %var230, label %load_old_2_3 [ i32 0, label %load_old_2_0 i32 1, label %load_old_2_1 i32 2, label %load_old_2_2 i32 3, label %load_old_2_3 ] load_old_2_0: %var251 = load i32, i32* @cond_1_case_0_root br label %merge_2 load_old_2_1: %var252 = load i32, i32* @cond_1_case_1_root br label %merge_2 load_old_2_2: %var253 = load i32, i32* @cond_1_case_2_root br label %merge_2 load_old_2_3: %var254 = load i32, i32* @cond_1_case_3_root br label %merge_2 merge_2: %var250 = phi i32 [ %var251, %load_old_2_0 ], [ %var252, %load_old_2_1 ], [ %var253, %load_old_2_2 ], [ %var254, %load_old_2_3 ] call void @js_replace_at_marker(i32 %var248, i32 %var250, i32 %var249) store i32 2, i32* @cond_1_current br label %done case_3: %var255 = icmp ne i32 %var230, 3 br i1 %var255, label %swap_3, label %done swap_3: %var256 = load i32, i32* @cond_1_marker %var257 = load i32, i32* @cond_1_case_3_root switch i32 %var230, label %load_old_3_3 [ i32 0, label %load_old_3_0 i32 1, label %load_old_3_1 i32 2, label %load_old_3_2 i32 3, label %load_old_3_3 ] load_old_3_0: %var259 = load i32, i32* @cond_1_case_0_root br label %merge_3 load_old_3_1: %var260 = load i32, i32* @cond_1_case_1_root br label %merge_3 load_old_3_2: %var261 = load i32, i32* @cond_1_case_2_root br label %merge_3 load_old_3_3: %var262 = load i32, i32* @cond_1_case_3_root br label %merge_3 merge_3: %var258 = phi i32 [ %var259, %load_old_3_0 ], [ %var260, %load_old_3_1 ], [ %var261, %load_old_3_2 ], [ %var262, %load_old_3_3 ] call void @js_replace_at_marker(i32 %var256, i32 %var258, i32 %var257) store i32 3, i32* @cond_1_current br label %done done: ret void } define i32 @_render_cond_1_case_0() { entry: %var264 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var263 = call i32 @js_create_element(i8* %var264) %var266 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var265 = call i32 @js_create_element(i8* %var266) %var267 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var268 = getelementptr inbounds [14 x i8], [14 x i8]* @.str.33, i32 0, i32 0 call void @js_set_attribute(i32 %var265, i8* %var267, i8* %var268) %var270 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.34, i32 0, i32 0 %var269 = call i32 @js_create_element(i8* %var270) %var271 = call i32 @js_create_text(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.35, i32 0, i32 0)) call void @js_append_child(i32 %var269, i32 %var271) call void @js_append_child(i32 %var265, i32 %var269) %var273 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var272 = call i32 @js_create_element(i8* %var273) %var274 = call i32 @js_create_text(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.36, i32 0, i32 0)) call void @js_append_child(i32 %var272, i32 %var274) call void @js_append_child(i32 %var265, i32 %var272) %var276 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var275 = call i32 @js_create_element(i8* %var276) %var277 = call i32 @js_create_text(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.37, i32 0, i32 0)) call void @js_append_child(i32 %var275, i32 %var277) call void @js_append_child(i32 %var265, i32 %var275) %var279 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.38, i32 0, i32 0 %var278 = call i32 @js_create_element(i8* %var279) %var281 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.0, i32 0, i32 0 %var280 = call i32 @js_create_element(i8* %var281) %var282 = call i32 @js_create_text(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.39, i32 0, i32 0)) call void @js_append_child(i32 %var280, i32 %var282) call void @js_append_child(i32 %var278, i32 %var280) %var284 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.0, i32 0, i32 0 %var283 = call i32 @js_create_element(i8* %var284) %var285 = call i32 @js_create_text(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.40, i32 0, i32 0)) call void @js_append_child(i32 %var283, i32 %var285) call void @js_append_child(i32 %var278, i32 %var283) %var287 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.0, i32 0, i32 0 %var286 = call i32 @js_create_element(i8* %var287) %var288 = call i32 @js_create_text(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.41, i32 0, i32 0)) call void @js_append_child(i32 %var286, i32 %var288) call void @js_append_child(i32 %var278, i32 %var286) call void @js_append_child(i32 %var265, i32 %var278) call void @js_append_child(i32 %var263, i32 %var265) ret i32 %var263 } define i32 @_render_cond_1_case_1() { entry: %var290 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var289 = call i32 @js_create_element(i8* %var290) %var292 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var291 = call i32 @js_create_element(i8* %var292) %var293 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var294 = getelementptr inbounds [17 x i8], [17 x i8]* @.str.42, i32 0, i32 0 call void @js_set_attribute(i32 %var291, i8* %var293, i8* %var294) %var296 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.34, i32 0, i32 0 %var295 = call i32 @js_create_element(i8* %var296) %var297 = call i32 @js_create_text(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.43, i32 0, i32 0)) call void @js_append_child(i32 %var295, i32 %var297) call void @js_append_child(i32 %var291, i32 %var295) %var299 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var298 = call i32 @js_create_element(i8* %var299) %var300 = call i32 @js_create_text(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.44, i32 0, i32 0)) call void @js_append_child(i32 %var298, i32 %var300) call void @js_append_child(i32 %var291, i32 %var298) %var302 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var301 = call i32 @js_create_element(i8* %var302) %var303 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var304 = getelementptr inbounds [13 x i8], [13 x i8]* @.str.45, i32 0, i32 0 call void @js_set_attribute(i32 %var301, i8* %var303, i8* %var304) %var306 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var305 = call i32 @js_create_element(i8* %var306) %var307 = call i32 @js_create_text(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.46, i32 0, i32 0)) call void @js_append_child(i32 %var305, i32 %var307) call void @js_append_child(i32 %var301, i32 %var305) %var309 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var308 = call i32 @js_create_element(i8* %var309) %var310 = call i32 @js_create_text(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.47, i32 0, i32 0)) call void @js_append_child(i32 %var308, i32 %var310) call void @js_append_child(i32 %var301, i32 %var308) %var312 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var311 = call i32 @js_create_element(i8* %var312) %var313 = call i32 @js_create_text(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.48, i32 0, i32 0)) call void @js_append_child(i32 %var311, i32 %var313) call void @js_append_child(i32 %var301, i32 %var311) call void @js_append_child(i32 %var291, i32 %var301) call void @js_append_child(i32 %var289, i32 %var291) ret i32 %var289 } define i32 @_render_cond_1_case_2() { entry: %var315 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var314 = call i32 @js_create_element(i8* %var315) %var317 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var316 = call i32 @js_create_element(i8* %var317) %var318 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var319 = getelementptr inbounds [18 x i8], [18 x i8]* @.str.49, i32 0, i32 0 call void @js_set_attribute(i32 %var316, i8* %var318, i8* %var319) %var321 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.34, i32 0, i32 0 %var320 = call i32 @js_create_element(i8* %var321) %var322 = call i32 @js_create_text(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.50, i32 0, i32 0)) call void @js_append_child(i32 %var320, i32 %var322) call void @js_append_child(i32 %var316, i32 %var320) %var324 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var323 = call i32 @js_create_element(i8* %var324) %var325 = call i32 @js_create_text(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.51, i32 0, i32 0)) call void @js_append_child(i32 %var323, i32 %var325) call void @js_append_child(i32 %var316, i32 %var323) %var326 = call i32 @render_VerticalTabs() call void @js_append_child(i32 %var316, i32 %var326) call void @js_append_child(i32 %var314, i32 %var316) ret i32 %var314 } define i32 @_render_cond_1_case_3() { entry: %var328 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var327 = call i32 @js_create_element(i8* %var328) %var330 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var329 = call i32 @js_create_element(i8* %var330) %var331 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var332 = getelementptr inbounds [15 x i8], [15 x i8]* @.str.52, i32 0, i32 0 call void @js_set_attribute(i32 %var329, i8* %var331, i8* %var332) %var334 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var333 = call i32 @js_create_element(i8* %var334) %var335 = call i32 @js_create_text(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.53, i32 0, i32 0)) call void @js_append_child(i32 %var333, i32 %var335) call void @js_append_child(i32 %var329, i32 %var333) call void @js_append_child(i32 %var327, i32 %var329) ret i32 %var327 } ; Component render function define i32 @render_Tabs(i32 %orientation) { entry: %var337 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var336 = call i32 @js_create_element(i8* %var337) %var338 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var339 = getelementptr inbounds [15 x i8], [15 x i8]* @.str.54, i32 0, i32 0 call void @js_set_attribute(i32 %var336, i8* %var338, i8* %var339) %var341 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.55, i32 0, i32 0 %var340 = call i32 @js_create_element(i8* %var341) %var342 = call i32 @js_create_text(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.56, i32 0, i32 0)) call void @js_append_child(i32 %var340, i32 %var342) call void @js_append_child(i32 %var336, i32 %var340) %var344 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var343 = call i32 @js_create_element(i8* %var344) %var345 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var346 = getelementptr inbounds [9 x i8], [9 x i8]* @.str.57, i32 0, i32 0 call void @js_set_attribute(i32 %var343, i8* %var345, i8* %var346) %var347 = call i32 @js_create_text(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.58, i32 0, i32 0)) call void @js_append_child(i32 %var343, i32 %var347) call void @js_append_child(i32 %var336, i32 %var343) %var349 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.38, i32 0, i32 0 %var348 = call i32 @js_create_element(i8* %var349) %var350 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var351 = getelementptr inbounds [9 x i8], [9 x i8]* @.str.59, i32 0, i32 0 call void @js_set_attribute(i32 %var348, i8* %var350, i8* %var351) %var353 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.0, i32 0, i32 0 %var352 = call i32 @js_create_element(i8* %var353) %var354 = load i32, i32* @signal_Tabs_tab_index %var355 = icmp eq i32 %var354, 0 %var356 = zext i1 %var355 to i32 %var357 = icmp ne i32 %var356, 0 %var358 = getelementptr inbounds [11 x i8], [11 x i8]* @.str.1, i32 0, i32 0 %var359 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.2, i32 0, i32 0 %var360 = select i1 %var357, i8* %var358, i8* %var359 %var361 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var352, i8* %var361, i8* %var360) store i32 %var352, i32* @reactive_attr_3_elem %var363 = getelementptr inbounds [7 x i8], [7 x i8]* @.str.4, i32 0, i32 0 %var362 = call i32 @js_create_element(i8* %var363) %var364 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.5, i32 0, i32 0 %var365 = getelementptr inbounds [15 x i8], [15 x i8]* @.str.60, i32 0, i32 0 call void @js_bind_event(i32 %var362, i8* %var364, i8* %var365) %var366 = call i32 @js_create_text(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.61, i32 0, i32 0)) call void @js_append_child(i32 %var362, i32 %var366) call void @js_append_child(i32 %var352, i32 %var362) call void @js_append_child(i32 %var348, i32 %var352) %var368 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.0, i32 0, i32 0 %var367 = call i32 @js_create_element(i8* %var368) %var369 = load i32, i32* @signal_Tabs_tab_index %var370 = icmp eq i32 %var369, 1 %var371 = zext i1 %var370 to i32 %var372 = icmp ne i32 %var371, 0 %var373 = getelementptr inbounds [11 x i8], [11 x i8]* @.str.1, i32 0, i32 0 %var374 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.2, i32 0, i32 0 %var375 = select i1 %var372, i8* %var373, i8* %var374 %var376 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var367, i8* %var376, i8* %var375) store i32 %var367, i32* @reactive_attr_4_elem %var378 = getelementptr inbounds [7 x i8], [7 x i8]* @.str.4, i32 0, i32 0 %var377 = call i32 @js_create_element(i8* %var378) %var379 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.5, i32 0, i32 0 %var380 = getelementptr inbounds [15 x i8], [15 x i8]* @.str.62, i32 0, i32 0 call void @js_bind_event(i32 %var377, i8* %var379, i8* %var380) %var381 = call i32 @js_create_text(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.63, i32 0, i32 0)) call void @js_append_child(i32 %var377, i32 %var381) call void @js_append_child(i32 %var367, i32 %var377) call void @js_append_child(i32 %var348, i32 %var367) %var383 = getelementptr inbounds [3 x i8], [3 x i8]* @.str.0, i32 0, i32 0 %var382 = call i32 @js_create_element(i8* %var383) %var384 = load i32, i32* @signal_Tabs_tab_index %var385 = icmp eq i32 %var384, 2 %var386 = zext i1 %var385 to i32 %var387 = icmp ne i32 %var386, 0 %var388 = getelementptr inbounds [11 x i8], [11 x i8]* @.str.1, i32 0, i32 0 %var389 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.2, i32 0, i32 0 %var390 = select i1 %var387, i8* %var388, i8* %var389 %var391 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 call void @js_set_attribute(i32 %var382, i8* %var391, i8* %var390) store i32 %var382, i32* @reactive_attr_5_elem %var393 = getelementptr inbounds [7 x i8], [7 x i8]* @.str.4, i32 0, i32 0 %var392 = call i32 @js_create_element(i8* %var393) %var394 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.5, i32 0, i32 0 %var395 = getelementptr inbounds [15 x i8], [15 x i8]* @.str.64, i32 0, i32 0 call void @js_bind_event(i32 %var392, i8* %var394, i8* %var395) %var396 = call i32 @js_create_text(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.50, i32 0, i32 0)) call void @js_append_child(i32 %var392, i32 %var396) call void @js_append_child(i32 %var382, i32 %var392) call void @js_append_child(i32 %var348, i32 %var382) call void @js_append_child(i32 %var336, i32 %var348) %var398 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var397 = call i32 @js_create_element(i8* %var398) %var399 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var400 = getelementptr inbounds [12 x i8], [12 x i8]* @.str.65, i32 0, i32 0 call void @js_set_attribute(i32 %var397, i8* %var399, i8* %var400) %var401 = call i32 @js_create_marker() call void @js_append_child(i32 %var397, i32 %var401) store i32 %var401, i32* @cond_1_marker call void @_init_conditional_1() call void @js_append_child(i32 %var336, i32 %var397) %var403 = getelementptr inbounds [4 x i8], [4 x i8]* @.str.9, i32 0, i32 0 %var402 = call i32 @js_create_element(i8* %var403) %var404 = getelementptr inbounds [6 x i8], [6 x i8]* @.str.3, i32 0, i32 0 %var405 = getelementptr inbounds [13 x i8], [13 x i8]* @.str.66, i32 0, i32 0 call void @js_set_attribute(i32 %var402, i8* %var404, i8* %var405) %var407 = getelementptr inbounds [2 x i8], [2 x i8]* @.str.13, i32 0, i32 0 %var406 = call i32 @js_create_element(i8* %var407) %var408 = getelementptr inbounds [9 x i8], [9 x i8]* @.str.32, i32 0, i32 0 %var409 = load i32, i32* @signal_Tabs_tab_index %var410 = call i32 @js_create_text_with_int(i8* %var408, i32 %var409) store i32 %var410, i32* @reactive_text_0_node call void @js_append_child(i32 %var406, i32 %var410) call void @js_append_child(i32 %var402, i32 %var406) call void @js_append_child(i32 %var336, i32 %var402) ret i32 %var336 } ; Main entry point define void @main() { entry: %root = call i32 @render_Tabs() call void @js_set_root(i32 %root) ret void }