summaryrefslogtreecommitdiff
path: root/jit_hook.rb
blob: 487361c049ed32d3ea832ee5d5f1316d294dd47a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
class Module
  # Internal helper for built-in initializations to define methods only when JIT is enabled.
  # This method is removed in jit_undef.rb.
  private def with_jit(&block) # :nodoc:
    # ZJIT currently doesn't compile Array#each properly, so it's disabled for now.
    if defined?(RubyVM::ZJIT) && Primitive.rb_zjit_option_enabled_p && false # TODO: remove `&& false` (Shopify/ruby#667)
      # We don't support lazily enabling ZJIT yet, so we can call the block right away.
      block.call
    elsif defined?(RubyVM::YJIT)
      RubyVM::YJIT.send(:add_jit_hook, block)
    end
  end
end