| define(['dart_sdk'], function(dart_sdk) { |
| 'use strict'; |
| const core = dart_sdk.core; |
| const dart = dart_sdk.dart; |
| const dartx = dart_sdk.dartx; |
| const async_helper = Object.create(null); |
| let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.functionType(dart.dynamic, [])))(); |
| let StringToException = () => (StringToException = dart.constFn(dart.definiteFunctionType(core.Exception, [core.String])))(); |
| let _Action0Tovoid = () => (_Action0Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async_helper._Action0])))(); |
| let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [])))(); |
| let dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic])))(); |
| let FnTovoid = () => (FnTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [VoidTodynamic()])))(); |
| async_helper._initialized = false; |
| async_helper._Action0 = dart.typedef('_Action0', () => dart.functionType(dart.void, [])); |
| async_helper._onAsyncEnd = null; |
| async_helper._asyncLevel = 0; |
| async_helper._buildException = function(msg) { |
| return core.Exception.new(dart.str`Fatal: ${msg}. This is most likely a bug in your test.`); |
| }; |
| dart.fn(async_helper._buildException, StringToException()); |
| async_helper.asyncTestInitialize = function(callback) { |
| async_helper._asyncLevel = 0; |
| async_helper._initialized = false; |
| async_helper._onAsyncEnd = callback; |
| }; |
| dart.fn(async_helper.asyncTestInitialize, _Action0Tovoid()); |
| dart.copyProperties(async_helper, { |
| get asyncTestStarted() { |
| return async_helper._initialized; |
| } |
| }); |
| async_helper.asyncStart = function() { |
| if (dart.test(async_helper._initialized) && async_helper._asyncLevel == 0) { |
| dart.throw(async_helper._buildException('asyncStart() was called even though we are done ' + 'with testing.')); |
| } |
| if (!dart.test(async_helper._initialized)) { |
| if (async_helper._onAsyncEnd == null) { |
| dart.throw(async_helper._buildException('asyncStart() was called before asyncTestInitialize()')); |
| } |
| core.print('unittest-suite-wait-for-done'); |
| async_helper._initialized = true; |
| } |
| async_helper._asyncLevel = dart.notNull(async_helper._asyncLevel) + 1; |
| }; |
| dart.fn(async_helper.asyncStart, VoidTovoid()); |
| async_helper.asyncEnd = function() { |
| if (dart.notNull(async_helper._asyncLevel) <= 0) { |
| if (!dart.test(async_helper._initialized)) { |
| dart.throw(async_helper._buildException('asyncEnd() was called before asyncStart().')); |
| } else { |
| dart.throw(async_helper._buildException('asyncEnd() was called more often than ' + 'asyncStart().')); |
| } |
| } |
| async_helper._asyncLevel = dart.notNull(async_helper._asyncLevel) - 1; |
| if (async_helper._asyncLevel == 0) { |
| let callback = async_helper._onAsyncEnd; |
| async_helper._onAsyncEnd = null; |
| callback(); |
| core.print('unittest-suite-success'); |
| } |
| }; |
| dart.fn(async_helper.asyncEnd, VoidTovoid()); |
| async_helper.asyncSuccess = function(_) { |
| return async_helper.asyncEnd(); |
| }; |
| dart.fn(async_helper.asyncSuccess, dynamicTovoid()); |
| async_helper.asyncTest = function(f) { |
| async_helper.asyncStart(); |
| dart.dsend(f(), 'then', async_helper.asyncSuccess); |
| }; |
| dart.fn(async_helper.asyncTest, FnTovoid()); |
| dart.trackLibraries("async_helper", {"async_helper.dart": async_helper}); |
| // Exports: |
| return { |
| async_helper: async_helper |
| }; |
| }); |