blob: 00db341188c3a2074195bc5f64310e2f7819dd06 [file] [log] [blame]
/*
* Copyright (C) 2021 Igalia, S.L. All rights reserved.
* Copyright (C) 2021-2022 Apple Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#pragma once
#include "JSObject.h"
namespace JSC {
class TemporalNow final : public JSNonFinalObject {
public:
using Base = JSNonFinalObject;
static constexpr unsigned StructureFlags = Base::StructureFlags | HasStaticPropertyTable;
template<typename CellType, SubspaceAccess>
static GCClient::IsoSubspace* subspaceFor(VM& vm)
{
STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(TemporalNow, Base);
return &vm.plainObjectSpace();
}
static TemporalNow* create(VM&, Structure*);
static Structure* createStructure(VM&, JSGlobalObject*);
DECLARE_INFO;
private:
TemporalNow(VM&, Structure*);
void finishCreation(VM&);
};
} // namespace JSC