Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result (213959 => 213960)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result 2017-03-14 23:41:53 UTC (rev 213959)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result 2017-03-14 23:44:01 UTC (rev 213960)
@@ -28,6 +28,11 @@
// DO NOT EDIT THIS FILE. It is automatically generated from type-declaration-object-type.json
// by the script: Source/_javascript_Core/inspector/scripts/generate-inspector-protocol-bindings.py
+
+// Database.
+InspectorBackend.registerEnum("Database.MouseButton", {None: "None", Left: "Left", Middle: "Middle", Right: "Right"});
+InspectorBackend.registerEnum("Database.OptionalParameterBundleDirectionality", {LTR: "LTR", RTL: "RTL"});
+InspectorBackend.registerEnum("Database.ParameterBundleDirectionality", {LTR: "LTR", RTL: "RTL"});
### End File: InspectorBackendCommands.js
### Begin File: TestAlternateBackendDispatchers.h
@@ -320,6 +325,7 @@
class ParameterBundle;
class ObjectWithPropertyNameConflicts;
class DummyObject;
+enum class MouseButton;
} // Database
namespace Test {
@@ -334,6 +340,17 @@
} // Database
// End of typedefs.
+namespace TestHelpers {
+
+String getEnumConstantValue(int code);
+
+template<typename T> String getEnumConstantValue(T enumValue)
+{
+ return getEnumConstantValue(static_cast<int>(enumValue));
+}
+
+} // namespace TestHelpers
+
namespace Database {
/* Database error. */
class Error : public Inspector::InspectorObjectBase {
@@ -400,8 +417,20 @@
}
};
+/* Enumerates different mouse buttons that can be used. */
+enum class MouseButton {
+ None = 0,
+ Left = 1,
+ Middle = 2,
+ Right = 3,
+}; // enum class MouseButton
class OptionalParameterBundle : public Inspector::InspectorObjectBase {
public:
+ // Named after property name 'directionality' while generating OptionalParameterBundle.
+ enum class Directionality {
+ LTR = 4,
+ RTL = 5,
+ }; // enum class Directionality
enum {
NoFieldsSet = 0,
AllFieldsSet = 0
@@ -450,6 +479,16 @@
InspectorObjectBase::setArray(ASCIILiteral("columnNames"), WTFMove(value));
}
+ void setButtons(RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Database::MouseButton>> value)
+ {
+ InspectorObjectBase::setArray(ASCIILiteral("buttons"), WTFMove(value));
+ }
+
+ void setDirectionality(Directionality value)
+ {
+ InspectorObjectBase::setString(ASCIILiteral("directionality"), Inspector::Protocol::TestHelpers::getEnumConstantValue(value));
+ }
+
void setNotes(const String& value)
{
InspectorObjectBase::setString(ASCIILiteral("notes"), value);
@@ -483,16 +522,23 @@
class ParameterBundle : public Inspector::InspectorObjectBase {
public:
+ // Named after property name 'directionality' while generating ParameterBundle.
+ enum class Directionality {
+ LTR = 4,
+ RTL = 5,
+ }; // enum class Directionality
enum {
NoFieldsSet = 0,
ColumnNamesSet = 1 << 0,
- NotesSet = 1 << 1,
- TimestampSet = 1 << 2,
- ValuesSet = 1 << 3,
- PayloadSet = 1 << 4,
- ErrorSet = 1 << 5,
- ErrorListSet = 1 << 6,
- AllFieldsSet = (ColumnNamesSet | NotesSet | TimestampSet | ValuesSet | PayloadSet | ErrorSet | ErrorListSet)
+ ButtonsSet = 1 << 1,
+ DirectionalitySet = 1 << 2,
+ NotesSet = 1 << 3,
+ TimestampSet = 1 << 4,
+ ValuesSet = 1 << 5,
+ PayloadSet = 1 << 6,
+ ErrorSet = 1 << 7,
+ ErrorListSet = 1 << 8,
+ AllFieldsSet = (ColumnNamesSet | ButtonsSet | DirectionalitySet | NotesSet | TimestampSet | ValuesSet | PayloadSet | ErrorSet | ErrorListSet)
};
template<int STATE>
@@ -520,6 +566,20 @@
return castState<ColumnNamesSet>();
}
+ Builder<STATE | ButtonsSet>& setButtons(RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Database::MouseButton>> value)
+ {
+ COMPILE_ASSERT(!(STATE & ButtonsSet), property_buttons_already_set);
+ m_result->setArray(ASCIILiteral("buttons"), value);
+ return castState<ButtonsSet>();
+ }
+
+ Builder<STATE | DirectionalitySet>& setDirectionality(Directionality value)
+ {
+ COMPILE_ASSERT(!(STATE & DirectionalitySet), property_directionality_already_set);
+ m_result->setString(ASCIILiteral("directionality"), Inspector::Protocol::TestHelpers::getEnumConstantValue(value));
+ return castState<DirectionalitySet>();
+ }
+
Builder<STATE | NotesSet>& setNotes(const String& value)
{
COMPILE_ASSERT(!(STATE & NotesSet), property_notes_already_set);
@@ -576,6 +636,8 @@
* Synthetic constructor:
* Ref<ParameterBundle> result = ParameterBundle::create()
* .setColumnNames(...)
+ * .setButtons(...)
+ * .setDirectionality(...)
* .setNotes(...)
* .setTimestamp(...)
* .setValues(...)
@@ -687,15 +749,22 @@
namespace Test {
class ParameterBundle : public Inspector::InspectorObjectBase {
public:
+ // Named after property name 'directionality' while generating ParameterBundle.
+ enum class Directionality {
+ LTR = 4,
+ RTL = 5,
+ }; // enum class Directionality
enum {
NoFieldsSet = 0,
- ColumnNamesSet = 1 << 0,
- NotesSet = 1 << 1,
- TimestampSet = 1 << 2,
- ValuesSet = 1 << 3,
- PayloadSet = 1 << 4,
- ErrorSet = 1 << 5,
- AllFieldsSet = (ColumnNamesSet | NotesSet | TimestampSet | ValuesSet | PayloadSet | ErrorSet)
+ DirectionalitySet = 1 << 0,
+ ButtonsSet = 1 << 1,
+ ColumnNamesSet = 1 << 2,
+ NotesSet = 1 << 3,
+ TimestampSet = 1 << 4,
+ ValuesSet = 1 << 5,
+ PayloadSet = 1 << 6,
+ ErrorSet = 1 << 7,
+ AllFieldsSet = (DirectionalitySet | ButtonsSet | ColumnNamesSet | NotesSet | TimestampSet | ValuesSet | PayloadSet | ErrorSet)
};
template<int STATE>
@@ -716,6 +785,20 @@
friend class ParameterBundle;
public:
+ Builder<STATE | DirectionalitySet>& setDirectionality(Directionality value)
+ {
+ COMPILE_ASSERT(!(STATE & DirectionalitySet), property_directionality_already_set);
+ m_result->setString(ASCIILiteral("directionality"), Inspector::Protocol::TestHelpers::getEnumConstantValue(value));
+ return castState<DirectionalitySet>();
+ }
+
+ Builder<STATE | ButtonsSet>& setButtons(RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Database::MouseButton>> value)
+ {
+ COMPILE_ASSERT(!(STATE & ButtonsSet), property_buttons_already_set);
+ m_result->setArray(ASCIILiteral("buttons"), value);
+ return castState<ButtonsSet>();
+ }
+
Builder<STATE | ColumnNamesSet>& setColumnNames(RefPtr<Inspector::Protocol::Array<String>> value)
{
COMPILE_ASSERT(!(STATE & ColumnNamesSet), property_columnNames_already_set);
@@ -771,6 +854,8 @@
/*
* Synthetic constructor:
* Ref<ParameterBundle> result = ParameterBundle::create()
+ * .setDirectionality(...)
+ * .setButtons(...)
* .setColumnNames(...)
* .setNotes(...)
* .setTimestamp(...)
@@ -789,6 +874,25 @@
+namespace TestHelpers {
+
+template<typename ProtocolEnumType>
+std::optional<ProtocolEnumType> parseEnumValueFromString(const String&);
+
+// Enums in the 'Database' Domain
+template<>
+std::optional<Inspector::Protocol::Database::MouseButton> parseEnumValueFromString<Inspector::Protocol::Database::MouseButton>(const String&);
+template<>
+std::optional<Inspector::Protocol::Database::OptionalParameterBundle::Directionality> parseEnumValueFromString<Inspector::Protocol::Database::OptionalParameterBundle::Directionality>(const String&);
+template<>
+std::optional<Inspector::Protocol::Database::ParameterBundle::Directionality> parseEnumValueFromString<Inspector::Protocol::Database::ParameterBundle::Directionality>(const String&);
+
+// Enums in the 'Test' Domain
+template<>
+std::optional<Inspector::Protocol::Test::ParameterBundle::Directionality> parseEnumValueFromString<Inspector::Protocol::Test::ParameterBundle::Directionality>(const String&);
+
+} // namespace TestHelpers
+
} // namespace Protocol
} // namespace Inspector
@@ -835,8 +939,87 @@
namespace Protocol {
+namespace TestHelpers {
+static const char* const enum_constant_values[] = {
+ "None",
+ "Left",
+ "Middle",
+ "Right",
+ "LTR",
+ "RTL",
+};
+String getEnumConstantValue(int code) {
+ return enum_constant_values[code];
+}
+
+// Enums in the 'Database' Domain
+template<>
+std::optional<Inspector::Protocol::Database::MouseButton> parseEnumValueFromString<Inspector::Protocol::Database::MouseButton>(const String& protocolString)
+{
+ static const size_t constantValues[] = {
+ (size_t)Inspector::Protocol::Database::MouseButton::None,
+ (size_t)Inspector::Protocol::Database::MouseButton::Left,
+ (size_t)Inspector::Protocol::Database::MouseButton::Middle,
+ (size_t)Inspector::Protocol::Database::MouseButton::Right,
+ };
+ for (size_t i = 0; i < 4; ++i)
+ if (protocolString == enum_constant_values[constantValues[i]])
+ return (Inspector::Protocol::Database::MouseButton)constantValues[i];
+
+ return std::nullopt;
+}
+
+template<>
+std::optional<Inspector::Protocol::Database::OptionalParameterBundle::Directionality> parseEnumValueFromString<Inspector::Protocol::Database::OptionalParameterBundle::Directionality>(const String& protocolString)
+{
+ static const size_t constantValues[] = {
+ (size_t)Inspector::Protocol::Database::OptionalParameterBundle::Directionality::LTR,
+ (size_t)Inspector::Protocol::Database::OptionalParameterBundle::Directionality::RTL,
+ };
+ for (size_t i = 0; i < 2; ++i)
+ if (protocolString == enum_constant_values[constantValues[i]])
+ return (Inspector::Protocol::Database::OptionalParameterBundle::Directionality)constantValues[i];
+
+ return std::nullopt;
+}
+
+template<>
+std::optional<Inspector::Protocol::Database::ParameterBundle::Directionality> parseEnumValueFromString<Inspector::Protocol::Database::ParameterBundle::Directionality>(const String& protocolString)
+{
+ static const size_t constantValues[] = {
+ (size_t)Inspector::Protocol::Database::ParameterBundle::Directionality::LTR,
+ (size_t)Inspector::Protocol::Database::ParameterBundle::Directionality::RTL,
+ };
+ for (size_t i = 0; i < 2; ++i)
+ if (protocolString == enum_constant_values[constantValues[i]])
+ return (Inspector::Protocol::Database::ParameterBundle::Directionality)constantValues[i];
+
+ return std::nullopt;
+}
+
+
+// Enums in the 'Test' Domain
+template<>
+std::optional<Inspector::Protocol::Test::ParameterBundle::Directionality> parseEnumValueFromString<Inspector::Protocol::Test::ParameterBundle::Directionality>(const String& protocolString)
+{
+ static const size_t constantValues[] = {
+ (size_t)Inspector::Protocol::Test::ParameterBundle::Directionality::LTR,
+ (size_t)Inspector::Protocol::Test::ParameterBundle::Directionality::RTL,
+ };
+ for (size_t i = 0; i < 2; ++i)
+ if (protocolString == enum_constant_values[constantValues[i]])
+ return (Inspector::Protocol::Test::ParameterBundle::Directionality)constantValues[i];
+
+ return std::nullopt;
+}
+
+
+} // namespace TestHelpers
+
+
+
} // namespace Protocol
} // namespace Inspector
@@ -1129,8 +1312,29 @@
};
+typedef NS_ENUM(NSInteger, TestProtocolDatabaseMouseButton) {
+ TestProtocolDatabaseMouseButtonNone,
+ TestProtocolDatabaseMouseButtonLeft,
+ TestProtocolDatabaseMouseButtonMiddle,
+ TestProtocolDatabaseMouseButtonRight,
+};
+typedef NS_ENUM(NSInteger, TestProtocolDatabaseOptionalParameterBundleDirectionality) {
+ TestProtocolDatabaseOptionalParameterBundleDirectionalityLTR,
+ TestProtocolDatabaseOptionalParameterBundleDirectionalityRTL,
+};
+typedef NS_ENUM(NSInteger, TestProtocolDatabaseParameterBundleDirectionality) {
+ TestProtocolDatabaseParameterBundleDirectionalityLTR,
+ TestProtocolDatabaseParameterBundleDirectionalityRTL,
+};
+
+typedef NS_ENUM(NSInteger, TestProtocolTestParameterBundleDirectionality) {
+ TestProtocolTestParameterBundleDirectionalityLTR,
+ TestProtocolTestParameterBundleDirectionalityRTL,
+};
+
+
__attribute__((visibility ("default")))
@interface TestProtocolDatabaseError : RWIProtocolJSONObject
- (instancetype)initWithPayload:(NSDictionary<NSString *, id> *)payload;
@@ -1145,6 +1349,8 @@
- (instancetype)initWithPayload:(NSDictionary<NSString *, id> *)payload;
- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
/* optional */ @property (nonatomic, copy) NSArray/*<NSString>*/ *columnNames;
+/* optional */ @property (nonatomic, copy) NSArray/*<NSString>*/ *buttons;
+/* optional */ @property (nonatomic, assign) TestProtocolDatabaseOptionalParameterBundleDirectionality directionality;
/* optional */ @property (nonatomic, copy) NSString *notes;
/* optional */ @property (nonatomic, assign) double timestamp;
/* optional */ @property (nonatomic, retain) RWIProtocolJSONObject *values;
@@ -1157,8 +1363,10 @@
@interface TestProtocolDatabaseParameterBundle : RWIProtocolJSONObject
- (instancetype)initWithPayload:(NSDictionary<NSString *, id> *)payload;
- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
-- (instancetype)initWithColumnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(TestProtocolDatabaseError *)error errorList:(NSArray/*<TestProtocolDatabaseError>*/ *)errorList;
+- (instancetype)initWithColumnNames:(NSArray/*<NSString>*/ *)columnNames buttons:(NSArray/*<NSString>*/ *)buttons directionality:(TestProtocolDatabaseParameterBundleDirectionality)directionality notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(TestProtocolDatabaseError *)error errorList:(NSArray/*<TestProtocolDatabaseError>*/ *)errorList;
/* required */ @property (nonatomic, copy) NSArray/*<NSString>*/ *columnNames;
+/* required */ @property (nonatomic, copy) NSArray/*<NSString>*/ *buttons;
+/* required */ @property (nonatomic, assign) TestProtocolDatabaseParameterBundleDirectionality directionality;
/* required */ @property (nonatomic, copy) NSString *notes;
/* required */ @property (nonatomic, assign) double timestamp;
/* required */ @property (nonatomic, retain) RWIProtocolJSONObject *values;
@@ -1189,7 +1397,9 @@
@interface TestProtocolTestParameterBundle : RWIProtocolJSONObject
- (instancetype)initWithPayload:(NSDictionary<NSString *, id> *)payload;
- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
-- (instancetype)initWithColumnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(TestProtocolDatabaseError *)error;
+- (instancetype)initWithDirectionality:(TestProtocolTestParameterBundleDirectionality)directionality buttons:(NSArray/*<NSString>*/ *)buttons columnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(TestProtocolDatabaseError *)error;
+/* required */ @property (nonatomic, assign) TestProtocolTestParameterBundleDirectionality directionality;
+/* required */ @property (nonatomic, copy) NSArray/*<NSString>*/ *buttons;
/* required */ @property (nonatomic, copy) NSArray/*<NSString>*/ *columnNames;
/* required */ @property (nonatomic, copy) NSString *notes;
/* required */ @property (nonatomic, assign) double timestamp;
@@ -1314,9 +1524,95 @@
}
+inline String toProtocolString(TestProtocolDatabaseMouseButton value)
+{
+ switch(value) {
+ case TestProtocolDatabaseMouseButtonNone:
+ return ASCIILiteral("None");
+ case TestProtocolDatabaseMouseButtonLeft:
+ return ASCIILiteral("Left");
+ case TestProtocolDatabaseMouseButtonMiddle:
+ return ASCIILiteral("Middle");
+ case TestProtocolDatabaseMouseButtonRight:
+ return ASCIILiteral("Right");
+ }
+}
+template<>
+inline std::optional<TestProtocolDatabaseMouseButton> fromProtocolString(const String& value)
+{
+ if (value == "None")
+ return TestProtocolDatabaseMouseButtonNone;
+ if (value == "Left")
+ return TestProtocolDatabaseMouseButtonLeft;
+ if (value == "Middle")
+ return TestProtocolDatabaseMouseButtonMiddle;
+ if (value == "Right")
+ return TestProtocolDatabaseMouseButtonRight;
+ return std::nullopt;
+}
+inline String toProtocolString(TestProtocolDatabaseOptionalParameterBundleDirectionality value)
+{
+ switch(value) {
+ case TestProtocolDatabaseOptionalParameterBundleDirectionalityLTR:
+ return ASCIILiteral("LTR");
+ case TestProtocolDatabaseOptionalParameterBundleDirectionalityRTL:
+ return ASCIILiteral("RTL");
+ }
+}
+template<>
+inline std::optional<TestProtocolDatabaseOptionalParameterBundleDirectionality> fromProtocolString(const String& value)
+{
+ if (value == "LTR")
+ return TestProtocolDatabaseOptionalParameterBundleDirectionalityLTR;
+ if (value == "RTL")
+ return TestProtocolDatabaseOptionalParameterBundleDirectionalityRTL;
+ return std::nullopt;
+}
+
+inline String toProtocolString(TestProtocolDatabaseParameterBundleDirectionality value)
+{
+ switch(value) {
+ case TestProtocolDatabaseParameterBundleDirectionalityLTR:
+ return ASCIILiteral("LTR");
+ case TestProtocolDatabaseParameterBundleDirectionalityRTL:
+ return ASCIILiteral("RTL");
+ }
+}
+
+template<>
+inline std::optional<TestProtocolDatabaseParameterBundleDirectionality> fromProtocolString(const String& value)
+{
+ if (value == "LTR")
+ return TestProtocolDatabaseParameterBundleDirectionalityLTR;
+ if (value == "RTL")
+ return TestProtocolDatabaseParameterBundleDirectionalityRTL;
+ return std::nullopt;
+}
+
+
+inline String toProtocolString(TestProtocolTestParameterBundleDirectionality value)
+{
+ switch(value) {
+ case TestProtocolTestParameterBundleDirectionalityLTR:
+ return ASCIILiteral("LTR");
+ case TestProtocolTestParameterBundleDirectionalityRTL:
+ return ASCIILiteral("RTL");
+ }
+}
+
+template<>
+inline std::optional<TestProtocolTestParameterBundleDirectionality> fromProtocolString(const String& value)
+{
+ if (value == "LTR")
+ return TestProtocolTestParameterBundleDirectionalityLTR;
+ if (value == "RTL")
+ return TestProtocolTestParameterBundleDirectionalityRTL;
+ return std::nullopt;
+}
+
} // namespace Inspector
### End File: TestProtocolTypeConversions.h
@@ -1364,6 +1660,7 @@
+ (void)_parseError:(TestProtocolDatabaseError **)outValue fromPayload:(id)payload;
+ (void)_parseErrorList:(NSArray/*<TestProtocolDatabaseError>*/ **)outValue fromPayload:(id)payload;
++ (void)_parseMouseButton:(NSNumber **)outValue fromPayload:(id)payload;
+ (void)_parseOptionalParameterBundle:(TestProtocolDatabaseOptionalParameterBundle **)outValue fromPayload:(id)payload;
+ (void)_parseParameterBundle:(TestProtocolDatabaseParameterBundle **)outValue fromPayload:(id)payload;
+ (void)_parseObjectWithPropertyNameConflicts:(TestProtocolDatabaseObjectWithPropertyNameConflicts **)outValue fromPayload:(id)payload;
@@ -1390,6 +1687,14 @@
*outValue = (NSArray/*<TestProtocolDatabaseError>*/ *)payload;
}
++ (void)_parseMouseButton:(NSNumber **)outValue fromPayload:(id)payload
+{
+ THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
+ std::optional<TestProtocolDatabaseMouseButton> result = Inspector::fromProtocolString<TestProtocolDatabaseMouseButton>(payload);
+ THROW_EXCEPTION_FOR_BAD_ENUM_VALUE(result, @"MouseButton");
+ *outValue = @(result.value());
+}
+
+ (void)_parseOptionalParameterBundle:(TestProtocolDatabaseOptionalParameterBundle **)outValue fromPayload:(id)payload
{
THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
@@ -1534,8 +1839,14 @@
if (!(self = [super init]))
return nil;
- self.columnNames = objcArrayFromPayload<NSString>(payload[@"columnNames"]);
+ self.columnNames = payload[@"columnNames"];
+ self.buttons = payload[@"buttons"];
+
+ std::optional<TestProtocolDatabaseOptionalParameterBundleDirectionality> directionality = fromProtocolString<TestProtocolDatabaseOptionalParameterBundleDirectionality>(payload[@"directionality"]);
+ if (directionality)
+ self.directionality = directionality.value();
+
self.notes = payload[@"notes"];
self.timestamp = [payload[@"timestamp"] doubleValue];
@@ -1568,6 +1879,26 @@
return objcStringArray([super inspectorArrayForKey:@"columnNames"]);
}
+- (void)setButtons:(NSArray/*<NSString>*/ *)buttons
+{
+ [super setInspectorArray:inspectorStringArray(buttons) forKey:@"buttons"];
+}
+
+- (NSArray/*<NSString>*/ *)buttons
+{
+ return objcStringArray([super inspectorArrayForKey:@"buttons"]);
+}
+
+- (void)setDirectionality:(TestProtocolDatabaseOptionalParameterBundleDirectionality)directionality
+{
+ [super setString:toProtocolString(directionality) forKey:@"directionality"];
+}
+
+- (TestProtocolDatabaseOptionalParameterBundleDirectionality)directionality
+{
+ return fromProtocolString<TestProtocolDatabaseOptionalParameterBundleDirectionality>([super stringForKey:@"directionality"]).value();
+}
+
- (void)setNotes:(NSString *)notes
{
[super setString:notes forKey:@"notes"];
@@ -1639,8 +1970,16 @@
return nil;
THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"columnNames"], @"columnNames");
- self.columnNames = objcArrayFromPayload<NSString>(payload[@"columnNames"]);
+ self.columnNames = payload[@"columnNames"];
+ THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"buttons"], @"buttons");
+ self.buttons = payload[@"buttons"];
+
+ THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"directionality"], @"directionality");
+ std::optional<TestProtocolDatabaseParameterBundleDirectionality> directionality = fromProtocolString<TestProtocolDatabaseParameterBundleDirectionality>(payload[@"directionality"]);
+ THROW_EXCEPTION_FOR_BAD_ENUM_VALUE(directionality, @"directionality");
+ self.directionality = directionality.value();
+
THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"notes"], @"notes");
self.notes = payload[@"notes"];
@@ -1669,12 +2008,13 @@
return self;
}
-- (instancetype)initWithColumnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(TestProtocolDatabaseError *)error errorList:(NSArray/*<TestProtocolDatabaseError>*/ *)errorList
+- (instancetype)initWithColumnNames:(NSArray/*<NSString>*/ *)columnNames buttons:(NSArray/*<NSString>*/ *)buttons directionality:(TestProtocolDatabaseParameterBundleDirectionality)directionality notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(TestProtocolDatabaseError *)error errorList:(NSArray/*<TestProtocolDatabaseError>*/ *)errorList
{
if (!(self = [super init]))
return nil;
THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(columnNames, @"columnNames");
+ THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(buttons, @"buttons");
THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(notes, @"notes");
THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(values, @"values");
THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload, @"payload");
@@ -1683,6 +2023,8 @@
THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(errorList, [TestProtocolDatabaseError class]);
self.columnNames = columnNames;
+ self.buttons = buttons;
+ self.directionality = directionality;
self.notes = notes;
self.timestamp = timestamp;
self.values = values;
@@ -1703,6 +2045,26 @@
return objcStringArray([super inspectorArrayForKey:@"columnNames"]);
}
+- (void)setButtons:(NSArray/*<NSString>*/ *)buttons
+{
+ [super setInspectorArray:inspectorStringArray(buttons) forKey:@"buttons"];
+}
+
+- (NSArray/*<NSString>*/ *)buttons
+{
+ return objcStringArray([super inspectorArrayForKey:@"buttons"]);
+}
+
+- (void)setDirectionality:(TestProtocolDatabaseParameterBundleDirectionality)directionality
+{
+ [super setString:toProtocolString(directionality) forKey:@"directionality"];
+}
+
+- (TestProtocolDatabaseParameterBundleDirectionality)directionality
+{
+ return fromProtocolString<TestProtocolDatabaseParameterBundleDirectionality>([super stringForKey:@"directionality"]).value();
+}
+
- (void)setNotes:(NSString *)notes
{
[super setString:notes forKey:@"notes"];
@@ -1897,8 +2259,16 @@
if (!(self = [super init]))
return nil;
+ THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"directionality"], @"directionality");
+ std::optional<TestProtocolTestParameterBundleDirectionality> directionality = fromProtocolString<TestProtocolTestParameterBundleDirectionality>(payload[@"directionality"]);
+ THROW_EXCEPTION_FOR_BAD_ENUM_VALUE(directionality, @"directionality");
+ self.directionality = directionality.value();
+
+ THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"buttons"], @"buttons");
+ self.buttons = payload[@"buttons"];
+
THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"columnNames"], @"columnNames");
- self.columnNames = objcArrayFromPayload<NSString>(payload[@"columnNames"]);
+ self.columnNames = payload[@"columnNames"];
THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"notes"], @"notes");
self.notes = payload[@"notes"];
@@ -1925,11 +2295,12 @@
return self;
}
-- (instancetype)initWithColumnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(TestProtocolDatabaseError *)error
+- (instancetype)initWithDirectionality:(TestProtocolTestParameterBundleDirectionality)directionality buttons:(NSArray/*<NSString>*/ *)buttons columnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(TestProtocolDatabaseError *)error
{
if (!(self = [super init]))
return nil;
+ THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(buttons, @"buttons");
THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(columnNames, @"columnNames");
THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(notes, @"notes");
THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(values, @"values");
@@ -1936,6 +2307,8 @@
THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload, @"payload");
THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(error, @"error");
+ self.directionality = directionality;
+ self.buttons = buttons;
self.columnNames = columnNames;
self.notes = notes;
self.timestamp = timestamp;
@@ -1946,6 +2319,26 @@
return self;
}
+- (void)setDirectionality:(TestProtocolTestParameterBundleDirectionality)directionality
+{
+ [super setString:toProtocolString(directionality) forKey:@"directionality"];
+}
+
+- (TestProtocolTestParameterBundleDirectionality)directionality
+{
+ return fromProtocolString<TestProtocolTestParameterBundleDirectionality>([super stringForKey:@"directionality"]).value();
+}
+
+- (void)setButtons:(NSArray/*<NSString>*/ *)buttons
+{
+ [super setInspectorArray:inspectorStringArray(buttons) forKey:@"buttons"];
+}
+
+- (NSArray/*<NSString>*/ *)buttons
+{
+ return objcStringArray([super inspectorArrayForKey:@"buttons"]);
+}
+
- (void)setColumnNames:(NSArray/*<NSString>*/ *)columnNames
{
[super setInspectorArray:inspectorStringArray(columnNames) forKey:@"columnNames"];
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/generic/type-declaration-object-type.json (213959 => 213960)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/type-declaration-object-type.json 2017-03-14 23:41:53 UTC (rev 213959)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/type-declaration-object-type.json 2017-03-14 23:44:01 UTC (rev 213960)
@@ -18,10 +18,23 @@
"items": { "$ref": "Error" }
},
{
+ "id": "MouseButton",
+ "type": "string",
+ "description": "Enumerates different mouse buttons that can be used.",
+ "enum": [
+ "None",
+ "Left",
+ "Middle",
+ "Right"
+ ]
+ },
+ {
"id": "OptionalParameterBundle",
"type": "object",
"properties": [
{ "name": "columnNames", "type": "array", "optional": true, "items": { "type": "string" } },
+ { "name": "buttons", "type": "array", "optional": true, "items": { "$ref": "MouseButton" } },
+ { "name": "directionality", "type": "string", "enum": ["LTR", "RTL"], "optional": true },
{ "name": "notes", "type": "string", "optional": true },
{ "name": "timestamp", "type": "number", "optional": true },
{ "name": "values", "type": "object", "optional": true },
@@ -35,6 +48,8 @@
"type": "object",
"properties": [
{ "name": "columnNames", "type": "array", "items": { "type": "string" } },
+ { "name": "buttons", "type": "array", "items": { "$ref": "MouseButton" } },
+ { "name": "directionality", "type": "string", "enum": ["LTR", "RTL"] },
{ "name": "notes", "type": "string" },
{ "name": "timestamp", "type": "number" },
{ "name": "values", "type": "object" },
@@ -70,6 +85,8 @@
"id": "ParameterBundle",
"type": "object",
"properties": [
+ { "name": "directionality", "type": "string", "enum": ["LTR", "RTL"] },
+ { "name": "buttons", "type": "array", "items": { "$ref": "Database.MouseButton" } },
{ "name": "columnNames", "type": "array", "items": { "type": "string" } },
{ "name": "notes", "type": "string" },
{ "name": "timestamp", "type": "number" },