Title: [175479] trunk/Source/_javascript_Core
Revision
175479
Author
joep...@webkit.org
Date
2014-11-03 11:36:16 -0800 (Mon, 03 Nov 2014)

Log Message

Web Inspector: ObjC Protocol Interfaces should throw exceptions for nil arguments
https://bugs.webkit.org/show_bug.cgi?id=138221

Reviewed by Timothy Hatcher.

The RWIProtocol APIs will now raise exceptions when:

  - any properties are set on a type with a nil value or key (handled by RWIProtocolJSONObject)
  - required parameters in type constructors have nil value
  - required or optional command return parameters have nil values
  - required or optional event parameters have nil values

The exceptions include the name of the field when possible.

* inspector/scripts/codegen/generate_objective_c.py:
(ObjCGenerator.is_type_objc_pointer_type):
Provide a quick check to see if type would be a pointer or not
in the ObjC API. Enums for example are not pointers in the API
because we manage converting them to/from strings.

* inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py:
(ObjectiveCConfigurationImplementationGenerator._generate_success_block_for_command):
* inspector/scripts/codegen/generate_objective_c_frontend_dispatcher_implementation.py:
(ObjectiveCFrontendDispatcherImplementationGenerator._generate_event):
* inspector/scripts/codegen/generate_objective_c_types_implementation.py:
(ObjectiveCTypesImplementationGenerator._generate_init_method_for_required_members):
(ObjectiveCTypesImplementationGenerator._generate_setter_for_member):
Throw exceptions when nil values are disallowed.

* inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
* inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
* inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
* inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:
* inspector/scripts/tests/expected/type-declaration-object-type.json-result:
* inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
Rebaseline tests which include the exception raise calls.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (175478 => 175479)


--- trunk/Source/_javascript_Core/ChangeLog	2014-11-03 19:36:14 UTC (rev 175478)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-11-03 19:36:16 UTC (rev 175479)
@@ -1,5 +1,44 @@
 2014-11-03  Joseph Pecoraro  <pecor...@apple.com>
 
+        Web Inspector: ObjC Protocol Interfaces should throw exceptions for nil arguments
+        https://bugs.webkit.org/show_bug.cgi?id=138221
+
+        Reviewed by Timothy Hatcher.
+
+        The RWIProtocol APIs will now raise exceptions when:
+
+          - any properties are set on a type with a nil value or key (handled by RWIProtocolJSONObject)
+          - required parameters in type constructors have nil value
+          - required or optional command return parameters have nil values
+          - required or optional event parameters have nil values
+
+        The exceptions include the name of the field when possible.
+
+        * inspector/scripts/codegen/generate_objective_c.py:
+        (ObjCGenerator.is_type_objc_pointer_type):
+        Provide a quick check to see if type would be a pointer or not
+        in the ObjC API. Enums for example are not pointers in the API
+        because we manage converting them to/from strings.
+
+        * inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py:
+        (ObjectiveCConfigurationImplementationGenerator._generate_success_block_for_command):
+        * inspector/scripts/codegen/generate_objective_c_frontend_dispatcher_implementation.py:
+        (ObjectiveCFrontendDispatcherImplementationGenerator._generate_event):
+        * inspector/scripts/codegen/generate_objective_c_types_implementation.py:
+        (ObjectiveCTypesImplementationGenerator._generate_init_method_for_required_members):
+        (ObjectiveCTypesImplementationGenerator._generate_setter_for_member):
+        Throw exceptions when nil values are disallowed.
+
+        * inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
+        * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
+        * inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
+        * inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:
+        * inspector/scripts/tests/expected/type-declaration-object-type.json-result:
+        * inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
+        Rebaseline tests which include the exception raise calls.
+
+2014-11-03  Joseph Pecoraro  <pecor...@apple.com>
+
         Web Inspector: ALTERNATE_DISPATCHERS Let the frontend know about extra agents
         https://bugs.webkit.org/show_bug.cgi?id=138236
 

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objective_c.py (175478 => 175479)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objective_c.py	2014-11-03 19:36:14 UTC (rev 175478)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objective_c.py	2014-11-03 19:36:16 UTC (rev 175479)
@@ -246,6 +246,20 @@
         return None
 
     @staticmethod
