| Index: lib/html/scripts/generator.py
|
| diff --git a/lib/html/scripts/generator.py b/lib/html/scripts/generator.py
|
| index 99f2190270186e02cc09daeacd17bd5e806cce4e..0603e01ddae2f97b487e5cc42aa94df1fc042525 100644
|
| --- a/lib/html/scripts/generator.py
|
| +++ b/lib/html/scripts/generator.py
|
| @@ -522,81 +522,81 @@ class Conversion(object):
|
| self.input_type = input_type
|
| self.output_type = output_type
|
|
|
| -# TYPE -> "DIRECTION INTERFACE.MEMBER" -> conversion
|
| -# TYPE -> "DIRECTION INTERFACE.*" -> conversion
|
| -# TYPE -> "DIRECTION" -> conversion
|
| +# "TYPE DIRECTION INTERFACE.MEMBER" -> conversion
|
| +# Specific member of interface
|
| +# "TYPE DIRECTION INTERFACE.*" -> conversion
|
| +# All members of interface getting (setting) with type.
|
| +# "TYPE DIRECTION" -> conversion
|
| +# All getters (setters) of type.
|
| #
|
| # where DIRECTION is 'get' for getters and operation return values, 'set' for
|
| # setters and operation arguments. INTERFACE and MEMBER are the idl names.
|
| #
|
| +
|
| +_serialize_SSV = Conversion('_convertDartToNative_SerializedScriptValue',
|
| + 'Dynamic', 'Dynamic')
|
| +
|
| dart2js_conversions = {
|
| - 'IDBKey': {
|
| - 'get':
|
| - Conversion('_convertNativeToDart_IDBKey', 'Dynamic', 'Dynamic'),
|
| - 'set':
|
| - Conversion('_convertDartToNative_IDBKey', 'Dynamic', 'Dynamic'),
|
| - },
|
| - 'ImageData': {
|
| - 'get':
|
| - Conversion('_convertNativeToDart_ImageData', 'Dynamic', 'ImageData'),
|
| - 'set':
|
| - Conversion('_convertDartToNative_ImageData', 'ImageData', 'Dynamic')
|
| - },
|
| - 'Dictionary': {
|
| - 'get':
|
| - Conversion('_convertNativeToDart_Dictionary', 'Dynamic', 'Map'),
|
| - 'set':
|
| - Conversion('_convertDartToNative_Dictionary', 'Map', 'Dynamic'),
|
| - },
|
| -
|
| - 'DOMString[]': {
|
| - 'set':
|
| - Conversion(
|
| - '_convertDartToNative_StringArray', 'List<String>', 'List'),
|
| - },
|
| -
|
| - 'any': {
|
| - 'set IDBObjectStore.add':
|
| - Conversion('_convertDartToNative_SerializedScriptValue',
|
| - 'Dynamic', 'Dynamic'),
|
| - 'set IDBObjectStore.put':
|
| - Conversion('_convertDartToNative_SerializedScriptValue',
|
| - 'Dynamic', 'Dynamic'),
|
| - 'set IDBCursor.update':
|
| - Conversion('_convertDartToNative_SerializedScriptValue',
|
| - 'Dynamic', 'Dynamic'),
|
| - },
|
| + 'IDBKey get':
|
| + Conversion('_convertNativeToDart_IDBKey', 'Dynamic', 'Dynamic'),
|
| + 'IDBKey set':
|
| + Conversion('_convertDartToNative_IDBKey', 'Dynamic', 'Dynamic'),
|
| +
|
| + 'ImageData get':
|
| + Conversion('_convertNativeToDart_ImageData', 'Dynamic', 'ImageData'),
|
| + 'ImageData set':
|
| + Conversion('_convertDartToNative_ImageData', 'ImageData', 'Dynamic'),
|
| +
|
| + 'Dictionary get':
|
| + Conversion('_convertNativeToDart_Dictionary', 'Dynamic', 'Map'),
|
| + 'Dictionary set':
|
| + Conversion('_convertDartToNative_Dictionary', 'Map', 'Dynamic'),
|
| +
|
| + 'DOMString[] set':
|
| + Conversion('_convertDartToNative_StringArray', 'List<String>', 'List'),
|
| +
|
| + 'any set IDBObjectStore.add': _serialize_SSV,
|
| + 'any set IDBObjectStore.put': _serialize_SSV,
|
| + 'any set IDBCursor.update': _serialize_SSV,
|
| +
|
| + # postMessage
|
| + 'any set DedicatedWorkerContext.postMessage': _serialize_SSV,
|
| + 'any set MessagePort.postMessage': _serialize_SSV,
|
| + 'SerializedScriptValue set DOMWindow.postMessage': _serialize_SSV,
|
| + 'SerializedScriptValue set Worker.postMessage': _serialize_SSV,
|
| +
|
| + # receiving message via MessageEvent
|
| + 'DOMObject get MessageEvent.data':
|
| + Conversion('_convertNativeToDart_SerializedScriptValue',
|
| + 'Dynamic', 'Dynamic'),
|
|
|
|
|
| # IDBAny is problematic. Some uses are just a union of other IDB types,
|
| # which need no conversion.. Others include data values which require
|
| # serialized script value processing.
|
| - 'IDBAny': {
|
| - 'get IDBCursorWithValue.value':
|
| - Conversion('_convertNativeToDart_IDBAny', 'Dynamic', 'Dynamic'),
|
| -
|
| - # This is problematic. The result property of IDBRequest is used for
|
| - # all requests. Read requests like IDBDataStore.getObject need
|
| - # conversion, but other requests like opening a database return
|
| - # something that does not need conversion.
|
| - 'get IDBRequest.result':
|
| - Conversion('_convertNativeToDart_IDBAny', 'Dynamic', 'Dynamic'),
|
| -
|
| - # "source: On getting, returns the IDBObjectStore or IDBIndex that the
|
| - # cursor is iterating. ...". So we should not try to convert it.
|
| - 'get IDBCursor.source': None,
|
| -
|
| - # Should be either a DOMString, an Array of DOMStrings or null.
|
| - 'get IDBObjectStore.keyPath': None
|
| - },
|
| + 'IDBAny get IDBCursorWithValue.value':
|
| + Conversion('_convertNativeToDart_IDBAny', 'Dynamic', 'Dynamic'),
|
| +
|
| + # This is problematic. The result property of IDBRequest is used for
|
| + # all requests. Read requests like IDBDataStore.getObject need
|
| + # conversion, but other requests like opening a database return
|
| + # something that does not need conversion.
|
| + 'IDBAny get IDBRequest.result':
|
| + Conversion('_convertNativeToDart_IDBAny', 'Dynamic', 'Dynamic'),
|
| +
|
| + # "source: On getting, returns the IDBObjectStore or IDBIndex that the
|
| + # cursor is iterating. ...". So we should not try to convert it.
|
| + 'IDBAny get IDBCursor.source': None,
|
| +
|
| + # Should be either a DOMString, an Array of DOMStrings or null.
|
| + 'IDBAny get IDBObjectStore.keyPath': None,
|
| }
|
|
|
| def FindConversion(idl_type, direction, interface, member):
|
| - table = dart2js_conversions.get(idl_type)
|
| - if table:
|
| - return (table.get('%s %s.%s' % (direction, interface, member)) or
|
| - table.get('%s %s.*' % (direction, interface)) or
|
| - table.get(direction))
|
| + table = dart2js_conversions
|
| + return (table.get('%s %s %s.%s' % (idl_type, direction, interface, member)) or
|
| + table.get('%s %s %s.*' % (idl_type, direction, interface)) or
|
| + table.get('%s %s' % (idl_type, direction)))
|
| return None
|
|
|
| # ------------------------------------------------------------------------------
|
|
|