What steps will reproduce the problem? 1.Running following code: let temp = eval('42;switch (0) { case 0: break; };'); console.log(temp); What is the expected output? 42 What do you see instead? undefined According to ecma manual,https://tc39.es/ecma262/#sec-block-runtime-semantics-evaluation, the value of a StatementList is the value of the last value producing item in the StatementList. However, switch statement not produce value, so the result should be 42. ISec Lab 2019.12.24
<rdar://problem/58194612>
I believe this behaves correctly, https://tc39.es/ecma262/#sec-runtime-semantics-caseblockevaluation, produces a normal completion of undefined if the StatementList if the case label has no production.