+    def is_type_objc_pointer_type(_type):
+        if (isinstance(_type, AliasedType)):
+            _type = _type.aliased_type
+        if (isinstance(_type, PrimitiveType)):
+            return _type.raw_name() in ['string', 'array', 'any', 'object']
+        if (isinstance(_type, EnumType)):
+            return False
+        if (isinstance(_type, ObjectType)):
+            return True
+        if (isinstance(_type, ArrayType)):
+            return True
+        return None
+
+    @staticmethod
     def objc_class_for_type(_type):
         if (isinstance(_type, AliasedType)):
             _type = _type.aliased_type

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py (175478 => 175479)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py	2014-11-03 19:36:14 UTC (rev 175478)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py	2014-11-03 19:36:16 UTC (rev 175479)
@@ -99,8 +99,6 @@
     def _generate_success_block_for_command(self, domain, command):
         lines = []
 
-        # FIXME: <https://webkit.org/b/138221> Web Inspector: ObjC Protocol Interfaces should throw exceptions for nil arguments
-
         if command.return_parameters:
             success_block_parameters = []
             for parameter in command.return_parameters:
@@ -113,6 +111,17 @@
 
         if command.return_parameters:
             lines.append('        RefPtr<InspectorObject> resultObject = InspectorObject::create();')
+
+            required_pointer_parameters = filter(lambda parameter: not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), command.return_parameters)
+            for parameter in required_pointer_parameters:
+                var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name)
+                lines.append('        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(%s, @"%s");' % (var_name, var_name))
+
+            optional_pointer_parameters = filter(lambda parameter: parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), command.return_parameters)
+            for parameter in optional_pointer_parameters:
+                var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name)
+                lines.append('        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(%s, @"%s");' % (var_name, var_name))
+
             for parameter in command.return_parameters:
                 keyed_set_method = Generator.keyed_set_method_for_type(parameter.type)
                 var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name)

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objective_c_frontend_dispatcher_implementation.py (175478 => 175479)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objective_c_frontend_dispatcher_implementation.py	2014-11-03 19:36:14 UTC (rev 175478)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objective_c_frontend_dispatcher_implementation.py	2014-11-03 19:36:16 UTC (rev 175479)
@@ -101,6 +101,20 @@
         lines.append('    if (!frontendChannel)')
         lines.append('        return;')
         lines.append('')
+
+        required_pointer_parameters = filter(lambda parameter: not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), event.event_parameters)
+        for parameter in required_pointer_parameters:
+            var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name)
+            lines.append('    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(%s, @"%s");' % (var_name, var_name))
+
+        optional_pointer_parameters = filter(lambda parameter: parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), event.event_parameters)
+        for parameter in optional_pointer_parameters:
+            var_name = ObjCGenerator.identifier_to_objc_identifier(parameter.parameter_name)
+            lines.append('    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(%s, @"%s");' % (var_name, var_name))
+
+        if required_pointer_parameters or optional_pointer_parameters:
+            lines.append('')
+
         lines.append('    RefPtr<InspectorObject> jsonMessage = InspectorObject::create();')
         lines.append('    jsonMessage->setString(ASCIILiteral("method"), ASCIILiteral("%s.%s"));' % (domain.domain_name, event.event_name))
         if event.event_parameters:

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objective_c_types_implementation.py (175478 => 175479)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objective_c_types_implementation.py	2014-11-03 19:36:14 UTC (rev 175478)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objective_c_types_implementation.py	2014-11-03 19:36:16 UTC (rev 175479)
@@ -105,7 +105,6 @@
             var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
             pairs.append('%s:(%s)%s' % (var_name, objc_type, var_name))
         pairs[0] = ucfirst(pairs[0])
-        # FIXME: <https://webkit.org/b/138221> Web Inspector: ObjC Protocol Interfaces should throw exceptions for nil arguments
         lines = []
         lines.append('- (instancetype)initWith%s;' % ' '.join(pairs))
         lines.append('{')
@@ -113,9 +112,18 @@
         lines.append('    if (!self)')
         lines.append('        return nil;')
         lines.append('')
