blob: f8bf9d15dca432baf81c8f53401248adde0dab9b [file] [log] [blame] [edit]
// Copyright (C) 2018 Leo Balter. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: Private Async Generator
template: private-methods
features: [async-iteration]
flags: [async]
---*/
//- setup
var ctorPromise;
//- element
async * #m() { return 42; }
//- constructor
var ctorIter = this.#m();
var p = ctorIter.next();
ctorPromise = p.then(({ value, done }) => {
assert.sameValue(value, 42, 'return from generator method, inside ctor');
assert.sameValue(done, true, 'iterator is done, inside ctor');
}, $DONE);
assert.sameValue(this.#m.name, '#m', 'function name inside constructor');
//- assertions
assert.sameValue(c.ref.name, '#m', 'function name is preserved external reference');
ctorPromise.then(() => {
// gets the returned async iterator from #m
var iter = c.ref();
return iter.next().then(({ value, done }) => {
assert.sameValue(value, 42, 'return from generator method');
assert.sameValue(done, true, 'iterator is done');
});
}).then($DONE, $DONE);