| Index: client/dom/scripts/dartgenerator.py
|
| diff --git a/client/dom/scripts/dartgenerator.py b/client/dom/scripts/dartgenerator.py
|
| index 7bd6f92aa814579737afe2a1f44aeb4598564cff..ae597173232e4c74fc3e345fde2afef2caad215b 100755
|
| --- a/client/dom/scripts/dartgenerator.py
|
| +++ b/client/dom/scripts/dartgenerator.py
|
| @@ -1028,17 +1028,6 @@ class WrappingImplementationSystem(System):
|
| templates, database, emitters, output_dir)
|
| self._dart_wrapping_file_paths = []
|
|
|
| - js_file_name = os.path.join(output_dir, 'wrapping_dom.js')
|
| - code = self._emitters.FileEmitter(js_file_name)
|
| - template = self._templates.Load('wrapping_dom.js')
|
| - (self._wrapping_js_natives,
|
| - self._wrapping_map) = code.Emit(template)
|
| -
|
| - _logger.info('Started Generating %s' % js_file_name)
|
| -
|
| - # Set of (interface, name, kind), kind is 'attribute' or 'operation'.
|
| - self._wrapping_externs = set()
|
| -
|
|
|
| def InterfaceGenerator(self,
|
| interface,
|
| @@ -1054,9 +1043,7 @@ class WrappingImplementationSystem(System):
|
| dart_code = self._emitters.FileEmitter(dart_wrapping_file_path)
|
| dart_code.Emit(self._templates.Load('wrapping_impl.darttemplate'))
|
| return WrappingInterfaceGenerator(interface, super_interface_name,
|
| - dart_code, self._wrapping_js_natives,
|
| - self._wrapping_map,
|
| - self._wrapping_externs,
|
| + dart_code,
|
| self._BaseDefines(interface))
|
|
|
| def ProcessCallback(self, interface, info):
|
| @@ -1075,7 +1062,7 @@ class WrappingImplementationSystem(System):
|
|
|
|
|
| def Finish(self):
|
| - self._GenerateJavaScriptExternsWrapping(self._database, self._output_dir)
|
| + pass
|
|
|
|
|
| def _FilePathForDartWrappingImpl(self, interface_name):
|
| @@ -1083,46 +1070,6 @@ class WrappingImplementationSystem(System):
|
| return os.path.join(self._output_dir, 'src', 'wrapping',
|
| '_%sWrappingImplementation.dart' % interface_name)
|
|
|
| - def _GenerateJavaScriptExternsWrapping(self, database, output_dir):
|
| - """Generates a JavaScript externs file.
|
| -
|
| - Generates an externs file that is consistent with generated JavaScript code
|
| - and Dart APIs for the wrapping implementation.
|
| - """
|
| - externs_file_name = os.path.join(output_dir, 'wrapping_dom_externs.js')
|
| - code = self._emitters.FileEmitter(externs_file_name)
|
| - _logger.info('Started generating %s' % externs_file_name)
|
| -
|
| - template = self._templates.Load('wrapping_dom_externs.js')
|
| - namespace = 'dom_externs'
|
| - members = code.Emit(template, NAMESPACE=namespace)
|
| -
|
| - # TODO: Filter out externs that are known to the JavaScript back-end. Some
|
| - # of the known externs have useful declarations like @nosideeffects that
|
| - # might improve back-end analysis.
|
| -
|
| - names = dict() # maps name to (interface, kind)
|
| - for (interface, name, kind) in self._wrapping_externs:
|
| - if name not in _javascript_keywords:
|
| - if name not in names:
|
| - names[name] = set()
|
| - names[name].add((interface, kind))
|
| -
|
| - for name in sorted(names.keys()):
|
| - # Simply export the property name.
|
| - extern = emitter.Format('$NAMESPACE.$NAME;',
|
| - NAMESPACE=namespace, NAME=name)
|
| - members.EmitRaw(extern)
|
| - # Add a big comment of all the attributes and operations contributing to
|
| - # the export.
|
| - filler = ' ' * (40 - 2 - len(extern)) # '2' for 2 spaces before comment.
|
| - separator = filler + ' //'
|
| - for (interface, kind) in sorted(names[name]):
|
| - members.Emit('$SEP $KIND $INTERFACE.$NAME',
|
| - NAME=name, INTERFACE=interface, KIND=kind, SEP=separator)
|
| - separator = ','
|
| - members.Emit('\n')
|
| -
|
| # ------------------------------------------------------------------------------
|
|
|
| class FrogSystem(System):
|
| @@ -1362,8 +1309,7 @@ class DummyInterfaceGenerator(object):
|
| class WrappingInterfaceGenerator(object):
|
| """Generates Dart and JS implementation for one DOM IDL interface."""
|
|
|
| - def __init__(self, interface, super_interface, dart_code, js_code, type_map,
|
| - externs, base_members):
|
| + def __init__(self, interface, super_interface, dart_code, base_members):
|
| """Generates Dart and JS code for the given interface.
|
|
|
| Args:
|
| @@ -1375,19 +1321,12 @@ class WrappingInterfaceGenerator(object):
|
| this interface implements, if any.
|
| dart_code: an Emitter for the file containing the Dart implementation
|
| class.
|
| - js_code: an Emitter for the file containing JS code.
|
| - type_map: an Emitter for the map from tokens to wrapper factory.
|
| - externs: a set of (class, property, kind) externs. kind is 'attribute' or
|
| - 'operation'.
|
| base_members: a set of names of members defined in a base class. This is
|
| used to avoid static member 'overriding' in the generated Dart code.
|
| """
|
| self._interface = interface
|
| self._super_interface = super_interface
|
| self._dart_code = dart_code
|
| - self._js_code = js_code
|
| - self._type_map = type_map
|
| - self._externs = externs
|
| self._base_members = base_members
|
| self._current_secondary_parent = None
|
|
|
| @@ -1397,8 +1336,6 @@ class WrappingInterfaceGenerator(object):
|
| interface_name = interface.id
|
|
|
| self._class_name = self._ImplClassName(interface_name)
|
| - self._type_map.Emit(' "$INTERFACE": native_$(CLASS)_create_$(CLASS),\n',
|
| - INTERFACE=interface_name, CLASS=self._class_name)
|
|
|
| base = self._BaseClassName(interface)
|
|
|
| @@ -1477,18 +1414,6 @@ class WrappingInterfaceGenerator(object):
|
| ' $TYPE get $NAME() { return $METHOD(this); }\n'
|
| ' static $TYPE $METHOD(var _this) native;\n',
|
| NAME=attr.id, TYPE=attr.type.id, METHOD=method_name)
|
| - if (self._interface.id, attr.id) not in _custom_getters:
|
| - self._js_code.Emit(
|
| - '\n'
|
| - 'function native_$(CLASS)_$(METHOD)(_this) {\n'
|
| - ' try {\n'
|
| - ' return __dom_wrap(_this.$dom.$NAME);\n'
|
| - ' } catch (e) {\n'
|
| - ' throw __dom_wrap_exception(e);\n'
|
| - ' }\n'
|
| - '}\n',
|
| - CLASS=self._class_name, NAME=attr.id, METHOD=method_name)
|
| - self._externs.add((self._interface.id, attr.id, 'attribute'))
|
|
|
| def _AddSetter(self, attr):
|
| # FIXME: See comment on getter.
|
| @@ -1498,17 +1423,6 @@ class WrappingInterfaceGenerator(object):
|
| ' void set $NAME($TYPE value) { $METHOD(this, value); }\n'
|
| ' static void $METHOD(var _this, $TYPE value) native;\n',
|
| NAME=attr.id, TYPE=attr.type.id, METHOD=method_name)
|
| - self._js_code.Emit(
|
| - '\n'
|
| - 'function native_$(CLASS)_$(METHOD)(_this, value) {\n'
|
| - ' try {\n'
|
| - ' _this.$dom.$NAME = __dom_unwrap(value);\n'
|
| - ' } catch (e) {\n'
|
| - ' throw __dom_wrap_exception(e);\n'
|
| - ' }\n'
|
| - '}\n',
|
| - CLASS=self._class_name, NAME=attr.id, METHOD=method_name)
|
| - self._externs.add((self._interface.id, attr.id, 'attribute'))
|
|
|
| def AddSecondaryAttribute(self, interface, getter, setter):
|
| self._SecondaryContext(interface)
|
| @@ -1662,16 +1576,6 @@ class WrappingInterfaceGenerator(object):
|
| ' $TYPE operator[](int index) { return $METHOD(this, index); }\n'
|
| ' static $TYPE $METHOD(var _this, int index) native;\n',
|
| TYPE=element_type, METHOD=method_name)
|
| - self._js_code.Emit(
|
| - '\n'
|
| - 'function native_$(CLASS)_$(METHOD)(_this, index) {\n'
|
| - ' try {\n'
|
| - ' return __dom_wrap(_this.$dom[index]);\n'
|
| - ' } catch (e) {\n'
|
| - ' throw __dom_wrap_exception(e);\n'
|
| - ' }\n'
|
| - '}\n',
|
| - CLASS=self._class_name, METHOD=method_name)
|
|
|
| def _HasNativeIndexSetter(self, interface):
|
| return 'HasCustomIndexSetter' in interface.ext_attrs
|
| @@ -1685,16 +1589,6 @@ class WrappingInterfaceGenerator(object):
|
| ' }\n'
|
| ' static $METHOD(_this, index, value) native;\n',
|
| TYPE=element_type, METHOD=method_name)
|
| - self._js_code.Emit(
|
| - '\n'
|
| - 'function native_$(CLASS)_$(METHOD)(_this, index, value) {\n'
|
| - ' try {\n'
|
| - ' return _this.$dom[index] = __dom_unwrap(value);\n'
|
| - ' } catch (e) {\n'
|
| - ' throw __dom_wrap_exception(e);\n'
|
| - ' }\n'
|
| - '}\n',
|
| - CLASS=self._class_name, METHOD=method_name)
|
|
|
| def AddOperation(self, info):
|
| """
|
| @@ -1718,7 +1612,6 @@ class WrappingInterfaceGenerator(object):
|
| fallthrough = self.GenerateDispatch(body, info, ' ', 0, overloads)
|
| if fallthrough:
|
| body.Emit(' throw "Incorrect number or type of arguments";\n');
|
| - self._externs.add((self._interface.id, info.js_name, 'operation'))
|
|
|
| def GenerateSingleOperation(self, emitter, info, indent, operation):
|
| """Generates a call to a single operation.
|
| @@ -1767,48 +1660,6 @@ class WrappingInterfaceGenerator(object):
|
| TYPE=info.type_name,
|
| PARAMS=', '.join(['receiver'] + arg_names) )
|
|
|
| - if (self._interface.id, info.name) not in _custom_methods:
|
| - alternates = _alternate_methods.get( (self._interface.id, info.name) )
|
| - if alternates:
|
| - (js_name_1, js_name_2) = alternates
|
| - self._js_code.Emit(
|
| - '\n'
|
| - 'function native_$(CLASS)_$(NATIVENAME)($PARAMS) {\n'
|
| - ' try {\n'
|
| - ' var _method = _this.$dom.$JSNAME1 || _this.$dom.$JSNAME2;\n'
|
| - ' return __dom_wrap(_method.call($ARGS));\n'
|
| - ' } catch (e) {\n'
|
| - ' throw __dom_wrap_exception(e);\n'
|
| - ' }\n'
|
| - '}\n',
|
| - CLASS=self._class_name,
|
| - NAME=info.name,
|
| - JSNAME1=js_name_1,
|
| - JSNAME2=js_name_2,
|
| - NATIVENAME=native_name,
|
| - PARAMS=', '.join(['_this'] + arg_names),
|
| - ARGS=', '.join(['_this.$dom'] + unwrap_args))
|
| - else:
|
| - if info.js_name in _javascript_keywords:
|
| - access = "['%s']" % info.js_name
|
| - else:
|
| - access = ".%s" % info.js_name
|
| - self._js_code.Emit(
|
| - '\n'
|
| - 'function native_$(CLASS)_$(NATIVENAME)($PARAMS) {\n'
|
| - ' try {\n'
|
| - ' return __dom_wrap(_this.$dom$ACCESS($ARGS));\n'
|
| - ' } catch (e) {\n'
|
| - ' throw __dom_wrap_exception(e);\n'
|
| - ' }\n'
|
| - '}\n',
|
| - CLASS=self._class_name,
|
| - NAME=info.name,
|
| - ACCESS=access,
|
| - NATIVENAME=native_name,
|
| - PARAMS=', '.join(['_this'] + arg_names),
|
| - ARGS=', '.join(unwrap_args))
|
| -
|
|
|
| def GenerateDispatch(self, emitter, info, indent, position, overloads):
|
| """Generates a dispatch to one of the overloads.
|
|
|