aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/code-factory.cc
diff options
context:
space:
mode:
authorAli Ijaz Sheikh <ofrobots@google.com>2016-01-20 09:45:45 -0800
committerAli Ijaz Sheikh <ofrobots@google.com>2016-01-21 16:53:58 -0800
commitef4170ea03a80b21b2d8a65ce432efaa370fe2fa (patch)
treee382b1b38b729cd8155b56b441c3a563914854a3 /deps/v8/src/code-factory.cc
parent5f6dfab832979999d2f806fc1a2f1c11a25b0f35 (diff)
downloadandroid-node-v8-ef4170ea03a80b21b2d8a65ce432efaa370fe2fa.tar.gz
android-node-v8-ef4170ea03a80b21b2d8a65ce432efaa370fe2fa.tar.bz2
android-node-v8-ef4170ea03a80b21b2d8a65ce432efaa370fe2fa.zip
deps: upgrade to V8 4.8.271.17
Pick up V8 4.8 branch-head. This branch brings in @@isConcatSpreadable, @@toPrimitive and ToLength ES6 changes. For full details see: http://v8project.blogspot.de/2015/11/v8-release-48.html https://github.com/v8/v8/commit/fa163e2 Ref: https://github.com/nodejs/node/pull/4399 PR-URL: https://github.com/nodejs/node/pull/4785 Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'deps/v8/src/code-factory.cc')
-rw-r--r--deps/v8/src/code-factory.cc112
1 files changed, 88 insertions, 24 deletions
diff --git a/deps/v8/src/code-factory.cc b/deps/v8/src/code-factory.cc
index 9e776b40fc..ad6890bf22 100644
--- a/deps/v8/src/code-factory.cc
+++ b/deps/v8/src/code-factory.cc
@@ -59,17 +59,17 @@ Callable CodeFactory::KeyedLoadICInOptimizedCode(
// static
Callable CodeFactory::CallIC(Isolate* isolate, int argc,
- CallICState::CallType call_type) {
- return Callable(CallIC::initialize_stub(isolate, argc, call_type),
+ ConvertReceiverMode mode) {
+ return Callable(CallIC::initialize_stub(isolate, argc, mode),
CallFunctionWithFeedbackDescriptor(isolate));
}
// static
Callable CodeFactory::CallICInOptimizedCode(Isolate* isolate, int argc,
- CallICState::CallType call_type) {
+ ConvertReceiverMode mode) {
return Callable(
- CallIC::initialize_stub_in_optimized_code(isolate, argc, call_type),
+ CallIC::initialize_stub_in_optimized_code(isolate, argc, mode),
CallFunctionWithFeedbackAndVectorDescriptor(isolate));
}
@@ -130,24 +130,16 @@ Callable CodeFactory::CompareIC(Isolate* isolate, Token::Value op,
// static
-Callable CodeFactory::BinaryOpIC(Isolate* isolate, Token::Value op,
- Strength strength) {
- BinaryOpICStub stub(isolate, op, strength);
- return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+Callable CodeFactory::CompareNilIC(Isolate* isolate, NilValue nil_value) {
+ Handle<Code> code = CompareNilICStub::GetUninitialized(isolate, nil_value);
+ return Callable(code, CompareNilDescriptor(isolate));
}
// static
-Callable CodeFactory::LoadGlobalViaContext(Isolate* isolate, int depth) {
- LoadGlobalViaContextStub stub(isolate, depth);
- return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
-}
-
-
-// static
-Callable CodeFactory::StoreGlobalViaContext(Isolate* isolate, int depth,
- LanguageMode language_mode) {
- StoreGlobalViaContextStub stub(isolate, depth, language_mode);
+Callable CodeFactory::BinaryOpIC(Isolate* isolate, Token::Value op,
+ Strength strength) {
+ BinaryOpICStub stub(isolate, op, strength);
return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
}
@@ -183,6 +175,13 @@ Callable CodeFactory::ToString(Isolate* isolate) {
// static
+Callable CodeFactory::ToLength(Isolate* isolate) {
+ ToLengthStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+
+// static
Callable CodeFactory::ToObject(Isolate* isolate) {
ToObjectStub stub(isolate);
return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
@@ -190,6 +189,20 @@ Callable CodeFactory::ToObject(Isolate* isolate) {
// static
+Callable CodeFactory::NumberToString(Isolate* isolate) {
+ NumberToStringStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+
+// static
+Callable CodeFactory::RegExpConstructResult(Isolate* isolate) {
+ RegExpConstructResultStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+
+// static
Callable CodeFactory::StringAdd(Isolate* isolate, StringAddFlags flags,
PretenureFlag pretenure_flag) {
StringAddStub stub(isolate, flags, pretenure_flag);
@@ -227,6 +240,13 @@ Callable CodeFactory::FastCloneShallowObject(Isolate* isolate, int length) {
// static
+Callable CodeFactory::FastNewContext(Isolate* isolate, int slot_count) {
+ FastNewContextStub stub(isolate, slot_count);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+
+// static
Callable CodeFactory::FastNewClosure(Isolate* isolate,
LanguageMode language_mode,
FunctionKind kind) {
@@ -254,17 +274,61 @@ Callable CodeFactory::AllocateHeapNumber(Isolate* isolate) {
// static
-Callable CodeFactory::CallFunction(Isolate* isolate, int argc,
- CallFunctionFlags flags) {
- CallFunctionStub stub(isolate, argc, flags);
+Callable CodeFactory::AllocateMutableHeapNumber(Isolate* isolate) {
+ AllocateMutableHeapNumberStub stub(isolate);
+ return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+
+// static
+Callable CodeFactory::AllocateInNewSpace(Isolate* isolate) {
+ AllocateInNewSpaceStub stub(isolate);
return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
}
// static
-Callable CodeFactory::PushArgsAndCall(Isolate* isolate) {
- return Callable(isolate->builtins()->PushArgsAndCall(),
- PushArgsAndCallDescriptor(isolate));
+Callable CodeFactory::ArgumentAdaptor(Isolate* isolate) {
+ return Callable(isolate->builtins()->ArgumentsAdaptorTrampoline(),
+ ArgumentAdaptorDescriptor(isolate));
+}
+
+
+// static
+Callable CodeFactory::Call(Isolate* isolate, ConvertReceiverMode mode) {
+ return Callable(isolate->builtins()->Call(mode),
+ CallTrampolineDescriptor(isolate));
+}
+
+
+// static
+Callable CodeFactory::CallFunction(Isolate* isolate, ConvertReceiverMode mode) {
+ return Callable(isolate->builtins()->CallFunction(mode),
+ CallTrampolineDescriptor(isolate));
+}
+
+
+// static
+Callable CodeFactory::InterpreterPushArgsAndCall(Isolate* isolate) {
+ return Callable(isolate->builtins()->InterpreterPushArgsAndCall(),
+ InterpreterPushArgsAndCallDescriptor(isolate));
+}
+
+
+// static
+Callable CodeFactory::InterpreterPushArgsAndConstruct(Isolate* isolate) {
+ return Callable(isolate->builtins()->InterpreterPushArgsAndConstruct(),
+ InterpreterPushArgsAndConstructDescriptor(isolate));
+}
+
+
+// static
+Callable CodeFactory::InterpreterCEntry(Isolate* isolate) {
+ // TODO(rmcilroy): Deal with runtime functions that return two values.
+ // Note: If we ever use fpregs in the interpreter then we will need to
+ // save fpregs too.
+ CEntryStub stub(isolate, 1, kDontSaveFPRegs, kArgvInRegister);
+ return Callable(stub.GetCode(), InterpreterCEntryDescriptor(isolate));
}
} // namespace internal