| Index: src/runtime.cc
 | 
| diff --git a/src/runtime.cc b/src/runtime.cc
 | 
| index f9420470e2552e9b7af614f46b5ec66ebe12afae..836e5b8c9965431c5948fa95b2e2bb18f7c87cce 100644
 | 
| --- a/src/runtime.cc
 | 
| +++ b/src/runtime.cc
 | 
| @@ -2665,7 +2665,7 @@ void CompiledReplacement::Compile(Handle<String> replacement,
 | 
|                                    int subject_length) {
 | 
|    {
 | 
|      AssertNoAllocation no_alloc;
 | 
| -    String::FlatContent content = replacement->GetFlatContent(no_alloc);
 | 
| +    String::FlatContent content = replacement->GetFlatContent();
 | 
|      ASSERT(content.IsFlat());
 | 
|      if (content.IsAscii()) {
 | 
|        ParseReplacementPattern(&parts_,
 | 
| @@ -3050,8 +3050,8 @@ int Runtime::StringMatch(Isolate* isolate,
 | 
|  
 | 
|    AssertNoAllocation no_heap_allocation;  // ensure vectors stay valid
 | 
|    // Extract flattened substrings of cons strings before determining asciiness.
 | 
| -  String::FlatContent seq_sub = sub->GetFlatContent(no_heap_allocation);
 | 
| -  String::FlatContent seq_pat = pat->GetFlatContent(no_heap_allocation);
 | 
| +  String::FlatContent seq_sub = sub->GetFlatContent();
 | 
| +  String::FlatContent seq_pat = pat->GetFlatContent();
 | 
|  
 | 
|    // dispatch on type of strings
 | 
|    if (seq_pat.IsAscii()) {
 | 
| @@ -3161,8 +3161,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StringLastIndexOf) {
 | 
|    int position = -1;
 | 
|    AssertNoAllocation no_heap_allocation;  // ensure vectors stay valid
 | 
|  
 | 
| -  String::FlatContent sub_content = sub->GetFlatContent(no_heap_allocation);
 | 
| -  String::FlatContent pat_content = pat->GetFlatContent(no_heap_allocation);
 | 
| +  String::FlatContent sub_content = sub->GetFlatContent();
 | 
| +  String::FlatContent pat_content = pat->GetFlatContent();
 | 
|  
 | 
|    if (pat_content.IsAscii()) {
 | 
|      Vector<const char> pat_vector = pat_content.ToAsciiVector();
 | 
| @@ -3400,8 +3400,8 @@ static bool SearchStringMultiple(Isolate* isolate,
 | 
|    for (;;) {  // Break when search complete.
 | 
|      builder->EnsureCapacity(kMaxBuilderEntriesPerRegExpMatch);
 | 
|      AssertNoAllocation no_gc;
 | 
| -    String::FlatContent subject_content = subject->GetFlatContent(no_gc);
 | 
| -    String::FlatContent pattern_content = pattern->GetFlatContent(no_gc);
 | 
| +    String::FlatContent subject_content = subject->GetFlatContent();
 | 
| +    String::FlatContent pattern_content = pattern->GetFlatContent();
 | 
|      if (subject_content.IsAscii()) {
 | 
|        Vector<const char> subject_vector = subject_content.ToAsciiVector();
 | 
|        if (pattern_content.IsAscii()) {
 | 
| @@ -5419,8 +5419,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_QuoteJSONString) {
 | 
|      str = String::cast(flat);
 | 
|      ASSERT(str->IsFlat());
 | 
|    }
 | 
| -  AssertNoAllocation no_alloc;
 | 
| -  String::FlatContent flat = str->GetFlatContent(no_alloc);
 | 
| +  String::FlatContent flat = str->GetFlatContent();
 | 
|    ASSERT(flat.IsFlat());
 | 
|    if (flat.IsTwoByte()) {
 | 
|      return QuoteJsonString<uc16, SeqTwoByteString, false>(isolate,
 | 
| @@ -5444,8 +5443,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_QuoteJSONStringComma) {
 | 
|      str = String::cast(flat);
 | 
|      ASSERT(str->IsFlat());
 | 
|    }
 | 
| -  AssertNoAllocation no_alloc;
 | 
| -  String::FlatContent flat = str->GetFlatContent(no_alloc);
 | 
| +  String::FlatContent flat = str->GetFlatContent();
 | 
|    if (flat.IsTwoByte()) {
 | 
|      return QuoteJsonString<uc16, SeqTwoByteString, true>(isolate,
 | 
|                                                           flat.ToUC16Vector());
 | 
| @@ -5486,7 +5484,7 @@ static MaybeObject* QuoteJsonStringArray(Isolate* isolate,
 | 
|    for (int i = 0; i < length; i++) {
 | 
|      if (i != 0) *(write_cursor++) = ',';
 | 
|      String* str = String::cast(array->get(i));
 | 
| -    String::FlatContent content = str->GetFlatContent(no_gc);
 | 
| +    String::FlatContent content = str->GetFlatContent();
 | 
|      ASSERT(content.IsFlat());
 | 
|      if (content.IsTwoByte()) {
 | 
|        write_cursor = WriteQuoteJsonString<Char, uc16>(isolate,
 | 
| @@ -5974,9 +5972,9 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StringSplit) {
 | 
|  
 | 
|    // No allocation block.
 | 
|    {
 | 
| -    AssertNoAllocation no_gc;
 | 
| -    String::FlatContent subject_content = subject->GetFlatContent(no_gc);
 | 
| -    String::FlatContent pattern_content = pattern->GetFlatContent(no_gc);
 | 
| +    AssertNoAllocation nogc;
 | 
| +    String::FlatContent subject_content = subject->GetFlatContent();
 | 
| +    String::FlatContent pattern_content = pattern->GetFlatContent();
 | 
|      ASSERT(subject_content.IsFlat());
 | 
|      ASSERT(pattern_content.IsFlat());
 | 
|      if (subject_content.IsAscii()) {
 | 
| @@ -6107,9 +6105,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StringToArray) {
 | 
|            isolate->heap()->AllocateUninitializedFixedArray(length);
 | 
|        if (!maybe_obj->ToObject(&obj)) return maybe_obj;
 | 
|      }
 | 
| -    AssertNoAllocation no_alloc;
 | 
|      elements = Handle<FixedArray>(FixedArray::cast(obj), isolate);
 | 
| -    String::FlatContent content = s->GetFlatContent(no_alloc);
 | 
| +    String::FlatContent content = s->GetFlatContent();
 | 
|      if (content.IsAscii()) {
 | 
|        Vector<const char> chars = content.ToAsciiVector();
 | 
|        // Note, this will initialize all elements (not only the prefix)
 | 
| @@ -6930,7 +6927,6 @@ static Object* StringInputBufferCompare(RuntimeState* state,
 | 
|  static Object* FlatStringCompare(String* x, String* y) {
 | 
|    ASSERT(x->IsFlat());
 | 
|    ASSERT(y->IsFlat());
 | 
| -  AssertNoAllocation no_alloc;
 | 
|    Object* equal_prefix_result = Smi::FromInt(EQUAL);
 | 
|    int prefix_length = x->length();
 | 
|    if (y->length() < prefix_length) {
 | 
| @@ -6940,8 +6936,8 @@ static Object* FlatStringCompare(String* x, String* y) {
 | 
|      equal_prefix_result = Smi::FromInt(LESS);
 | 
|    }
 | 
|    int r;
 | 
| -  String::FlatContent x_content = x->GetFlatContent(no_alloc);
 | 
| -  String::FlatContent y_content = y->GetFlatContent(no_alloc);
 | 
| +  String::FlatContent x_content = x->GetFlatContent();
 | 
| +  String::FlatContent y_content = y->GetFlatContent();
 | 
|    if (x_content.IsAscii()) {
 | 
|      Vector<const char> x_chars = x_content.ToAsciiVector();
 | 
|      if (y_content.IsAscii()) {
 | 
| @@ -8838,7 +8834,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DateParseString) {
 | 
|    FixedArray* output_array = FixedArray::cast(output->elements());
 | 
|    RUNTIME_ASSERT(output_array->length() >= DateParser::OUTPUT_SIZE);
 | 
|    bool result;
 | 
| -  String::FlatContent str_content = str->GetFlatContent(no_allocation);
 | 
| +  String::FlatContent str_content = str->GetFlatContent();
 | 
|    if (str_content.IsAscii()) {
 | 
|      result = DateParser::Parse(str_content.ToAsciiVector(),
 | 
|                                 output_array,
 | 
| @@ -12823,10 +12819,9 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_ListNatives) {
 | 
|  
 | 
|  RUNTIME_FUNCTION(MaybeObject*, Runtime_Log) {
 | 
|    ASSERT(args.length() == 2);
 | 
| -  AssertNoAllocation no_alloc;
 | 
|    CONVERT_CHECKED(String, format, args[0]);
 | 
|    CONVERT_CHECKED(JSArray, elms, args[1]);
 | 
| -  String::FlatContent format_content = format->GetFlatContent(no_alloc);
 | 
| +  String::FlatContent format_content = format->GetFlatContent();
 | 
|    RUNTIME_ASSERT(format_content.IsAscii());
 | 
|    Vector<const char> chars = format_content.ToAsciiVector();
 | 
|    LOGGER->LogRuntime(chars, elms);
 | 
| 
 |