Project

General

Profile

« Previous | Next » 

Revision fbaa5db4

Added by jhawthorn (John Hawthorn) almost 3 years ago

Use a BOP for Hash#default

On a hash miss we need to call default if it is redefined in order to
return the default value to be used. Previously we checked this with
rb_method_basic_definition_p, which avoids the method call but requires
a method lookup.

This commit replaces the previous check with BASIC_OP_UNREDEFINED_P and
a new BOP_DEFAULT. We still need to fall back to
rb_method_basic_definition_p when called on a subclasss of hash.

| |compare-ruby|built-ruby| |:---------------|-----------:|---------:| |hash_aref_miss | 2.692| 3.531| | | -| 1.31x| 

Co-authored-by: Daniel Colson
Co-authored-by: "Ian C. Anderson"
Co-authored-by: Jack McCracken