Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(179)

Side by Side Diff: sdk/lib/html/scripts/generator.py

Issue 11359142: Fixing an issue where optional parameters were having their types dropped. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Incorporating review feedback. Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sdk/lib/html/dart2js/html_dart2js.dart ('k') | sdk/lib/html/scripts/systemhtml.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
3 # for details. All rights reserved. Use of this source code is governed by a 3 # for details. All rights reserved. Use of this source code is governed by a
4 # BSD-style license that can be found in the LICENSE file. 4 # BSD-style license that can be found in the LICENSE file.
5 5
6 """This module provides shared functionality for systems to generate 6 """This module provides shared functionality for systems to generate
7 Dart APIs from the IDL database.""" 7 Dart APIs from the IDL database."""
8 8
9 import copy 9 import copy
10 import re 10 import re
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 ' }\n', 394 ' }\n',
395 OPT_PARAM_NAME=self.param_infos[index].name, 395 OPT_PARAM_NAME=self.param_infos[index].name,
396 FACTORY=factory_provider, 396 FACTORY=factory_provider,
397 CTOR_FACTORY_NAME=factory_name, 397 CTOR_FACTORY_NAME=factory_name,
398 FACTORY_PARAMS=self.ParametersAsArgumentList(index)) 398 FACTORY_PARAMS=self.ParametersAsArgumentList(index))
399 399
400 for index, param_info in enumerate(self.param_infos): 400 for index, param_info in enumerate(self.param_infos):
401 if param_info.is_optional: 401 if param_info.is_optional:
402 EmitOptionalParameterInvocation(index) 402 EmitOptionalParameterInvocation(index)
403 403
404
405 def CopyAndWidenDefaultParameters(self):
406 """Returns equivalent OperationInfo, but default parameters are dynamic."""
407 info = copy.copy(self)
408 info.param_infos = [param.Copy() for param in self.param_infos]
409 for param in info.param_infos:
410 if param.is_optional:
411 param.type_id = None
412 return info
413
414
415 def ConstantOutputOrder(a, b): 404 def ConstantOutputOrder(a, b):
416 """Canonical output ordering for constants.""" 405 """Canonical output ordering for constants."""
417 if a.id < b.id: return -1 406 if a.id < b.id: return -1
418 if a.id > b.id: return 1 407 if a.id > b.id: return 1
419 return 0 408 return 0
420 409
421 410
422 def _FormatNameList(names): 411 def _FormatNameList(names):
423 """Returns JavaScript array literal expression with one name per line.""" 412 """Returns JavaScript array literal expression with one name per line."""
424 #names = sorted(names) 413 #names = sorted(names)
(...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 else: 1084 else:
1096 dart_interface_name = type_name 1085 dart_interface_name = type_name
1097 return InterfaceIDLTypeInfo(type_name, type_data, dart_interface_name, 1086 return InterfaceIDLTypeInfo(type_name, type_data, dart_interface_name,
1098 self) 1087 self)
1099 1088
1100 if type_data.clazz == 'SVGTearOff': 1089 if type_data.clazz == 'SVGTearOff':
1101 return SVGTearOffIDLTypeInfo(type_name, type_data, self) 1090 return SVGTearOffIDLTypeInfo(type_name, type_data, self)
1102 1091
1103 class_name = '%sIDLTypeInfo' % type_data.clazz 1092 class_name = '%sIDLTypeInfo' % type_data.clazz
1104 return globals()[class_name](type_name, type_data) 1093 return globals()[class_name](type_name, type_data)
OLDNEW
« no previous file with comments | « sdk/lib/html/dart2js/html_dart2js.dart ('k') | sdk/lib/html/scripts/systemhtml.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698