Skip to content

v1.5.0

Compare
Choose a tag to compare
@elia elia released this 13 Apr 08:14
· 520 commits to master since this release
v1.5.0
534edd1

Added

Changed

  • Move Math IE11-supporting polyfills to a separate file by @hmdne in #2395
  • String methods always return Strings even when overloaded by @hmdne in #2413
  • Misc changes extracted from DCE work by @elia in #2414
    • alias calls will not add the "old name" method to the list of stubs for method missing
  • Optimize writer/setter methods (up to 4% performance gain!) by @hmdne in #2402
    • Also fixed few edge cases of conditional calls combined with setters, e.g. foo&.bar = 123

Performance

  • Runtime optimization by @hmdne in #2383
    • Improve performance of argument coertion, fast-track Integer, String, and calling the designed coertion method
    • Optimize Array#[]= by moving the implementation to JavaScript and inlining type checks
    • Optimize internal runtime passing of block-options
  • Compile case statements as switch whenever possible by @hmdne in #2411
  • Improve performance with optimized common method/iter implementation shortcuts by @hmdne in #2401

Fixed

  • Fix Regexp.new, replace \A to ^ and \z to $ by @ysakasin in #2079
  • Fix exception during Hash#each and Hash#each_key if keys get deleted during the loop by @janbiedermann in #2403
  • Fix defining multiple methods with the same block by @elia in #2397
  • Correct String#to_proc and method_missing compatibility by @hmdne in #2418
  • Exit REPL respecting the exit status number by @janbiedermann in #2396

Internal

  • Rewriters refactor, fix interaction between cache and inverted runner by @hmdne in #2400
  • releasing.md: add a step to prepare for next release by @hmdne in #2407

New Contributors

Full Changelog: v1.4.1...v1.5.0