OLD | NEW |
(Empty) | |
| 1 self.onmessage = function(e) { |
| 2 switch (e.data) { |
| 3 case 'WAIT': |
| 4 e.waitUntil(new Promise(function(r) { |
| 5 self.resolve = r; |
| 6 self.port.postMessage('ACK'); |
| 7 }).then(function() { |
| 8 self.port.postMessage('PASS'); |
| 9 })); |
| 10 return; |
| 11 case 'WAIT_ASYNC': |
| 12 setTimeout(function() { |
| 13 try { |
| 14 e.waitUntil(new Promise(function() {})); |
| 15 } catch (error) { |
| 16 if (error.name == 'InvalidStateError') |
| 17 self.port.postMessage('PASS'); |
| 18 else |
| 19 self.port.postMessage( |
| 20 'FAIL: unexpected exception: ' + error); |
| 21 } |
| 22 }, 0); |
| 23 return; |
| 24 case 'DONE': |
| 25 self.resolve(); |
| 26 return; |
| 27 default: |
| 28 if (e.data.port) |
| 29 self.port = e.data.port; |
| 30 return; |
| 31 } |
| 32 }; |
OLD | NEW |