1diagnostic(off, derivative_uniformity); 2diagnostic(off, chromium.unreachable_code); 3struct FSOut { 4 @location(0) sk_FragColor: vec4<f32>, 5}; 6struct _GlobalUniforms { 7 colorGreen: vec4<f32>, 8 colorRed: vec4<f32>, 9}; 10@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms; 11fn test_return_b() -> bool { 12 { 13 loop { 14 { 15 return true; 16 } 17 continuing { 18 break if true; 19 } 20 } 21 } 22 return bool(); 23} 24fn test_break_b() -> bool { 25 { 26 loop { 27 { 28 break; 29 } 30 continuing { 31 break if true; 32 } 33 } 34 return true; 35 } 36} 37fn test_continue_b() -> bool { 38 { 39 loop { 40 { 41 continue; 42 } 43 continuing { 44 break if true; 45 } 46 } 47 return true; 48 } 49} 50fn test_if_return_b() -> bool { 51 { 52 loop { 53 { 54 if _globalUniforms.colorGreen.y > 0.0 { 55 { 56 return true; 57 } 58 } else { 59 { 60 break; 61 } 62 } 63 continue; 64 } 65 continuing { 66 break if true; 67 } 68 } 69 return false; 70 } 71} 72fn test_if_break_b() -> bool { 73 { 74 loop { 75 { 76 if _globalUniforms.colorGreen.y > 0.0 { 77 { 78 break; 79 } 80 } else { 81 { 82 continue; 83 } 84 } 85 } 86 continuing { 87 break if true; 88 } 89 } 90 return true; 91 } 92} 93fn test_else_b() -> bool { 94 { 95 loop { 96 { 97 if _globalUniforms.colorGreen.y == 0.0 { 98 { 99 return false; 100 } 101 } else { 102 { 103 return true; 104 } 105 } 106 } 107 continuing { 108 break if true; 109 } 110 } 111 } 112 return bool(); 113} 114fn test_loop_return_b() -> bool { 115 { 116 return true; 117 } 118} 119fn test_loop_break_b() -> bool { 120 { 121 { 122 var x: i32 = 0; 123 loop { 124 { 125 break; 126 } 127 continuing { 128 x = x + i32(1); 129 break if x > 1; 130 } 131 } 132 } 133 return true; 134 } 135} 136fn _skslMain(xy: vec2<f32>) -> vec4<f32> { 137 { 138 var _skTemp0: vec4<f32>; 139 var _skTemp1: bool; 140 var _skTemp2: bool; 141 var _skTemp3: bool; 142 var _skTemp4: bool; 143 var _skTemp5: bool; 144 var _skTemp6: bool; 145 var _skTemp7: bool; 146 let _skTemp8 = test_return_b(); 147 if _skTemp8 { 148 let _skTemp9 = test_break_b(); 149 _skTemp7 = _skTemp9; 150 } else { 151 _skTemp7 = false; 152 } 153 if _skTemp7 { 154 let _skTemp10 = test_continue_b(); 155 _skTemp6 = _skTemp10; 156 } else { 157 _skTemp6 = false; 158 } 159 if _skTemp6 { 160 let _skTemp11 = test_if_return_b(); 161 _skTemp5 = _skTemp11; 162 } else { 163 _skTemp5 = false; 164 } 165 if _skTemp5 { 166 let _skTemp12 = test_if_break_b(); 167 _skTemp4 = _skTemp12; 168 } else { 169 _skTemp4 = false; 170 } 171 if _skTemp4 { 172 let _skTemp13 = test_else_b(); 173 _skTemp3 = _skTemp13; 174 } else { 175 _skTemp3 = false; 176 } 177 if _skTemp3 { 178 let _skTemp14 = test_loop_return_b(); 179 _skTemp2 = _skTemp14; 180 } else { 181 _skTemp2 = false; 182 } 183 if _skTemp2 { 184 let _skTemp15 = test_loop_break_b(); 185 _skTemp1 = _skTemp15; 186 } else { 187 _skTemp1 = false; 188 } 189 if _skTemp1 { 190 _skTemp0 = _globalUniforms.colorGreen; 191 } else { 192 _skTemp0 = _globalUniforms.colorRed; 193 } 194 return _skTemp0; 195 } 196} 197@fragment fn main() -> FSOut { 198 var _stageOut: FSOut; 199 _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>()); 200 return _stageOut; 201} 202