mirror of
https://github.com/tc39/test262.git
synced 2025-05-03 14:30:27 +02:00
The values defined by the referenced files are not used by these tests. This makes their inclusion superfluous, which needlessly increases the time to execute the tests and may confuse some readers.
68 lines
2.0 KiB
JavaScript
68 lines
2.0 KiB
JavaScript
// This file was procedurally generated from the following sources:
|
|
// - src/async-generators/yield-spread-obj.case
|
|
// - src/async-generators/default/async-class-expr-static-private-method.template
|
|
/*---
|
|
description: Use yield value in a object spread position (Static async generator method as a ClassExpression element)
|
|
esid: prod-AsyncGeneratorPrivateMethod
|
|
features: [object-spread, async-iteration, class-static-methods-private]
|
|
flags: [generated, async]
|
|
info: |
|
|
ClassElement :
|
|
static PrivateMethodDefinition
|
|
|
|
MethodDefinition :
|
|
AsyncGeneratorMethod
|
|
|
|
Async Generator Function Definitions
|
|
|
|
AsyncGeneratorMethod :
|
|
async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
|
|
|
|
|
|
Spread Properties
|
|
|
|
PropertyDefinition[Yield]:
|
|
(...)
|
|
...AssignmentExpression[In, ?Yield]
|
|
|
|
---*/
|
|
|
|
|
|
var callCount = 0;
|
|
|
|
var C = class {
|
|
static async *#gen() {
|
|
callCount += 1;
|
|
yield {
|
|
...yield,
|
|
y: 1,
|
|
...yield yield,
|
|
};
|
|
}
|
|
static get gen() { return this.#gen; }
|
|
}
|
|
|
|
// Test the private fields do not appear as properties before set to value
|
|
assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#gen"), false, 'Object.hasOwnProperty.call(C.prototype, "#gen")');
|
|
assert.sameValue(Object.hasOwnProperty.call(C, "#gen"), false, 'Object.hasOwnProperty.call(C, "#gen")');
|
|
|
|
var iter = C.gen();
|
|
|
|
iter.next();
|
|
iter.next({ x: 42 });
|
|
iter.next({ x: 'lol' });
|
|
var item = iter.next({ y: 39 });
|
|
|
|
item.then(({ done, value }) => {
|
|
assert.sameValue(value.x, 42);
|
|
assert.sameValue(value.y, 39);
|
|
assert.sameValue(Object.keys(value).length, 2);
|
|
assert.sameValue(done, false);
|
|
}).then($DONE, $DONE);
|
|
|
|
assert.sameValue(callCount, 1);
|
|
|
|
// Test the private fields do not appear as properties after set to value
|
|
assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#gen"), false, 'Object.hasOwnProperty.call(C.prototype, "#gen")');
|
|
assert.sameValue(Object.hasOwnProperty.call(C, "#gen"), false, 'Object.hasOwnProperty.call(C, "#gen")');
|