diff options
Diffstat (limited to 'deps/v8/test/unittests/compiler/js-create-lowering-unittest.cc')
-rw-r--r-- | deps/v8/test/unittests/compiler/js-create-lowering-unittest.cc | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/deps/v8/test/unittests/compiler/js-create-lowering-unittest.cc b/deps/v8/test/unittests/compiler/js-create-lowering-unittest.cc index f4a1192abf..56516c9ed0 100644 --- a/deps/v8/test/unittests/compiler/js-create-lowering-unittest.cc +++ b/deps/v8/test/unittests/compiler/js-create-lowering-unittest.cc @@ -12,6 +12,7 @@ #include "src/compiler/node-properties.h" #include "src/compiler/operator-properties.h" #include "src/isolate-inl.h" +#include "src/type-feedback-vector.h" #include "test/unittests/compiler/compiler-test-utils.h" #include "test/unittests/compiler/graph-unittest.h" #include "test/unittests/compiler/node-test-utils.h" @@ -46,7 +47,8 @@ class JSCreateLoweringTest : public TypedGraphTest { } Node* FrameState(Handle<SharedFunctionInfo> shared, Node* outer_frame_state) { - Node* state_values = graph()->NewNode(common()->StateValues(0)); + Node* state_values = + graph()->NewNode(common()->StateValues(0, SparseInputMask::Dense())); return graph()->NewNode( common()->FrameState( BailoutId::None(), OutputFrameStateCombine::Ignore(), @@ -138,13 +140,26 @@ TEST_F(JSCreateLoweringTest, JSCreateArgumentsInlinedRestArray) { // JSCreateClosure TEST_F(JSCreateLoweringTest, JSCreateClosureViaInlinedAllocation) { + if (!FLAG_turbo_lower_create_closure) return; Node* const context = UndefinedConstant(); Node* const effect = graph()->start(); Node* const control = graph()->start(); Handle<SharedFunctionInfo> shared(isolate()->number_function()->shared()); - Reduction r = - Reduce(graph()->NewNode(javascript()->CreateClosure(shared, NOT_TENURED), - context, effect, control)); + + // Create a mock feedback vector. It just has to be an array with an array + // in slot 0. + Handle<FixedArray> array = isolate()->factory()->NewFixedArray( + TypeFeedbackVector::kReservedIndexCount + 1); + array->set_map_no_write_barrier( + isolate()->heap()->type_feedback_vector_map()); + Handle<TypeFeedbackVector> vector = Handle<TypeFeedbackVector>::cast(array); + FeedbackVectorSlot slot(0); + vector->Set(slot, *vector); + VectorSlotPair pair(vector, slot); + + Reduction r = Reduce( + graph()->NewNode(javascript()->CreateClosure(shared, pair, NOT_TENURED), + context, effect, control)); ASSERT_TRUE(r.Changed()); EXPECT_THAT(r.replacement(), IsFinishRegion(IsAllocate(IsNumberConstant(JSFunction::kSize), @@ -160,9 +175,9 @@ TEST_F(JSCreateLoweringTest, JSCreateFunctionContextViaInlinedAllocation) { Node* const context = Parameter(Type::Any()); Node* const effect = graph()->start(); Node* const control = graph()->start(); - Reduction const r = - Reduce(graph()->NewNode(javascript()->CreateFunctionContext(8), closure, - context, effect, control)); + Reduction const r = Reduce( + graph()->NewNode(javascript()->CreateFunctionContext(8, FUNCTION_SCOPE), + closure, context, effect, control)); ASSERT_TRUE(r.Changed()); EXPECT_THAT(r.replacement(), IsFinishRegion(IsAllocate(IsNumberConstant(Context::SizeFor( |