Bug 247784

Summary: Async arrow function being `undefined`
Product: WebKit Reporter: Kanguk Lee <p51lee>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED WONTFIX    
Severity: Normal CC: mark.lam, ysuzuki
Priority: P2    
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Unspecified   

Kanguk Lee
Reported 2022-11-11 00:53:30 PST
Hello, `x` is `undefined` after executing `let x = async x => { for await ( { x } of [ 0 ] ) ; } ; x ( ) ;` in WebKit JSC, but I think that it is expected to be `async x => ....`: --- $ jsc >>> let x = async x => { for await ( { x } of [ 0 ] ) ; } ; x ( ) ; [object Promise] >>> x undefined >>> --- while other engines behave like: --- # V8 V8 version 10.9.0 d8> let x = async x => { for await ( { x } of [ 0 ] ) ; } ; x ( ) ; [object Promise] d8> x async x => { for await ( { x } of [ 0 ] ) ; } d8> --- WebKit version: 615.1.10
Attachments
Yusuke Suzuki
Comment 1 2022-11-13 19:47:16 PST
It is JSC shell's behavior that `let` is scoped to this line. So, it is not defined as a standard.
Note You need to log in before you can comment on or make changes to this bug.