Symbol#inspect is wrong for symbols with newlines
Adds a conversion from Symbols to Strings in 1.9 Regexp#escape. Fixes #1852
Fixes clang[++] build failure on Apple Clang 4.0.
In 47f6c18, we changed the encoding map and now store the key as an upcased symbol, so lookup is very fast.
Remove singleton class tags outdated by renaming in the following commit: 31f5cbe Rename and cleanup the singleton classspec
It can happen that the inline cache changed since we got the request to JIT it. Therefore guard that we're actually seeing a proper class here so we fallback to regular sends in that case.
If the inline cache overflows too often, we don't use uncommon exit anymore, but fallback to a regular send. This helps performance for megamorphic call sites that keep seeing new types and are best off when falling back to a regular method send.
The multiple method cache entries already provide the same information. Since we already track those, we can remove the seen_classes since it basically just duplicates functionality.
We were filling all the entries with a pointer to the exact same method cache entry which is of course not very smart and actually defeats the fact that the jit can optimize this properly.