/* * Copyright (c) 2020, Matthew Olsson * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace JS { class SymbolObject : public Object { JS_OBJECT(SymbolObject, Object); public: static SymbolObject* create(Realm&, Symbol&); virtual ~SymbolObject() override = default; Symbol& primitive_symbol() { return m_symbol; } Symbol const& primitive_symbol() const { return m_symbol; } DeprecatedString description() const { return m_symbol.description(); } bool is_global() const { return m_symbol.is_global(); } private: SymbolObject(Symbol&, Object& prototype); virtual void visit_edges(Visitor&) override; Symbol& m_symbol; }; }