| OLD | NEW |
| 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 json | 10 import json |
| (...skipping 528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 539 # | 539 # |
| 540 # - known IDL type | 540 # - known IDL type |
| 541 # - type_id is None then it's probably a union type or overloaded | 541 # - type_id is None then it's probably a union type or overloaded |
| 542 # it's a dynamic/any type | 542 # it's a dynamic/any type |
| 543 # - type is Object | 543 # - type is Object |
| 544 # | 544 # |
| 545 # JsObject maybe stored in the Dart class. | 545 # JsObject maybe stored in the Dart class. |
| 546 if (wrap_unwrap_type_blink(type_id, type_registry)): | 546 if (wrap_unwrap_type_blink(type_id, type_registry)): |
| 547 type_is_callback = self.isCallback(type_registry, type_id) | 547 type_is_callback = self.isCallback(type_registry, type_id) |
| 548 if (dart_js_interop and type_id == 'EventListener' and | 548 if (dart_js_interop and type_id == 'EventListener' and |
| 549 (self.name == 'addEventListener')): | 549 self.name in ['addEventListener', 'removeEventListener']): |
| 550 # Events fired need use a JsFunction not a anonymous closure to | 550 # Events fired need use a JsFunction not a anonymous closure to |
| 551 # insure the event can really be removed. | 551 # insure the event can really be removed. |
| 552 parameters.append('wrap_event_listener(this, %s)' % p.name) | 552 parameters.append('unwrap_jso(js.allowInterop(%s))' % p.name) |
| 553 elif (dart_js_interop and type_id == 'EventListener' and | |
| 554 (self.name == 'removeEventListener')): | |
| 555 # Find the JsFunction that corresponds to this Dart function. | |
| 556 parameters.append('_knownListeners[this.hashCode][identityHashCode
(%s)]' % p.name) | |
| 557 elif dart_js_interop and type_id == 'FontFaceSetForEachCallback': | 553 elif dart_js_interop and type_id == 'FontFaceSetForEachCallback': |
| 558 # forEach is supported in the DOM for FontFaceSet as it iterates | 554 # forEach is supported in the DOM for FontFaceSet as it iterates |
| 559 # over the Javascript Object the callback parameters are also | 555 # over the Javascript Object the callback parameters are also |
| 560 # Javascript objects and must be wrapped. | 556 # Javascript objects and must be wrapped. |
| 561 parameters.append('unwrap_jso((fontFace, fontFaceAgain, set) => %s
(wrap_jso(fontFace), wrap_jso(fontFaceAgain), wrap_jso(set)))' % p.name) | 557 parameters.append('unwrap_jso((fontFace, fontFaceAgain, set) => %s
(wrap_jso(fontFace), wrap_jso(fontFaceAgain), wrap_jso(set)))' % p.name) |
| 562 elif dart_js_interop and type_id == 'HeadersForEachCallback': | 558 elif dart_js_interop and type_id == 'HeadersForEachCallback': |
| 563 # forEach is supported in the DOM for Headers as it iterates | 559 # forEach is supported in the DOM for Headers as it iterates |
| 564 # over the Javascript Object the callback parameters are also | 560 # over the Javascript Object the callback parameters are also |
| 565 # Javascript objects and must be wrapped. | 561 # Javascript objects and must be wrapped. |
| 566 parameters.append('unwrap_jso((String value, String key, map) => %
s(value, key, wrap_jso(map)))' % p.name) | 562 parameters.append('unwrap_jso((String value, String key, map) => %
s(value, key, wrap_jso(map)))' % p.name) |
| (...skipping 899 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1466 return_type == 'Rectangle') | 1462 return_type == 'Rectangle') |
| 1467 | 1463 |
| 1468 def wrap_return_type_blink(return_type, type_name, type_registry): | 1464 def wrap_return_type_blink(return_type, type_name, type_registry): |
| 1469 """Returns True if we should wrap the returned value. This checks | 1465 """Returns True if we should wrap the returned value. This checks |
| 1470 a number of different variations, calling the more basic functions | 1466 a number of different variations, calling the more basic functions |
| 1471 above.""" | 1467 above.""" |
| 1472 return (wrap_unwrap_type_blink(return_type, type_registry) or | 1468 return (wrap_unwrap_type_blink(return_type, type_registry) or |
| 1473 wrap_unwrap_type_blink(type_name, type_registry) or | 1469 wrap_unwrap_type_blink(type_name, type_registry) or |
| 1474 wrap_type_blink(return_type, type_registry) or | 1470 wrap_type_blink(return_type, type_registry) or |
| 1475 wrap_unwrap_list_blink(return_type, type_registry)) | 1471 wrap_unwrap_list_blink(return_type, type_registry)) |
| OLD | NEW |