Do it!
Created attachment 17920 [details] Patch
Comment on attachment 17920 [details] Patch I think that the UString::Rep::nullPtr should probably be a global in SymbolTable.h and not be a member of UString::Rep rather than in ustring.h. There's no good reason that class should export a global containing a pointer to the null rep, and the patch should not have to touch ustring.h/cpp at all. The only downside I can think of is that you'd have to find a .cpp file to put the global in. I also think that the vcproj contains the .h files, and so it should contain this one too. You should consider fixing those. Otherwise, r=me.
I'd suggest a typedef for T* (RawPtrKeyType?) but generally speaking this looks good.
Committed revision 28777. I moved the nullPtr declaration into IdentifierRepHashTraits, put its definition in JSVariableObject.cpp, added RefPtrHashMap.h to the .vcproj file, and typedef'ed T* to RawKeyType.