function throwSomething() { throw "something"; } try { // Use eval to force BINDNAME. Should throw "something" instead of the TDZ // ReferenceError. eval("x = throwSomething()"); let x; } catch (e) { assertEq(e, "something"); } try { eval("x = 42"); let x; } catch (e) { assertEq(e instanceof ReferenceError, true); }