-
-
Notifications
You must be signed in to change notification settings - Fork 32.7k
Closed
Labels
confirmed-bugIssues with confirmed bugs.Issues with confirmed bugs.promisesIssues and PRs related to ECMAScript promises.Issues and PRs related to ECMAScript promises.replIssues and PRs related to the REPL subsystem.Issues and PRs related to the REPL subsystem.
Description
Version
18.5.0
Platform
Linux 5.13.0-Ubuntu x86_64 x86_64 x86_64 GNU/Linux
Subsystem
repl
What steps will reproduce the bug?
In REPL:
const foo = async () => 123;
foo();
await foo();
typeof (await Promise.resolve(foo))();
(await Promise.resolve(foo))();
How often does it reproduce? Is there a required condition?
Always.
What is the expected behavior?
> const foo = async () => 123;
undefined
> foo();
Promise {
123,
[Symbol(async_id_symbol)]: 33,
[Symbol(trigger_async_id_symbol)]: 5
}
> await foo();
123
> typeof (await Promise.resolve(foo))();
'object'
> (await Promise.resolve(foo))();
Promise {
123,
[Symbol(async_id_symbol)]: 108,
[Symbol(trigger_async_id_symbol)]: 5
}
Note that typeof
prints 'object'
, which is correct and matches Promise { ... }
.
What do you see instead?
> const foo = async () => 123;
undefined
> foo();
Promise {
123,
[Symbol(async_id_symbol)]: 33,
[Symbol(trigger_async_id_symbol)]: 5
}
> await foo();
123
> typeof (await Promise.resolve(foo))();
'object'
> (await Promise.resolve(foo))();
123
Note that typeof
prints 'object'
, which is correct, but the value of the expression is shown to be 123
in the REPL, which is a 'number'
.
Additional information
Chrome and Edge seem to handle this as I'd expect. Firefox seems to handle this like Node.js (so I'm assuming it's a bug).
Metadata
Metadata
Assignees
Labels
confirmed-bugIssues with confirmed bugs.Issues with confirmed bugs.promisesIssues and PRs related to ECMAScript promises.Issues and PRs related to ECMAScript promises.replIssues and PRs related to the REPL subsystem.Issues and PRs related to the REPL subsystem.