+
+        required_pointer_members = filter(lambda member: ObjCGenerator.is_type_objc_pointer_type(member.type), required_members)
+        if required_pointer_members:
+            for member in required_pointer_members:
+                var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
+                lines.append('    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(%s, @"%s");' % (var_name, var_name))
+            lines.append('')
+
         for member in required_members:
             var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
             lines.append('    self.%s = %s;' % (var_name, var_name))
+
         lines.append('')
         lines.append('    return self;')
         lines.append('}')
@@ -126,7 +134,6 @@
         var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
         setter_method = ObjCGenerator.objc_setter_method_for_member(declaration, member)
         conversion_expression = ObjCGenerator.objc_to_protocol_expression_for_member(declaration, member, var_name)
-        # FIXME: <https://webkit.org/b/138221> Web Inspector: ObjC Protocol Interfaces should throw exceptions for nil arguments
         lines = []
         lines.append('- (void)set%s:(%s)%s' % (ucfirst(var_name), objc_type, var_name))
         lines.append('{')

Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-async-attribute.json-result (175478 => 175479)


--- trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-async-attribute.json-result	2014-11-03 19:36:14 UTC (rev 175478)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-async-attribute.json-result	2014-11-03 19:36:16 UTC (rev 175479)
@@ -1065,6 +1065,11 @@
 
     id successCallback = ^(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, NSInteger *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, RWIProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColor *printColor) {
         RefPtr<InspectorObject> resultObject = InspectorObject::create();
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @"columnNames");
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @"notes");
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @"values");
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(payload, @"payload");
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(sqlError, @"sqlError");
         if (columnNames)
             resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(*columnNames));
         if (notes)
@@ -1100,6 +1105,11 @@
 
     id successCallback = ^(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, NSInteger *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, RWIProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColor *printColor) {
         RefPtr<InspectorObject> resultObject = InspectorObject::create();
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @"columnNames");
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @"notes");
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @"values");
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(payload, @"payload");
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(sqlError, @"sqlError");
         if (columnNames)
             resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(*columnNames));
         if (notes)
@@ -1135,6 +1145,11 @@
 
     id successCallback = ^(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, NSInteger databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteSQLSyncPrintColor printColor) {
         RefPtr<InspectorObject> resultObject = InspectorObject::create();
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @"columnNames");
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @"notes");
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @"values");
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(payload, @"payload");
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(sqlError, @"sqlError");
         resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(columnNames));
         resultObject->setString(ASCIILiteral("notes"), notes);
         resultObject->setDouble(ASCIILiteral("timestamp"), timestamp);
@@ -1161,6 +1176,11 @@
 
     id successCallback = ^(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, NSInteger databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteSQLAsyncPrintColor printColor) {
         RefPtr<InspectorObject> resultObject = InspectorObject::create();
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @"columnNames");
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @"notes");
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @"values");
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(payload, @"payload");
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(sqlError, @"sqlError");
         resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(columnNames));
         resultObject->setString(ASCIILiteral("notes"), notes);
         resultObject->setDouble(ASCIILiteral("timestamp"), timestamp);
@@ -1556,6 +1576,8 @@
     if (!self)
         return nil;
 
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(message, @"message");
+
     self.message = message;
     self.code = code;
 

Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result (175478 => 175479)


--- trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result	2014-11-03 19:36:14 UTC (rev 175478)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result	2014-11-03 19:36:16 UTC (rev 175479)
@@ -954,6 +954,11 @@
 
     id successCallback = ^(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, NSInteger *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor *printColor) {
         RefPtr<InspectorObject> resultObject = InspectorObject::create();
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @"columnNames");
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @"notes");
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @"values");
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(payload, @"payload");
+        THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(sqlError, @"sqlError");
         if (columnNames)
             resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(*columnNames));
         if (notes)
@@ -1014,6 +1019,11 @@
 
     id successCallback = ^(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, NSInteger databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor printColor) {
         RefPtr<InspectorObject> resultObject = InspectorObject::create();
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @"columnNames");
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @"notes");
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @"values");
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(payload, @"payload");
+        THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(sqlError, @"sqlError");
         resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(columnNames));
         resultObject->setString(ASCIILiteral("notes"), notes);
         resultObject->setDouble(ASCIILiteral("timestamp"), timestamp);
