Browse Source

LibJS: Convert to_i16() to ThrowCompletionOr

Idan Horowitz 3 năm trước cách đây
mục cha
commit
627b1205ce

+ 1 - 1
Userland/Libraries/LibJS/Runtime/ArrayBuffer.h

@@ -171,7 +171,7 @@ static ByteBuffer numeric_to_raw_bytes(GlobalObject& global_object, Value value,
             if constexpr (sizeof(UnderlyingBufferDataType) == 4)
             if constexpr (sizeof(UnderlyingBufferDataType) == 4)
                 int_value = MUST(value.to_i32(global_object));
                 int_value = MUST(value.to_i32(global_object));
             else if constexpr (sizeof(UnderlyingBufferDataType) == 2)
             else if constexpr (sizeof(UnderlyingBufferDataType) == 2)
-                int_value = value.to_i16(global_object);
+                int_value = MUST(value.to_i16(global_object));
             else
             else
                 int_value = value.to_i8(global_object);
                 int_value = value.to_i8(global_object);
         } else {
         } else {

+ 2 - 2
Userland/Libraries/LibJS/Runtime/Value.cpp

@@ -607,9 +607,9 @@ ThrowCompletionOr<u32> Value::to_u32(GlobalObject& global_object) const
 }
 }
 
 
 // 7.1.8 ToInt16 ( argument ), https://tc39.es/ecma262/#sec-toint16
 // 7.1.8 ToInt16 ( argument ), https://tc39.es/ecma262/#sec-toint16
-i16 Value::to_i16(GlobalObject& global_object) const
+ThrowCompletionOr<i16> Value::to_i16(GlobalObject& global_object) const
 {
 {
-    double value = TRY_OR_DISCARD(to_number(global_object)).as_double();
+    double value = TRY(to_number(global_object)).as_double();
     if (!isfinite(value) || value == 0)
     if (!isfinite(value) || value == 0)
         return 0;
         return 0;
     auto abs = fabs(value);
     auto abs = fabs(value);

+ 1 - 1
Userland/Libraries/LibJS/Runtime/Value.h

@@ -317,7 +317,7 @@ public:
     ThrowCompletionOr<StringOrSymbol> to_property_key(GlobalObject&) const;
     ThrowCompletionOr<StringOrSymbol> to_property_key(GlobalObject&) const;
     ThrowCompletionOr<i32> to_i32(GlobalObject& global_object) const;
     ThrowCompletionOr<i32> to_i32(GlobalObject& global_object) const;
     ThrowCompletionOr<u32> to_u32(GlobalObject&) const;
     ThrowCompletionOr<u32> to_u32(GlobalObject&) const;
-    i16 to_i16(GlobalObject&) const;
+    ThrowCompletionOr<i16> to_i16(GlobalObject&) const;
     u16 to_u16(GlobalObject&) const;
     u16 to_u16(GlobalObject&) const;
     i8 to_i8(GlobalObject&) const;
     i8 to_i8(GlobalObject&) const;
     u8 to_u8(GlobalObject&) const;
     u8 to_u8(GlobalObject&) const;