Coverage Report

Created: 2026-02-16 07:47

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/Userland/Libraries/LibWeb/Streams/UnderlyingSink.cpp
Line
Count
Source
1
/*
2
 * Copyright (c) 2023, Matthew Olsson <mattco@serenityos.org>
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#include <LibJS/Runtime/VM.h>
8
#include <LibWeb/Streams/AbstractOperations.h>
9
#include <LibWeb/Streams/UnderlyingSink.h>
10
#include <LibWeb/WebIDL/CallbackType.h>
11
12
namespace Web::Streams {
13
14
JS::ThrowCompletionOr<UnderlyingSink> UnderlyingSink::from_value(JS::VM& vm, JS::Value value)
15
0
{
16
0
    if (!value.is_object())
17
0
        return UnderlyingSink {};
18
19
0
    auto& object = value.as_object();
20
21
0
    UnderlyingSink underlying_sink {
22
0
        .start = TRY(property_to_callback(vm, value, "start", WebIDL::OperationReturnsPromise::No)),
23
0
        .write = TRY(property_to_callback(vm, value, "write", WebIDL::OperationReturnsPromise::Yes)),
24
0
        .close = TRY(property_to_callback(vm, value, "close", WebIDL::OperationReturnsPromise::Yes)),
25
0
        .abort = TRY(property_to_callback(vm, value, "abort", WebIDL::OperationReturnsPromise::Yes)),
26
0
        .type = {},
27
0
    };
28
29
0
    if (TRY(object.has_property("type")))
30
0
        underlying_sink.type = TRY(object.get("type"));
31
32
0
    return underlying_sink;
33
0
}
34
35
}