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()); |