More cases

This commit is contained in:
Leo Balter 2019-08-02 18:57:54 -04:00 committed by Rick Waldron
parent 56a2dba975
commit 00ef6331a6
3 changed files with 127 additions and 0 deletions

View File

@ -0,0 +1,46 @@
// Copyright (C) 2019 Leo Balter. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: >
Evaluation of a rejected promise
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
LeftHandSideExpression[Yield, Await]:
NewExpression[?Yield, ?Await]
CallExpression[?Yield, ?Await]
NewExpression[Yield, Await]:
MemberExpression[?Yield, ?Await]
new NewExpression[?Yield, ?Await]
MemberExpression[Yield, Await]:
...
new MemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
esid: prod-AwaitExpression
flags: [module, async]
features: [top-level-await]
---*/
var obj = new Test262Error();
try {
await Promise.reject(obj);
} catch (e) {
assert.sameValue(e, obj);
$DONE();
}
// Can't use assert.throws here as it relies in a nested function.

View File

@ -0,0 +1,43 @@
// Copyright (C) 2019 Leo Balter. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: >
Evaluation of await before a NewExpression
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
LeftHandSideExpression[Yield, Await]:
NewExpression[?Yield, ?Await]
CallExpression[?Yield, ?Await]
NewExpression[Yield, Await]:
MemberExpression[?Yield, ?Await]
new NewExpression[?Yield, ?Await]
MemberExpression[Yield, Await]:
...
new MemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
esid: prod-AwaitExpression
flags: [module, async]
features: [top-level-await]
---*/
var value = await new Promise(function(res, rej) {
res(42);
});
assert.sameValue(value, 42);
$DONE();

View File

@ -0,0 +1,38 @@
// Copyright (C) 2019 Leo Balter. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: >
Valid syntax for top level await.
AwaitExpression ArrayLiteral
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
LeftHandSideExpression[Yield, Await]:
NewExpression[?Yield, ?Await]
CallExpression[?Yield, ?Await]
NewExpression[Yield, Await]:
MemberExpression[?Yield, ?Await]
new NewExpression[?Yield, ?Await]
MemberExpression[Yield, Await]:
...
new MemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
esid: prod-AwaitExpression
flags: [module]
features: [top-level-await]
---*/
await new Promise(function(res, rej) { res(1); });