😎

[Bug #20597] `eval('break if false')` が SyntaxError にならないバグ報告

2024/06/29に公開

[Bug #20597] eval('break if false') should raise SyntaxError but retuns nil

  • break if false を実行すると SyntaxError になる
# Invalid break (SyntaxError)
break if false
  • しかし eval で同コードを実行したときには SyntaxError にならないというバグ報告
# no error
eval("break if false")
  • チケットの内容によると以下のように一部の書き方だと SyntaxError になるみたいですね
eval('break if false') #=> nil
eval('break if (false)') #=> nil
eval('break if nil') #=> nil
eval('break if (nil)') #=> Can't escape from eval with break (SyntaxError)
eval('break if 0>1') #=> Can't escape from eval with break (SyntaxError)
  • また next redo も同様のこと
GitHubで編集を提案

Discussion