@@ -1414,6 +1424,8 @@
     if (!self)
         return nil;
 
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(message, @"message");
+
     self.message = message;
     self.code = code;
 

Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/expected/events-with-optional-parameters.json-result (175478 => 175479)


--- trunk/Source/_javascript_Core/inspector/scripts/tests/expected/events-with-optional-parameters.json-result	2014-11-03 19:36:14 UTC (rev 175478)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/expected/events-with-optional-parameters.json-result	2014-11-03 19:36:16 UTC (rev 175479)
@@ -879,6 +879,14 @@
     if (!frontendChannel)
         return;
 
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @"columnNames");
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @"notes");
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @"values");
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(payload, @"payload");
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(sqlError, @"sqlError");
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(screenColor, @"screenColor");
+    THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(printColor, @"printColor");
+
     RefPtr<InspectorObject> jsonMessage = InspectorObject::create();
     jsonMessage->setString(ASCIILiteral("method"), ASCIILiteral("Database.didExecuteOptionalParameters"));
     RefPtr<InspectorObject> paramsObject = InspectorObject::create();
@@ -908,6 +916,14 @@
     if (!frontendChannel)
         return;
 
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @"columnNames");
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @"notes");
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @"values");
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(payload, @"payload");
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(sqlError, @"sqlError");
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(screenColor, @"screenColor");
+    THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(printColor, @"printColor");
+
     RefPtr<InspectorObject> jsonMessage = InspectorObject::create();
     jsonMessage->setString(ASCIILiteral("method"), ASCIILiteral("Database.didExecuteNoOptionalParameters"));
     RefPtr<InspectorObject> paramsObject = InspectorObject::create();
@@ -1035,6 +1051,8 @@
     if (!self)
         return nil;
 
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(message, @"message");
+
     self.message = message;
     self.code = code;
 

Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result (175478 => 175479)


--- trunk/Source/_javascript_Core/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result	2014-11-03 19:36:14 UTC (rev 175478)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result	2014-11-03 19:36:16 UTC (rev 175479)
@@ -1110,6 +1110,8 @@
     if (!self)
         return nil;
 
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(message, @"message");
+
     self.message = message;
     self.code = code;
 

Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/expected/type-declaration-object-type.json-result (175478 => 175479)


--- trunk/Source/_javascript_Core/inspector/scripts/tests/expected/type-declaration-object-type.json-result	2014-11-03 19:36:14 UTC (rev 175478)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/expected/type-declaration-object-type.json-result	2014-11-03 19:36:16 UTC (rev 175479)
@@ -1337,6 +1337,8 @@
     if (!self)
         return nil;
 
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(message, @"message");
+
     self.message = message;
     self.code = code;
 
@@ -1437,6 +1439,12 @@
     if (!self)
         return nil;
 
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(columnNames, @"columnNames");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(notes, @"notes");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(values, @"values");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload, @"payload");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(error, @"error");
+
     self.columnNames = columnNames;
     self.notes = notes;
     self.timestamp = timestamp;
@@ -1517,6 +1525,12 @@
     if (!self)
         return nil;
 
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(integer, @"integer");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(array, @"array");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(string, @"string");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(value, @"value");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(object, @"object");
+
     self.integer = integer;
     self.array = array;
     self.string = string;
@@ -1591,6 +1605,12 @@
     if (!self)
         return nil;
 
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(columnNames, @"columnNames");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(notes, @"notes");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(values, @"values");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload, @"payload");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(error, @"error");
+
     self.columnNames = columnNames;
     self.notes = notes;
     self.timestamp = timestamp;

Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result (175478 => 175479)


--- trunk/Source/_javascript_Core/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result	2014-11-03 19:36:14 UTC (rev 175478)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result	2014-11-03 19:36:16 UTC (rev 175479)
@@ -1265,6 +1265,9 @@
     if (!self)
         return nil;
 
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(string, @"string");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(tree, @"tree");
+
     self.string = string;
     self.number = number;
     self.animals = animals;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to