| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // Patch file for the dart:isolate library. | 5 // Patch file for the dart:isolate library. |
| 6 | 6 |
| 7 import 'dart:uri'; | 7 import 'dart:uri'; |
| 8 | 8 |
| 9 /** | 9 /** |
| 10 * Called by the compiler to support switching | 10 * Called by the compiler to support switching |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 386 void terminate() {} // Nothing useful to do here. | 386 void terminate() {} // Nothing useful to do here. |
| 387 } | 387 } |
| 388 | 388 |
| 389 /** | 389 /** |
| 390 * A stub for interacting with a manager built on a web worker. This | 390 * A stub for interacting with a manager built on a web worker. This |
| 391 * definition uses a 'hidden' type (* prefix on the native name) to | 391 * definition uses a 'hidden' type (* prefix on the native name) to |
| 392 * enforce that the type is defined dynamically only when web workers | 392 * enforce that the type is defined dynamically only when web workers |
| 393 * are actually available. | 393 * are actually available. |
| 394 */ | 394 */ |
| 395 class _WorkerStub implements _ManagerStub native "*Worker" { | 395 class _WorkerStub implements _ManagerStub native "*Worker" { |
| 396 get id => JS("Object", "#.id", this); | 396 get id => JS("var", "#.id", this); |
| 397 void set id(i) { JS("void", "#.id = #", this, i); } | 397 void set id(i) { JS("void", "#.id = #", this, i); } |
| 398 void set onmessage(f) { JS("void", "#.onmessage = #", this, f); } | 398 void set onmessage(f) { JS("void", "#.onmessage = #", this, f); } |
| 399 void postMessage(msg) => JS("Object", "#.postMessage(#)", this, msg); | 399 void postMessage(msg) => JS("void", "#.postMessage(#)", this, msg); |
| 400 // terminate() is implemented by Worker. | 400 // terminate() is implemented by Worker. |
| 401 void terminate(); | 401 void terminate(); |
| 402 } | 402 } |
| 403 | 403 |
| 404 const String _SPAWNED_SIGNAL = "spawned"; | 404 const String _SPAWNED_SIGNAL = "spawned"; |
| 405 | 405 |
| 406 class _IsolateNatives { | 406 class _IsolateNatives { |
| 407 | 407 |
| 408 /** | 408 /** |
| 409 * The src url for the script tag that loaded this code. Used to create | 409 * The src url for the script tag that loaded this code. Used to create |
| 410 * JavaScript workers. | 410 * JavaScript workers. |
| 411 */ | 411 */ |
| 412 static String get _thisScript => JS("String", r"$thisScriptUrl"); | 412 static String get _thisScript => JS("String", r"$thisScriptUrl"); |
| 413 | 413 |
| 414 /** Starts a new worker with the given URL. */ | 414 /** Starts a new worker with the given URL. */ |
| 415 static _WorkerStub _newWorker(url) => JS("Object", r"new Worker(#)", url); | 415 static _WorkerStub _newWorker(url) => JS("_WorkerStub", r"new Worker(#)", url)
; |
| 416 | 416 |
| 417 /** | 417 /** |
| 418 * Assume that [e] is a browser message event and extract its message data. | 418 * Assume that [e] is a browser message event and extract its message data. |
| 419 * We don't import the dom explicitly so, when workers are disabled, this | 419 * We don't import the dom explicitly so, when workers are disabled, this |
| 420 * library can also run on top of nodejs. | 420 * library can also run on top of nodejs. |
| 421 */ | 421 */ |
| 422 static _getEventData(e) => JS("Object", "#.data", e); | 422 //static _getEventData(e) => JS("Object", "#.data", e); |
| 423 static _getEventData(e) => JS("", "#.data", e); |
| 423 | 424 |
| 424 /** | 425 /** |
| 425 * Process messages on a worker, either to control the worker instance or to | 426 * Process messages on a worker, either to control the worker instance or to |
| 426 * pass messages along to the isolate running in the worker. | 427 * pass messages along to the isolate running in the worker. |
| 427 */ | 428 */ |
| 428 static void _processWorkerMessage(sender, e) { | 429 static void _processWorkerMessage(sender, e) { |
| 429 var msg = _deserializeMessage(_getEventData(e)); | 430 var msg = _deserializeMessage(_getEventData(e)); |
| 430 switch (msg['command']) { | 431 switch (msg['command']) { |
| 431 case 'start': | 432 case 'start': |
| 432 _globalState.currentManagerId = msg['id']; | 433 _globalState.currentManagerId = msg['id']; |
| (...skipping 847 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1280 _window.clearTimeout(_handle); | 1281 _window.clearTimeout(_handle); |
| 1281 } else { | 1282 } else { |
| 1282 _window.clearInterval(_handle); | 1283 _window.clearInterval(_handle); |
| 1283 } | 1284 } |
| 1284 } | 1285 } |
| 1285 } | 1286 } |
| 1286 | 1287 |
| 1287 Timer _timerFactory(int millis, void callback(Timer timer), bool repeating) => | 1288 Timer _timerFactory(int millis, void callback(Timer timer), bool repeating) => |
| 1288 repeating ? new _Timer.repeating(millis, callback) | 1289 repeating ? new _Timer.repeating(millis, callback) |
| 1289 : new _Timer(millis, callback); | 1290 : new _Timer(millis, callback); |
| OLD | NEW |