| Index: src/code-factory.cc
 | 
| diff --git a/src/code-factory.cc b/src/code-factory.cc
 | 
| index 79b2ea004c2e074f3385a3efa86d9d00d2642844..a9edead438dd016395cad7f3b5a3bc4aeba70980 100644
 | 
| --- a/src/code-factory.cc
 | 
| +++ b/src/code-factory.cc
 | 
| @@ -237,11 +237,28 @@ Callable CodeFactory::StringAdd(Isolate* isolate, StringAddFlags flags,
 | 
|    return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
 | 
|  }
 | 
|  
 | 
| -
 | 
|  // static
 | 
| -Callable CodeFactory::StringCompare(Isolate* isolate) {
 | 
| -  StringCompareStub stub(isolate);
 | 
| -  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
 | 
| +Callable CodeFactory::StringCompare(Isolate* isolate, Token::Value token) {
 | 
| +  switch (token) {
 | 
| +    case Token::EQ:
 | 
| +    case Token::EQ_STRICT:
 | 
| +      return StringEqual(isolate);
 | 
| +    case Token::NE:
 | 
| +    case Token::NE_STRICT:
 | 
| +      return StringNotEqual(isolate);
 | 
| +    case Token::LT:
 | 
| +      return StringLessThan(isolate);
 | 
| +    case Token::GT:
 | 
| +      return StringGreaterThan(isolate);
 | 
| +    case Token::LTE:
 | 
| +      return StringLessThanOrEqual(isolate);
 | 
| +    case Token::GTE:
 | 
| +      return StringGreaterThanOrEqual(isolate);
 | 
| +    default:
 | 
| +      break;
 | 
| +  }
 | 
| +  UNREACHABLE();
 | 
| +  return StringEqual(isolate);
 | 
|  }
 | 
|  
 | 
|  // static
 | 
| @@ -257,6 +274,30 @@ Callable CodeFactory::StringNotEqual(Isolate* isolate) {
 | 
|  }
 | 
|  
 | 
|  // static
 | 
| +Callable CodeFactory::StringLessThan(Isolate* isolate) {
 | 
| +  StringLessThanStub stub(isolate);
 | 
| +  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
 | 
| +}
 | 
| +
 | 
| +// static
 | 
| +Callable CodeFactory::StringLessThanOrEqual(Isolate* isolate) {
 | 
| +  StringLessThanOrEqualStub stub(isolate);
 | 
| +  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
 | 
| +}
 | 
| +
 | 
| +// static
 | 
| +Callable CodeFactory::StringGreaterThan(Isolate* isolate) {
 | 
| +  StringGreaterThanStub stub(isolate);
 | 
| +  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
 | 
| +}
 | 
| +
 | 
| +// static
 | 
| +Callable CodeFactory::StringGreaterThanOrEqual(Isolate* isolate) {
 | 
| +  StringGreaterThanOrEqualStub stub(isolate);
 | 
| +  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
 | 
| +}
 | 
| +
 | 
| +// static
 | 
|  Callable CodeFactory::SubString(Isolate* isolate) {
 | 
|    SubStringStub stub(isolate);
 | 
|    return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
 | 
| 
 |