OLD | NEW |
(Empty) | |
| 1 dart_library.library('async_helper', null, /* Imports */[ |
| 2 'dart_sdk' |
| 3 ], function load__async_helper(exports, dart_sdk) { |
| 4 'use strict'; |
| 5 const core = dart_sdk.core; |
| 6 const dart = dart_sdk.dart; |
| 7 const dartx = dart_sdk.dartx; |
| 8 const async_helper = Object.create(null); |
| 9 let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.functionType(dart
.dynamic, [])))(); |
| 10 let StringToException = () => (StringToException = dart.constFn(dart.definiteF
unctionType(core.Exception, [core.String])))(); |
| 11 let _Action0Tovoid = () => (_Action0Tovoid = dart.constFn(dart.definiteFunctio
nType(dart.void, [async_helper._Action0])))(); |
| 12 let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.definiteFunctionType(da
rt.void, [])))(); |
| 13 let dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.definiteFunctionT
ype(dart.void, [dart.dynamic])))(); |
| 14 let FnTovoid = () => (FnTovoid = dart.constFn(dart.definiteFunctionType(dart.v
oid, [VoidTodynamic()])))(); |
| 15 async_helper._initialized = false; |
| 16 async_helper._Action0 = dart.typedef('_Action0', () => dart.functionType(dart.
void, [])); |
| 17 async_helper._onAsyncEnd = null; |
| 18 async_helper._asyncLevel = 0; |
| 19 async_helper._buildException = function(msg) { |
| 20 return core.Exception.new(dart.str`Fatal: ${msg}. This is most likely a bug
in your test.`); |
| 21 }; |
| 22 dart.fn(async_helper._buildException, StringToException()); |
| 23 async_helper.asyncTestInitialize = function(callback) { |
| 24 async_helper._asyncLevel = 0; |
| 25 async_helper._initialized = false; |
| 26 async_helper._onAsyncEnd = callback; |
| 27 }; |
| 28 dart.fn(async_helper.asyncTestInitialize, _Action0Tovoid()); |
| 29 dart.copyProperties(async_helper, { |
| 30 get asyncTestStarted() { |
| 31 return async_helper._initialized; |
| 32 } |
| 33 }); |
| 34 async_helper.asyncStart = function() { |
| 35 if (dart.test(async_helper._initialized) && async_helper._asyncLevel == 0) { |
| 36 dart.throw(async_helper._buildException('asyncStart() was called even thou
gh we are done ' + 'with testing.')); |
| 37 } |
| 38 if (!dart.test(async_helper._initialized)) { |
| 39 if (async_helper._onAsyncEnd == null) { |
| 40 dart.throw(async_helper._buildException('asyncStart() was called before
asyncTestInitialize()')); |
| 41 } |
| 42 core.print('unittest-suite-wait-for-done'); |
| 43 async_helper._initialized = true; |
| 44 } |
| 45 async_helper._asyncLevel = dart.notNull(async_helper._asyncLevel) + 1; |
| 46 }; |
| 47 dart.fn(async_helper.asyncStart, VoidTovoid()); |
| 48 async_helper.asyncEnd = function() { |
| 49 if (dart.notNull(async_helper._asyncLevel) <= 0) { |
| 50 if (!dart.test(async_helper._initialized)) { |
| 51 dart.throw(async_helper._buildException('asyncEnd() was called before as
yncStart().')); |
| 52 } else { |
| 53 dart.throw(async_helper._buildException('asyncEnd() was called more ofte
n than ' + 'asyncStart().')); |
| 54 } |
| 55 } |
| 56 async_helper._asyncLevel = dart.notNull(async_helper._asyncLevel) - 1; |
| 57 if (async_helper._asyncLevel == 0) { |
| 58 let callback = async_helper._onAsyncEnd; |
| 59 async_helper._onAsyncEnd = null; |
| 60 callback(); |
| 61 core.print('unittest-suite-success'); |
| 62 } |
| 63 }; |
| 64 dart.fn(async_helper.asyncEnd, VoidTovoid()); |
| 65 async_helper.asyncSuccess = function(_) { |
| 66 return async_helper.asyncEnd(); |
| 67 }; |
| 68 dart.fn(async_helper.asyncSuccess, dynamicTovoid()); |
| 69 async_helper.asyncTest = function(f) { |
| 70 async_helper.asyncStart(); |
| 71 dart.dsend(f(), 'then', async_helper.asyncSuccess); |
| 72 }; |
| 73 dart.fn(async_helper.asyncTest, FnTovoid()); |
| 74 // Exports: |
| 75 exports.async_helper = async_helper; |
| 76 }); |
OLD | NEW |