compile.c (iseq_compile_each): emit opt_str_freeze if the #freeze
method is called on a static string literal with no arguments.
defs/id.def (firstline): add freeze so idFreeze is available
insns.def (opt_str_freeze): add opt_str_freeze instruction which
pushes a frozen string literal without allocating a new object if
String#freeze is not overriden
string.c (Init_String): define String#freeze
vm.c (vm_init_redefined_flag): define BOP_FREEZE on String class as
a basic operation
compile.c (iseq_compile_each): emit opt_str_freeze if the #freeze
method is called on a static string literal with no arguments.
defs/id.def (firstline): add freeze so idFreeze is available
insns.def (opt_str_freeze): add opt_str_freeze instruction which
pushes a frozen string literal without allocating a new object if
String#freeze is not overriden
string.c (Init_String): define String#freeze
vm.c (vm_init_redefined_flag): define BOP_FREEZE on String class as
a basic operation
vm_insnhelper.h: ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e