PRUint32 length = aReadable.Length(); CharT* buffer = new CharT[length]; if ( buffer )
if ( !aReadable.Promises(*this) ) do_InsertFromReadable(aReadable, atPosition); else
basic_nsAWritableString<CharT>::InsertFromPromise( const nsPromiseReadable<CharT>& aReadable, PRUint32 atPosition )  {    PRUint32 length = aReadable.Length();    CharT* buffer = new CharT[length];    if ( buffer )      {        copy_string(aReadable.BeginReading(), aReadable.EndReading(), buffer);        do_InsertFromElementPtrLength(buffer, atPosition, length);        delete buffer;      }  }