| Index: src/ic.cc
 | 
| diff --git a/src/ic.cc b/src/ic.cc
 | 
| index a00df8537c0724e5c1726d127f76641989809850..06e68ec091f083eaf8b99b1a08b31673cf5d0ad3 100644
 | 
| --- a/src/ic.cc
 | 
| +++ b/src/ic.cc
 | 
| @@ -547,7 +547,7 @@ MaybeObject* LoadIC::Load(Handle<Object> object,
 | 
|    if (FLAG_use_ic) {
 | 
|      // Use specialized code for getting prototype of functions.
 | 
|      if (object->IsJSFunction() &&
 | 
| -        name->Equals(isolate()->heap()->prototype_string()) &&
 | 
| +        String::Equals(isolate()->factory()->prototype_string(), name) &&
 | 
|          Handle<JSFunction>::cast(object)->should_have_prototype()) {
 | 
|        Handle<Code> stub;
 | 
|        if (state() == UNINITIALIZED) {
 | 
| @@ -889,13 +889,14 @@ Handle<Code> LoadIC::CompileHandler(LookupResult* lookup,
 | 
|                                      Handle<String> name,
 | 
|                                      Handle<Object> unused,
 | 
|                                      InlineCacheHolderFlag cache_holder) {
 | 
| -  if (object->IsString() && name->Equals(isolate()->heap()->length_string())) {
 | 
| +  if (object->IsString() &&
 | 
| +      String::Equals(isolate()->factory()->length_string(), name)) {
 | 
|      int length_index = String::kLengthOffset / kPointerSize;
 | 
|      return SimpleFieldLoad(length_index);
 | 
|    }
 | 
|  
 | 
|    if (object->IsStringWrapper() &&
 | 
| -      name->Equals(isolate()->heap()->length_string())) {
 | 
| +      String::Equals(isolate()->factory()->length_string(), name)) {
 | 
|      if (kind() == Code::LOAD_IC) {
 | 
|        StringLengthStub string_length_stub;
 | 
|        return string_length_stub.GetCode(isolate());
 | 
| @@ -1213,7 +1214,7 @@ MaybeObject* StoreIC::Store(Handle<Object> object,
 | 
|  
 | 
|    // The length property of string values is read-only. Throw in strict mode.
 | 
|    if (strict_mode() == STRICT && object->IsString() &&
 | 
| -      name->Equals(isolate()->heap()->length_string())) {
 | 
| +      String::Equals(isolate()->factory()->length_string(), name)) {
 | 
|      return TypeError("strict_read_only_property", object, name);
 | 
|    }
 | 
|  
 | 
| @@ -1400,7 +1401,7 @@ Handle<Code> StoreIC::CompileHandler(LookupResult* lookup,
 | 
|          // properties. Slow properties might indicate redefinition of the length
 | 
|          // property.
 | 
|          if (receiver->IsJSArray() &&
 | 
| -            name->Equals(isolate()->heap()->length_string()) &&
 | 
| +            String::Equals(isolate()->factory()->length_string(), name) &&
 | 
|              Handle<JSArray>::cast(receiver)->AllowsSetElementsLength() &&
 | 
|              receiver->HasFastProperties()) {
 | 
|            return compiler.CompileStoreArrayLength(receiver, lookup, name);
 | 
| 
 |