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

Side by Side Diff: tools/dom/scripts/systemnative.py

Issue 16234006: Chrome roll 202464->204370. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 6 months 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 | « tools/dom/scripts/idlnode.py ('k') | no next file » | 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 the systems to generate 6 """This module provides shared functionality for the systems to generate
7 native binding from the IDL database.""" 7 native binding from the IDL database."""
8 8
9 import emitter 9 import emitter
10 import os 10 import os
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 stmts_emitter, call_emitter, version, operation, argument_count): 569 stmts_emitter, call_emitter, version, operation, argument_count):
570 overload_name = '_%s_%s' % (operation.id, version) 570 overload_name = '_%s_%s' % (operation.id, version)
571 argument_list = ', '.join( 571 argument_list = ', '.join(
572 [p.name for p in info.param_infos[:argument_count]]) 572 [p.name for p in info.param_infos[:argument_count]])
573 call_emitter.Emit('$NAME($ARGS)', NAME=overload_name, ARGS=argument_list) 573 call_emitter.Emit('$NAME($ARGS)', NAME=overload_name, ARGS=argument_list)
574 574
575 dart_declaration = '%s%s %s(%s)' % ( 575 dart_declaration = '%s%s %s(%s)' % (
576 'static ' if operation.is_static else '', 576 'static ' if operation.is_static else '',
577 self.SecureOutputType(operation.type.id), 577 self.SecureOutputType(operation.type.id),
578 overload_name, argument_list) 578 overload_name, argument_list)
579 is_custom = 'Custom' in operation.ext_attrs
579 cpp_callback_name = self._GenerateNativeBinding( 580 cpp_callback_name = self._GenerateNativeBinding(
580 overload_name, (0 if operation.is_static else 1) + argument_count, 581 overload_name, (0 if operation.is_static else 1) + argument_count,
581 dart_declaration, 'Callback', False, False) 582 dart_declaration, 'Callback', is_custom, emit_metadata=False)
582 self._GenerateOperationNativeCallback(operation, operation.arguments[:argu ment_count], cpp_callback_name) 583 if not is_custom:
584 self._GenerateOperationNativeCallback(operation, operation.arguments[:ar gument_count], cpp_callback_name)
583 585
584 self._GenerateDispatcherBody( 586 self._GenerateDispatcherBody(
585 info, 587 info,
586 operations, 588 operations,
587 dart_declaration, 589 dart_declaration,
588 GenerateCall, 590 GenerateCall,
589 self._IsArgumentOptionalInWebCore) 591 self._IsArgumentOptionalInWebCore)
590 592
591 def SecondaryContext(self, interface): 593 def SecondaryContext(self, interface):
592 pass 594 pass
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 ' goto fail;\n' 782 ' goto fail;\n'
781 ' RefPtr<ScriptCallStack> scriptCallStack(DartUtilities::create ScriptCallStack());\n' 783 ' RefPtr<ScriptCallStack> scriptCallStack(DartUtilities::create ScriptCallStack());\n'
782 ' if (!scriptCallStack->size())\n' 784 ' if (!scriptCallStack->size())\n'
783 ' return;\n', 785 ' return;\n',
784 INDEX=len(arguments) + 1) 786 INDEX=len(arguments) + 1)
785 787
786 # Emit arguments. 788 # Emit arguments.
787 start_index = 1 if needs_receiver else 0 789 start_index = 1 if needs_receiver else 0
788 for i, argument in enumerate(arguments): 790 for i, argument in enumerate(arguments):
789 type_info = self._TypeInfo(argument.type.id) 791 type_info = self._TypeInfo(argument.type.id)
792 self._cpp_impl_includes |= set(type_info.conversion_includes())
790 argument_expression_template, type, cls, function = \ 793 argument_expression_template, type, cls, function = \
791 type_info.to_native_info(argument, self._interface.id) 794 type_info.to_native_info(argument, self._interface.id)
792 795
793 def AllowsNull(): 796 def AllowsNull():
794 assert argument.ext_attrs.get('TreatNullAs', 'NullString') == 'NullStrin g' 797 assert argument.ext_attrs.get('TreatNullAs', 'NullString') == 'NullStrin g'
795 if argument.ext_attrs.get('TreatNullAs') == 'NullString': 798 if argument.ext_attrs.get('TreatNullAs') == 'NullString':
796 return True 799 return True
797 800
798 if argument.type.nullable: 801 if argument.type.nullable:
799 return True 802 return True
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
1025 ' if (Dart_NativeFunction func = $CLASS_NAME::resolver(name, argu mentCount))\n' 1028 ' if (Dart_NativeFunction func = $CLASS_NAME::resolver(name, argu mentCount))\n'
1026 ' return func;\n', 1029 ' return func;\n',
1027 CLASS_NAME=os.path.splitext(os.path.basename(path))[0]) 1030 CLASS_NAME=os.path.splitext(os.path.basename(path))[0])
1028 1031
1029 def _IsOptionalStringArgumentInInitEventMethod(interface, operation, argument): 1032 def _IsOptionalStringArgumentInInitEventMethod(interface, operation, argument):
1030 return ( 1033 return (
1031 interface.id.endswith('Event') and 1034 interface.id.endswith('Event') and
1032 operation.id.startswith('init') and 1035 operation.id.startswith('init') and
1033 argument.ext_attrs.get('Default') == 'Undefined' and 1036 argument.ext_attrs.get('Default') == 'Undefined' and
1034 argument.type.id == 'DOMString') 1037 argument.type.id == 'DOMString')
OLDNEW
« no previous file with comments | « tools/dom/scripts/idlnode.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698