[WebIDL] Remove some unnecessary specialization for enum types
[WebKit.git] / Source / WebCore / bindings / scripts / test / JS / JSTestStandaloneEnumeration.cpp
1 /*
2     This file is part of the WebKit open source project.
3     This file has been generated by generate-bindings.pl. DO NOT MODIFY!
4
5     This library is free software; you can redistribute it and/or
6     modify it under the terms of the GNU Library General Public
7     License as published by the Free Software Foundation; either
8     version 2 of the License, or (at your option) any later version.
9
10     This library is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13     Library General Public License for more details.
14
15     You should have received a copy of the GNU Library General Public License
16     along with this library; see the file COPYING.LIB.  If not, write to
17     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18     Boston, MA 02110-1301, USA.
19 */
20
21 #include "config.h"
22
23 #if ENABLE(CONDITION)
24
25 #include "JSTestStandaloneEnumeration.h"
26
27 #include <runtime/JSString.h>
28 #include <wtf/NeverDestroyed.h>
29
30 using namespace JSC;
31
32 namespace WebCore {
33
34 template<> JSString* convertEnumerationToJS(ExecState& state, TestStandaloneEnumeration enumerationValue)
35 {
36     static NeverDestroyed<const String> values[] = {
37         ASCIILiteral("enumValue1"),
38         ASCIILiteral("enumValue2"),
39     };
40     static_assert(static_cast<size_t>(TestStandaloneEnumeration::EnumValue1) == 0, "TestStandaloneEnumeration::EnumValue1 is not 0 as expected");
41     static_assert(static_cast<size_t>(TestStandaloneEnumeration::EnumValue2) == 1, "TestStandaloneEnumeration::EnumValue2 is not 1 as expected");
42     ASSERT(static_cast<size_t>(enumerationValue) < WTF_ARRAY_LENGTH(values));
43     return jsStringWithCache(&state, values[static_cast<size_t>(enumerationValue)]);
44 }
45
46 template<> std::optional<TestStandaloneEnumeration> parseEnumeration<TestStandaloneEnumeration>(ExecState& state, JSValue value)
47 {
48     auto stringValue = value.toWTFString(&state);
49     if (stringValue == "enumValue1")
50         return TestStandaloneEnumeration::EnumValue1;
51     if (stringValue == "enumValue2")
52         return TestStandaloneEnumeration::EnumValue2;
53     return std::nullopt;
54 }
55
56 template<> const char* expectedEnumerationValues<TestStandaloneEnumeration>()
57 {
58     return "\"enumValue1\", \"enumValue2\"";
59 }
60
61 } // namespace WebCore
62
63 #endif // ENABLE(CONDITION)