Title: [212157] trunk/Source/_javascript_Core
Revision
212157
Author
bb...@apple.com
Date
2017-02-10 15:47:02 -0800 (Fri, 10 Feb 2017)

Log Message

[Cocoa] Web Inspector: payload initializers for ObjC protocol types handles special-cased property names incorrectly
https://bugs.webkit.org/show_bug.cgi?id=168141

Reviewed by Joseph Pecoraro.

The generated code erroneously uses the ObjC variable name as the payload key,
rather than the raw type member name. For example, 'identifier' would be used instead of 'id'.

* inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:
(ObjCProtocolTypesImplementationGenerator._generate_init_method_for_payload):

* inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
Rebaseline an affected test.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (212156 => 212157)


--- trunk/Source/_javascript_Core/ChangeLog	2017-02-10 23:41:35 UTC (rev 212156)
+++ trunk/Source/_javascript_Core/ChangeLog	2017-02-10 23:47:02 UTC (rev 212157)
@@ -1,3 +1,19 @@
+2017-02-10  Brian Burg  <bb...@apple.com>
+
+        [Cocoa] Web Inspector: payload initializers for ObjC protocol types handles special-cased property names incorrectly
+        https://bugs.webkit.org/show_bug.cgi?id=168141
+
+        Reviewed by Joseph Pecoraro.
+
+        The generated code erroneously uses the ObjC variable name as the payload key,
+        rather than the raw type member name. For example, 'identifier' would be used instead of 'id'.
+
+        * inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:
+        (ObjCProtocolTypesImplementationGenerator._generate_init_method_for_payload):
+
+        * inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
+        Rebaseline an affected test.
+
 2017-02-10  Mark Lam  <mark....@apple.com>
 
         StructureStubInfo::considerCaching() should write barrier its owner CodeBlock when buffering a new Structure.

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py (212156 => 212157)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py	2017-02-10 23:41:35 UTC (rev 212156)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py	2017-02-10 23:47:02 UTC (rev 212157)
@@ -128,10 +128,13 @@
         lines.append('')
 
         for member in declaration.type_members:
-            var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
+            member_name = member.member_name
+            conversion_expression = self.payload_to_objc_expression_for_member(declaration, member)
+
             if not member.is_optional:
-                lines.append('    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"%s"], @"%s");' % (var_name, var_name))
-            conversion_expression = self.payload_to_objc_expression_for_member(declaration, member)
+                lines.append('    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"%s"], @"%s");' % (member_name, member_name))
+
+            var_name = ObjCGenerator.identifier_to_objc_identifier(member_name)
             lines.append('    self.%s = %s;' % (var_name, conversion_expression))
             lines.append('')
 

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


--- trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result	2017-02-10 23:41:35 UTC (rev 212156)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result	2017-02-10 23:47:02 UTC (rev 212157)
@@ -1463,7 +1463,7 @@
     THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"animals"], @"animals");
     self.animals = fromProtocolString<TestProtocolTestCastedAnimals>(payload[@"animals"]);
 
-    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"identifier"], @"identifier");
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"id"], @"id");
     self.identifier = [payload[@"id"] integerValue];
 
     THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"tree"], @"tree");
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to