| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 2 # Copyright (c) 2011, 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 import copy | 6 import copy |
| 7 import database | 7 import database |
| 8 import idlparser | 8 import idlparser |
| 9 import logging | 9 import logging |
| 10 import os | 10 import os |
| 11 import os.path | 11 import os.path |
| 12 import re |
| 12 | 13 |
| 13 from idlnode import * | 14 from idlnode import * |
| 14 | 15 |
| 15 _logger = logging.getLogger('databasebuilder') | 16 _logger = logging.getLogger('databasebuilder') |
| 16 | 17 |
| 17 # Used in source annotations to specify the parent interface declaring | 18 # Used in source annotations to specify the parent interface declaring |
| 18 # a displaced declaration. The 'via' attribute specifies the parent interface | 19 # a displaced declaration. The 'via' attribute specifies the parent interface |
| 19 # which implements a displaced declaration. | 20 # which implements a displaced declaration. |
| 20 _VIA_ANNOTATION_ATTR_NAME = 'via' | 21 _VIA_ANNOTATION_ATTR_NAME = 'via' |
| 21 | 22 |
| (...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 563 map(normalize, interface.operations) | 564 map(normalize, interface.operations) |
| 564 | 565 |
| 565 def fetch_constructor_data(self, options): | 566 def fetch_constructor_data(self, options): |
| 566 window_interface = self._database.GetInterface('Window') | 567 window_interface = self._database.GetInterface('Window') |
| 567 for attr in window_interface.attributes: | 568 for attr in window_interface.attributes: |
| 568 if not attr.is_fc_getter: | 569 if not attr.is_fc_getter: |
| 569 continue | 570 continue |
| 570 type = attr.type.id | 571 type = attr.type.id |
| 571 if not type.endswith('Constructor'): | 572 if not type.endswith('Constructor'): |
| 572 continue | 573 continue |
| 573 type = type[:-len('Constructor')] | 574 type = re.sub('(Constructor)+$', '', type) |
| 574 # TODO: typos in WebKit IDL: HTMLImageElementConstructorConstructor... | |
| 575 if type in [ | |
| 576 'HTMLAudioElementConstructor', | |
| 577 'HTMLImageElementConstructor', | |
| 578 'HTMLOptionElementConstructor' ]: | |
| 579 type = type[:-len('Constructor')] | |
| 580 | |
| 581 # TODO(antonm): Ideally we'd like to have pristine copy of WebKit IDLs and
fetch | 575 # TODO(antonm): Ideally we'd like to have pristine copy of WebKit IDLs and
fetch |
| 582 # this information directly from it. Unfortunately right now database is
massaged | 576 # this information directly from it. Unfortunately right now database is
massaged |
| 583 # a lot so it's difficult to maintain necessary information on DOMWindow i
tself. | 577 # a lot so it's difficult to maintain necessary information on DOMWindow i
tself. |
| 584 interface = self._database.GetInterface(options.type_rename_map.get(type,
type)) | 578 interface = self._database.GetInterface(options.type_rename_map.get(type,
type)) |
| 585 if 'V8EnabledPerContext' in attr.ext_attrs: | 579 if 'V8EnabledPerContext' in attr.ext_attrs: |
| 586 interface.ext_attrs['synthesizedV8EnabledPerContext'] = \ | 580 interface.ext_attrs['synthesizedV8EnabledPerContext'] = \ |
| 587 attr.ext_attrs['V8EnabledPerContext'] | 581 attr.ext_attrs['V8EnabledPerContext'] |
| 588 if 'V8EnabledAtRuntime' in attr.ext_attrs: | 582 if 'V8EnabledAtRuntime' in attr.ext_attrs: |
| 589 interface.ext_attrs['synthesizedV8EnabledAtRuntime'] = \ | 583 interface.ext_attrs['synthesizedV8EnabledAtRuntime'] = \ |
| 590 attr.ext_attrs['V8EnabledAtRuntime'] or attr.id | 584 attr.ext_attrs['V8EnabledAtRuntime'] or attr.id |
| OLD | NEW |