| Index: tools/dom/src/native_DOMImplementation.dart
|
| ===================================================================
|
| --- tools/dom/src/native_DOMImplementation.dart (revision 20693)
|
| +++ tools/dom/src/native_DOMImplementation.dart (working copy)
|
| @@ -58,6 +58,7 @@
|
| }
|
|
|
| static window() native "Utils_window";
|
| + static print(String message) native "Utils_print";
|
| static forwardingPrint(String message) native "Utils_forwardingPrint";
|
| static void spawnDomFunction(Function topLevelFunction, int replyTo) native "Utils_spawnDomFunction";
|
| static int _getNewIsolateId() native "Utils_getNewIsolateId";
|
| @@ -131,41 +132,12 @@
|
| bool get isEmpty => Maps.isEmpty(this);
|
| }
|
|
|
| -final Future<SendPort> _HELPER_ISOLATE_PORT =
|
| - spawnDomFunction(_helperIsolateMain);
|
| -
|
| -final _TIMER_REGISTRY = new Map<SendPort, Timer>();
|
| -
|
| -const _NEW_TIMER = 'NEW_TIMER';
|
| -const _CANCEL_TIMER = 'CANCEL_TIMER';
|
| -const _TIMER_PING = 'TIMER_PING';
|
| -const _PRINT = 'PRINT';
|
| -
|
| -_helperIsolateMain() {
|
| - port.receive((msg, replyTo) {
|
| - final cmd = msg[0];
|
| - if (cmd == _NEW_TIMER) {
|
| - final duration = new Duration(milliseconds: msg[1]);
|
| - bool periodic = msg[2];
|
| - final callback = () { replyTo.send(_TIMER_PING); };
|
| - _TIMER_REGISTRY[replyTo] = periodic ?
|
| - new Timer.periodic(duration, callback) :
|
| - new Timer(duration, callback);
|
| - } else if (cmd == _CANCEL_TIMER) {
|
| - _TIMER_REGISTRY.remove(replyTo).cancel();
|
| - } else if (cmd == _PRINT) {
|
| - final message = msg[1];
|
| - // TODO(antonm): we need somehow identify those isolates.
|
| - print('[From isolate] $message');
|
| - }
|
| - });
|
| -}
|
| -
|
| -final _printClosure = window.console.log;
|
| -final _pureIsolatePrintClosure = (s) {
|
| - _HELPER_ISOLATE_PORT.then((sendPort) {
|
| - sendPort.send([_PRINT, s]);
|
| - });
|
| +get _printClosure => (s) {
|
| + try {
|
| + window.console.log(s);
|
| + } catch (_) {
|
| + _Utils.print(s);
|
| + }
|
| };
|
|
|
| final _forwardingPrintClosure = _Utils.forwardingPrint;
|
|
|