#include "src/codegen/tick-counter.h"
#include "src/compiler/compilation-dependencies.h"
#include "src/compiler/compiler-source-position-table.h"
#include "src/compiler/js-context-specialization.h"
#include "src/compiler/js-graph.h"
#include "src/compiler/js-heap-broker.h"
#include "src/compiler/js-operator.h"
#include "src/compiler/node-matchers.h"
#include "src/compiler/node-properties.h"
#include "src/compiler/simplified-operator.h"
#include "src/heap/factory.h"
#include "src/objects/contexts.h"
#include "src/objects/objects-inl.h"
#include "src/objects/property.h"
#include "test/cctest/cctest.h"
#include "test/cctest/compiler/function-tester.h"
#include "test/cctest/compiler/js-heap-broker-base.h"
namespace v8 {
namespace internal {
namespace compiler {
class ContextSpecializationTester : public HandleAndZoneScope,
public JSHeapBrokerTestBase { … };
void ContextSpecializationTester::CheckChangesToValue(
Node* node, DirectHandle<HeapObject> expected_value) { … }
void ContextSpecializationTester::CheckContextInputAndDepthChanges(
Node* node, DirectHandle<Context> expected_new_context_object,
size_t expected_new_depth) { … }
void ContextSpecializationTester::CheckContextInputAndDepthChanges(
Node* node, Node* expected_new_context, size_t expected_new_depth) { … }
namespace {
Handle<Context> NewContextForTesting(Isolate* isolate,
DirectHandle<Context> previous) { … }
Handle<Context> NewCanonicalContextForTesting(ContextSpecializationTester& t,
DirectHandle<Context> previous) { … }
}
static const int slot_index = …;
TEST(ReduceJSLoadContext0) { … }
TEST(ReduceJSLoadContext1) { … }
TEST(ReduceJSLoadContext2) { … }
TEST(ReduceJSLoadContext3) { … }
TEST(ReduceJSStoreContext0) { … }
TEST(ReduceJSStoreContext1) { … }
TEST(ReduceJSStoreContext2) { … }
TEST(ReduceJSStoreContext3) { … }
TEST(SpecializeJSFunction_ToConstant1) { … }
TEST(SpecializeJSFunction_ToConstant2) { … }
TEST(SpecializeJSFunction_ToConstant3) { … }
TEST(SpecializeJSFunction_ToConstant_uninit) { … }
}
}
}