/* * Copyright (c) 2021-2022, David Tuin * Copyright (c) 2023, networkException * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace JS { struct ModuleWithSpecifier { ByteString specifier; // [[Specifier]] GC::Ref module; // [[Module]] }; // https://tc39.es/proposal-import-attributes/#importattribute-record struct ImportAttribute { ByteString key; ByteString value; bool operator==(ImportAttribute const&) const = default; }; // https://tc39.es/proposal-import-attributes/#modulerequest-record struct ModuleRequest { ModuleRequest() = default; explicit ModuleRequest(DeprecatedFlyString specifier) : module_specifier(move(specifier)) { } ModuleRequest(DeprecatedFlyString specifier, Vector attributes); void add_attribute(ByteString key, ByteString value) { attributes.empend(move(key), move(value)); } DeprecatedFlyString module_specifier; // [[Specifier]] Vector attributes; // [[Attributes]] bool operator==(ModuleRequest const&) const = default; }; }