summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/js-generic-lowering.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/js-generic-lowering.cc')
-rw-r--r--deps/v8/src/compiler/js-generic-lowering.cc29
1 files changed, 28 insertions, 1 deletions
diff --git a/deps/v8/src/compiler/js-generic-lowering.cc b/deps/v8/src/compiler/js-generic-lowering.cc
index aa26b33997..99c905dae3 100644
--- a/deps/v8/src/compiler/js-generic-lowering.cc
+++ b/deps/v8/src/compiler/js-generic-lowering.cc
@@ -14,6 +14,8 @@
#include "src/compiler/node-matchers.h"
#include "src/compiler/node-properties.h"
#include "src/compiler/operator-properties.h"
+#include "src/feedback-vector.h"
+#include "src/objects/scope-info.h"
namespace v8 {
namespace internal {
@@ -279,6 +281,16 @@ void JSGenericLowering::LowerJSStoreDataPropertyInLiteral(Node* node) {
ReplaceWithRuntimeCall(node, Runtime::kDefineDataPropertyInLiteral);
}
+void JSGenericLowering::LowerJSStoreInArrayLiteral(Node* node) {
+ Callable callable =
+ Builtins::CallableFor(isolate(), Builtins::kStoreInArrayLiteralIC);
+ CallDescriptor::Flags flags = FrameStateFlagForCall(node);
+ FeedbackParameter const& p = FeedbackParameterOf(node->op());
+ node->InsertInput(zone(), 3, jsgraph()->SmiConstant(p.feedback().index()));
+ node->InsertInput(zone(), 4, jsgraph()->HeapConstant(p.feedback().vector()));
+ ReplaceWithStubCall(node, callable, flags);
+}
+
void JSGenericLowering::LowerJSDeleteProperty(Node* node) {
CallDescriptor::Flags flags = FrameStateFlagForCall(node);
Callable callable =
@@ -365,6 +377,14 @@ void JSGenericLowering::LowerJSCreateArray(Node* node) {
NodeProperties::ChangeOp(node, common()->Call(call_descriptor));
}
+void JSGenericLowering::LowerJSCreateArrayIterator(Node* node) {
+ UNREACHABLE(); // Eliminated in typed lowering.
+}
+
+void JSGenericLowering::LowerJSCreateCollectionIterator(Node* node) {
+ UNREACHABLE(); // Eliminated in typed lowering.
+}
+
void JSGenericLowering::LowerJSCreateBoundFunction(Node* node) {
UNREACHABLE(); // Eliminated in typed lowering.
}
@@ -430,6 +450,13 @@ void JSGenericLowering::LowerJSCreatePromise(Node* node) {
UNREACHABLE(); // Eliminated in typed lowering.
}
+void JSGenericLowering::LowerJSCreateTypedArray(Node* node) {
+ CallDescriptor::Flags flags = FrameStateFlagForCall(node);
+ Callable callable =
+ Builtins::CallableFor(isolate(), Builtins::kCreateTypedArray);
+ ReplaceWithStubCall(node, callable, flags);
+}
+
void JSGenericLowering::LowerJSCreateLiteralArray(Node* node) {
CreateLiteralParameters const& p = CreateLiteralParametersOf(node->op());
CallDescriptor::Flags flags = FrameStateFlagForCall(node);
@@ -508,7 +535,7 @@ void JSGenericLowering::LowerJSCreateWithContext(Node* node) {
}
void JSGenericLowering::LowerJSCreateBlockContext(Node* node) {
- Handle<ScopeInfo> scope_info = OpParameter<Handle<ScopeInfo>>(node);
+ Handle<ScopeInfo> scope_info = ScopeInfoOf(node->op());
node->InsertInput(zone(), 0, jsgraph()->HeapConstant(scope_info));
ReplaceWithRuntimeCall(node, Runtime::kPushBlockContext);
}