| Index: lib/html/src/Isolates.dart
|
| diff --git a/lib/html/src/Isolates.dart b/lib/html/src/Isolates.dart
|
| index e3e89c708e8335441c770d02345dfd8000b38d9b..3bbbf7f6c741d7327d89ad1e38a077cc4e2eff52 100644
|
| --- a/lib/html/src/Isolates.dart
|
| +++ b/lib/html/src/Isolates.dart
|
| @@ -89,8 +89,8 @@ class _RemoteSendPortSync implements SendPortSync {
|
| // TODO(vsm): Set this up set once, on the first call.
|
| var source = '$target-result';
|
| var result = null;
|
| - var listener = (TextEvent e) {
|
| - result = JSON.parse(e.data);
|
| + var listener = (Event e) {
|
| + result = JSON.parse(_getPortSyncEventData(e));
|
| };
|
| window.on[source].add(listener);
|
| _dispatchEvent(target, [source, message]);
|
| @@ -161,8 +161,8 @@ class ReceivePortSync {
|
| void receive(callback(var message)) {
|
| _callback = callback;
|
| if (_listener === null) {
|
| - _listener = (TextEvent e) {
|
| - var data = JSON.parse(e.data);
|
| + _listener = (Event e) {
|
| + var data = JSON.parse(_getPortSyncEventData(e));
|
| var replyTo = data[0];
|
| var message = _deserialize(data[1]);
|
| var result = _callback(message);
|
| @@ -193,7 +193,9 @@ class ReceivePortSync {
|
| get _isolateId => ReceivePortSync._isolateId;
|
|
|
| void _dispatchEvent(String receiver, var message) {
|
| - var event = document.$dom_createEvent('TextEvent');
|
| - event.initTextEvent(receiver, false, false, window, JSON.stringify(message));
|
| + var event = document.$dom_createEvent('CustomEvent');
|
| + event.initCustomEvent(receiver, false, false, JSON.stringify(message));
|
| window.$dom_dispatchEvent(event);
|
| }
|
| +
|
| +String _getPortSyncEventData(CustomEvent event) => event.detail;
|
|
|