| // Copyright 2014 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "test/unittests/compiler/graph-unittest.h" |
| |
| #include "src/compiler/js-native-context-specialization.h" |
| #include "src/compiler/js-operator.h" |
| #include "src/compiler/machine-operator.h" |
| #include "src/compiler/simplified-operator.h" |
| #include "src/numbers/dtoa.h" |
| |
| namespace v8 { |
| namespace internal { |
| namespace compiler { |
| namespace js_native_context_specialization_unittest { |
| |
| class JSNativeContextSpecializationTest : public GraphTest { |
| public: |
| explicit JSNativeContextSpecializationTest(int num_parameters = 1) |
| : GraphTest(num_parameters), javascript_(zone()) {} |
| ~JSNativeContextSpecializationTest() override {} |
| |
| protected: |
| JSOperatorBuilder* javascript() { return &javascript_; } |
| |
| private: |
| JSOperatorBuilder javascript_; |
| }; |
| |
| TEST_F(JSNativeContextSpecializationTest, GetMaxStringLengthOfString) { |
| const size_t str_len = 3; |
| const size_t num_len = kBase10MaximalLength + 1; |
| |
| Node* const str_node = graph()->NewNode( |
| common()->HeapConstant(factory()->InternalizeUtf8String("str"))); |
| EXPECT_EQ( |
| JSNativeContextSpecialization::GetMaxStringLength(broker(), str_node), |
| str_len); |
| |
| Node* const num_node = graph()->NewNode(common()->NumberConstant(10.0 / 3)); |
| EXPECT_EQ( |
| JSNativeContextSpecialization::GetMaxStringLength(broker(), num_node), |
| num_len); |
| } |
| |
| } // namespace js_native_context_specialization_unittest |
| } // namespace compiler |
| } // namespace internal |
| } // namespace v8 |