| Index: test/codegen/expect/language/asyncstar_yield_test.js | 
| diff --git a/test/codegen/expect/language/asyncstar_yield_test.js b/test/codegen/expect/language/asyncstar_yield_test.js | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..24598af7d599940c07a09696d3e2ceb557037e9e | 
| --- /dev/null | 
| +++ b/test/codegen/expect/language/asyncstar_yield_test.js | 
| @@ -0,0 +1,112 @@ | 
| +dart_library.library('language/asyncstar_yield_test', null, /* Imports */[ | 
| +  'dart_sdk', | 
| +  'expect', | 
| +  'async_helper' | 
| +], function load__asyncstar_yield_test(exports, dart_sdk, expect, async_helper) { | 
| +  'use strict'; | 
| +  const core = dart_sdk.core; | 
| +  const async = dart_sdk.async; | 
| +  const _interceptors = dart_sdk._interceptors; | 
| +  const dart = dart_sdk.dart; | 
| +  const dartx = dart_sdk.dartx; | 
| +  const expect$ = expect.expect; | 
| +  const async_helper$ = async_helper.async_helper; | 
| +  const asyncstar_yield_test = Object.create(null); | 
| +  let StreamOfint = () => (StreamOfint = dart.constFn(async.Stream$(core.int)))(); | 
| +  let CompleterOfbool = () => (CompleterOfbool = dart.constFn(async.Completer$(core.bool)))(); | 
| +  let JSArrayOfint = () => (JSArrayOfint = dart.constFn(_interceptors.JSArray$(core.int)))(); | 
| +  let VoidToStreamOfint = () => (VoidToStreamOfint = dart.constFn(dart.definiteFunctionType(StreamOfint(), [])))(); | 
| +  let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))(); | 
| +  let dynamicToStreamOfint = () => (dynamicToStreamOfint = dart.constFn(dart.definiteFunctionType(StreamOfint(), [dart.dynamic])))(); | 
| +  let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic])))(); | 
| +  asyncstar_yield_test.foo1 = function() { | 
| +    return dart.asyncStar(function*(stream) { | 
| +      if (stream.add(1)) return; | 
| +      yield; | 
| +      let p = (yield async.Future.value(10)); | 
| +      if (stream.add(core.int._check(dart.dsend(p, '+', 10)))) return; | 
| +      yield; | 
| +    }, core.int); | 
| +  }; | 
| +  dart.fn(asyncstar_yield_test.foo1, VoidToStreamOfint()); | 
| +  asyncstar_yield_test.foo2 = function() { | 
| +    return dart.asyncStar(function*(stream) { | 
| +      let i = 0; | 
| +      while (true) { | 
| +        yield async.Future.delayed(new core.Duration({milliseconds: 0}), dart.fn(() => { | 
| +        }, VoidTodynamic())); | 
| +        if (i > 10) return; | 
| +        if (stream.add(i)) return; | 
| +        yield; | 
| +        i++; | 
| +      } | 
| +    }, core.int); | 
| +  }; | 
| +  dart.fn(asyncstar_yield_test.foo2, VoidToStreamOfint()); | 
| +  asyncstar_yield_test.foo3 = function(p) { | 
| +    return dart.asyncStar(function*(stream, p) { | 
| +      let i = 0; | 
| +      let t = false; | 
| +      if (stream.add(null)) return; | 
| +      yield; | 
| +      while (true) { | 
| +        i++; | 
| +        a: | 
| +          for (let i = 0; i < dart.notNull(core.num._check(p)); i++) { | 
| +            if (!t) { | 
| +              for (let j = 0; j < 3; j++) { | 
| +                if (stream.add(-1)) return; | 
| +                yield; | 
| +                t = true; | 
| +                break a; | 
| +              } | 
| +            } | 
| +            yield 4; | 
| +            if (stream.add(i)) return; | 
| +            yield; | 
| +          } | 
| +      } | 
| +    }, core.int, p); | 
| +  }; | 
| +  dart.fn(asyncstar_yield_test.foo3, dynamicToStreamOfint()); | 
| +  dart.defineLazy(asyncstar_yield_test, { | 
| +    get finalized() { | 
| +      return CompleterOfbool().new(); | 
| +    }, | 
| +    set finalized(_) {} | 
| +  }); | 
| +  asyncstar_yield_test.foo4 = function() { | 
| +    return dart.asyncStar(function*(stream) { | 
| +      let i = 0; | 
| +      try { | 
| +        while (true) { | 
| +          if (stream.add(i)) return; | 
| +          yield; | 
| +          i++; | 
| +        } | 
| +      } finally { | 
| +        asyncstar_yield_test.finalized.complete(true); | 
| +      } | 
| +    }, core.int); | 
| +  }; | 
| +  dart.fn(asyncstar_yield_test.foo4, VoidToStreamOfint()); | 
| +  asyncstar_yield_test.test = function() { | 
| +    return dart.async(function*() { | 
| +      expect$.Expect.listEquals(JSArrayOfint().of([1, 20]), yield asyncstar_yield_test.foo1().toList()); | 
| +      expect$.Expect.listEquals(JSArrayOfint().of([0, 1, 2, 3]), yield asyncstar_yield_test.foo2().take(4).toList()); | 
| +      expect$.Expect.listEquals(JSArrayOfint().of([null, -1, 0, 1, 2, 3, 0, 1, 2, 3]), yield asyncstar_yield_test.foo3(4).take(10).toList()); | 
| +      expect$.Expect.listEquals(JSArrayOfint().of([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), yield asyncstar_yield_test.foo4().take(10).toList()); | 
| +      expect$.Expect.isTrue(yield asyncstar_yield_test.finalized.future); | 
| +    }, dart.dynamic); | 
| +  }; | 
| +  dart.fn(asyncstar_yield_test.test, VoidTodynamic()); | 
| +  asyncstar_yield_test.main = function() { | 
| +    async_helper$.asyncStart(); | 
| +    dart.dsend(asyncstar_yield_test.test(), 'then', dart.fn(_ => { | 
| +      async_helper$.asyncEnd(); | 
| +    }, dynamicTodynamic())); | 
| +  }; | 
| +  dart.fn(asyncstar_yield_test.main, VoidTodynamic()); | 
| +  // Exports: | 
| +  exports.asyncstar_yield_test = asyncstar_yield_test; | 
| +}); | 
|  |