@@ -2873,24 +2873,28 @@ Result WastParser::ParseSimdV128Const(Const* const_,
28732873 case 16 : {
28742874 uint8_t value = 0 ;
28752875 result = ParseInt8 (sv, &value, ParseIntType::SignedAndUnsigned);
2876+ if (Failed (result)) break ;
28762877 const_->set_v128_u8 (lane, value);
28772878 break ;
28782879 }
28792880 case 8 : {
28802881 uint16_t value = 0 ;
28812882 result = ParseInt16 (sv, &value, ParseIntType::SignedAndUnsigned);
2883+ if (Failed (result)) break ;
28822884 const_->set_v128_u16 (lane, value);
28832885 break ;
28842886 }
28852887 case 4 : {
28862888 uint32_t value = 0 ;
28872889 result = ParseInt32 (sv, &value, ParseIntType::SignedAndUnsigned);
2890+ if (Failed (result)) break ;
28882891 const_->set_v128_u32 (lane, value);
28892892 break ;
28902893 }
28912894 case 2 : {
28922895 uint64_t value = 0 ;
28932896 result = ParseInt64 (sv, &value, ParseIntType::SignedAndUnsigned);
2897+ if (Failed (result)) break ;
28942898 const_->set_v128_u64 (lane, value);
28952899 break ;
28962900 }
@@ -2900,16 +2904,20 @@ Result WastParser::ParseSimdV128Const(Const* const_,
29002904 switch (lane_count) {
29012905 case 4 :
29022906 result = ParseF32 (&lane_const_, const_type);
2907+ if (Failed (result)) break ;
29032908 const_->set_v128_f32 (lane, lane_const_.f32_bits ());
29042909 break ;
29052910
29062911 case 2 :
29072912 result = ParseF64 (&lane_const_, const_type);
2913+ if (Failed (result)) break ;
29082914 const_->set_v128_f64 (lane, lane_const_.f64_bits ());
29092915 break ;
29102916 }
29112917
2912- const_->set_expected_nan (lane, lane_const_.expected_nan ());
2918+ if (Succeeded (result)) {
2919+ const_->set_expected_nan (lane, lane_const_.expected_nan ());
2920+ }
29132921 }
29142922
29152923 if (Failed (result)) {
0 commit comments