Upgrade V8 to 5.1.281.57
Change-Id: Id981b686b4d587ac31697662eb98bb34be42ad90
diff --git a/src/code-factory.cc b/src/code-factory.cc
index 9898282..fbfdd5f 100644
--- a/src/code-factory.cc
+++ b/src/code-factory.cc
@@ -119,13 +119,6 @@
// static
-Callable CodeFactory::CompareNilIC(Isolate* isolate, NilValue nil_value) {
- Handle<Code> code = CompareNilICStub::GetUninitialized(isolate, nil_value);
- return Callable(code, CompareNilDescriptor(isolate));
-}
-
-
-// static
Callable CodeFactory::BinaryOpIC(Isolate* isolate, Token::Value op) {
BinaryOpICStub stub(isolate, op);
return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
@@ -141,8 +134,8 @@
// static
Callable CodeFactory::ToBoolean(Isolate* isolate) {
- Handle<Code> code = ToBooleanStub::GetUninitialized(isolate);
- return Callable(code, ToBooleanDescriptor(isolate));
+ ToBooleanStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
}
@@ -154,6 +147,18 @@
// static
+Callable CodeFactory::NonNumberToNumber(Isolate* isolate) {
+ NonNumberToNumberStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::StringToNumber(Isolate* isolate) {
+ StringToNumberStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
Callable CodeFactory::ToString(Isolate* isolate) {
ToStringStub stub(isolate);
return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
@@ -168,6 +173,12 @@
// static
+Callable CodeFactory::ToInteger(Isolate* isolate) {
+ ToIntegerStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
Callable CodeFactory::ToLength(Isolate* isolate) {
ToLengthStub stub(isolate);
return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
@@ -201,6 +212,83 @@
return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
}
+// static
+Callable CodeFactory::Add(Isolate* isolate) {
+ AddStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::Subtract(Isolate* isolate) {
+ SubtractStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::BitwiseAnd(Isolate* isolate) {
+ BitwiseAndStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::BitwiseOr(Isolate* isolate) {
+ BitwiseOrStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::BitwiseXor(Isolate* isolate) {
+ BitwiseXorStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::LessThan(Isolate* isolate) {
+ LessThanStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::LessThanOrEqual(Isolate* isolate) {
+ LessThanOrEqualStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::GreaterThan(Isolate* isolate) {
+ GreaterThanStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::GreaterThanOrEqual(Isolate* isolate) {
+ GreaterThanOrEqualStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::Equal(Isolate* isolate) {
+ EqualStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::NotEqual(Isolate* isolate) {
+ NotEqualStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::StrictEqual(Isolate* isolate) {
+ StrictEqualStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::StrictNotEqual(Isolate* isolate) {
+ StrictNotEqualStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
// static
Callable CodeFactory::StringAdd(Isolate* isolate, StringAddFlags flags,
@@ -209,13 +297,65 @@
return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
}
+// static
+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
-Callable CodeFactory::StringCompare(Isolate* isolate) {
- StringCompareStub stub(isolate);
+Callable CodeFactory::StringEqual(Isolate* isolate) {
+ StringEqualStub stub(isolate);
return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
}
+// static
+Callable CodeFactory::StringNotEqual(Isolate* isolate) {
+ StringNotEqualStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// 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) {
@@ -225,6 +365,12 @@
// static
+Callable CodeFactory::StoreInterceptor(Isolate* isolate) {
+ StoreInterceptorStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
Callable CodeFactory::Typeof(Isolate* isolate) {
TypeofStub stub(isolate);
return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
@@ -310,6 +456,13 @@
return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
}
+#define SIMD128_ALLOC(TYPE, Type, type, lane_count, lane_type) \
+ Callable CodeFactory::Allocate##Type(Isolate* isolate) { \
+ Allocate##Type##Stub stub(isolate); \
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor()); \
+ }
+SIMD128_TYPES(SIMD128_ALLOC)
+#undef SIMD128_ALLOC
// static
Callable CodeFactory::AllocateInNewSpace(Isolate* isolate) {
@@ -326,8 +479,9 @@
// static
-Callable CodeFactory::Call(Isolate* isolate, ConvertReceiverMode mode) {
- return Callable(isolate->builtins()->Call(mode),
+Callable CodeFactory::Call(Isolate* isolate, ConvertReceiverMode mode,
+ TailCallMode tail_call_mode) {
+ return Callable(isolate->builtins()->Call(mode, tail_call_mode),
CallTrampolineDescriptor(isolate));
}