Changeset 178599 in webkit
- Timestamp:
- Jan 16, 2015 1:40:23 PM (9 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 8 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r178591 r178599 1 2015-01-16 Brian J. Burg <burg@cs.washington.edu> 2 3 Web Inspector: code generator should fail on duplicate parameter and member names 4 https://bugs.webkit.org/show_bug.cgi?id=140555 5 6 Reviewed by Timothy Hatcher. 7 8 * inspector/scripts/codegen/models.py: 9 (find_duplicates): Add a helper function to find duplicates in a list. 10 (Protocol.parse_type_declaration): 11 (Protocol.parse_command): 12 (Protocol.parse_event): 13 * inspector/scripts/tests/expected/fail-on-duplicate-command-call-parameter-names.json-error: Added. 14 * inspector/scripts/tests/expected/fail-on-duplicate-command-return-parameter-names.json-error: Added. 15 * inspector/scripts/tests/expected/fail-on-duplicate-event-parameter-names.json-error: Added. 16 * inspector/scripts/tests/expected/fail-on-duplicate-type-member-names.json-error: Added. 17 * inspector/scripts/tests/fail-on-duplicate-command-call-parameter-names.json: Added. 18 * inspector/scripts/tests/fail-on-duplicate-command-return-parameter-names.json: Added. 19 * inspector/scripts/tests/fail-on-duplicate-event-parameter-names.json: Added. 20 * inspector/scripts/tests/fail-on-duplicate-type-member-names.json: Added. 21 1 22 2015-01-16 Michael Saboff <msaboff@apple.com> 2 23 -
trunk/Source/JavaScriptCore/inspector/scripts/codegen/models.py
r175385 r178599 26 26 27 27 import logging 28 import collections 28 29 29 30 log = logging.getLogger('global') … … 32 33 def ucfirst(str): 33 34 return str[:1].upper() + str[1:] 35 36 37 def find_duplicates(l): 38 return [key for key, count in collections.Counter(l).items() if count > 1] 34 39 35 40 … … 327 332 type_members.extend([self.parse_type_member(member) for member in json['properties']]) 328 333 334 duplicate_names = find_duplicates([member.member_name for member in type_members]) 335 if len(duplicate_names) > 0: 336 raise ParseException("Malformed domain specification: type declaration for %s has duplicate member names" % json['id']) 337 329 338 type_ref = TypeReference(json['type'], json.get('$ref'), json.get('enum'), json.get('items')) 330 339 return TypeDeclaration(json['id'], type_ref, json.get("description", ""), type_members) … … 349 358 call_parameters.extend([self.parse_call_or_return_parameter(parameter) for parameter in json['parameters']]) 350 359 360 duplicate_names = find_duplicates([param.parameter_name for param in call_parameters]) 361 if len(duplicate_names) > 0: 362 raise ParseException("Malformed domain specification: call parameter list for command %s has duplicate parameter names" % json['name']) 363 351 364 if 'returns' in json: 352 365 if not isinstance(json['returns'], list): … … 354 367 return_parameters.extend([self.parse_call_or_return_parameter(parameter) for parameter in json['returns']]) 355 368 369 duplicate_names = find_duplicates([param.parameter_name for param in return_parameters]) 370 if len(duplicate_names) > 0: 371 raise ParseException("Malformed domain specification: return parameter list for command %s has duplicate parameter names" % json['name']) 372 356 373 return Command(json['name'], call_parameters, return_parameters, json.get('description', ""), json.get('async', False)) 357 374 … … 366 383 raise ParseException("Malformed event specification: parameters is not an array") 367 384 event_parameters.extend([self.parse_call_or_return_parameter(parameter) for parameter in json['parameters']]) 385 386 duplicate_names = find_duplicates([param.parameter_name for param in event_parameters]) 387 if len(duplicate_names) > 0: 388 raise ParseException("Malformed domain specification: parameter list for event %s has duplicate parameter names" % json['name']) 368 389 369 390 return Event(json['name'], event_parameters, json.get('description', ""))
Note: See TracChangeset
for help on using the changeset viewer.