Chromium Code Reviews| Index: lib/dom/templates/html/frog/html_frog.darttemplate |
| diff --git a/lib/dom/templates/html/frog/html_frog.darttemplate b/lib/dom/templates/html/frog/html_frog.darttemplate |
| index d364246feea018b82450705114ca2849c89e394d..2cb02695a6cede3d94302547f4319dd027b1c2e9 100644 |
| --- a/lib/dom/templates/html/frog/html_frog.darttemplate |
| +++ b/lib/dom/templates/html/frog/html_frog.darttemplate |
| @@ -5,7 +5,10 @@ |
| // DO NOT EDIT |
| // Auto-generated dart:html library. |
| -#library("html"); |
| +#library('html'); |
| + |
| +#import('dart:isolate'); |
| +#import('dart:json'); |
| $!GENERATED_DART_FILES |
| @@ -28,6 +31,7 @@ $!GENERATED_DART_FILES |
| #source('../../html/src/Device.dart'); |
| #source('../../dom/src/_ListIterators.dart'); |
| #source('../../dom/src/_Lists.dart'); |
| +#source('../../isolate/serialization.dart'); |
| Window get window() native "return window;"; |
| @@ -44,3 +48,40 @@ ElementList queryAll(String selector) => _document.queryAll(selector); |
| // Dart issue 1990. |
| class _HTMLElementImpl extends _ElementImpl native "*HTMLElement" { |
| } |
| + |
|
vsm
2012/07/04 08:52:35
Let's add a comment here:
TODO(vsm): Move this to
|
| +_serialize(var message) { |
| + // TODO(kasperl): Specialize the serializer. |
| + return new _Serializer().traverse(message); |
| +} |
| + |
| +_deserialize(var message) { |
| + return new _JsDeserializer().deserialize(message); |
| +} |
| + |
| +class _JsDeserializer extends _Deserializer { |
| + |
| + deserializeSendPort(List x) { |
| + num id = x[1]; |
| + return new _JsSendPortSync(id); |
| + } |
| + |
| +} |
| + |
| +class _JsSendPortSync implements SendPortSync { |
| + |
| + num _id; |
| + _JsSendPortSync(this._id); |
| + |
| + callSync(var message) { |
| + var serialized = _serialize(message); |
| + var result = _call(_id, serialized); |
| + return _deserialize(result); |
| + } |
| + |
| + static _call(num id, var message) native @""" |
| + var deserialized = _deserialize(message); |
| + var result = ReceivePortSync.map[id].callback(deserialized); |
| + return _serialize(result); |
| + """; |
| + |
| +} |