builtins/string_variables_after_free.rb
tests/_examples/builtins/string_variables_after_free.rb in the metorex repository.
# A String given an instance variable and then dropped leaves nothing on the
# Strings made after it.
100.times do |count|
marked = +"marked #{count}"
marked.instance_variable_set(:@count, count)
end
carrying = 0
1000.times do |count|
fresh = +"fresh #{count}"
carrying += 1 unless fresh.instance_variables.empty?
end
puts carrying
list = [1]
list.instance_variable_set(:@kept, true)
puts list.instance_variables.inspect
Output:
0
[:@kept]