| // Copyright 2016 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 "src/v8.h" |
| |
| #include "src/interpreter/bytecode-source-info.h" |
| #include "test/unittests/test-utils.h" |
| |
| namespace v8 { |
| namespace internal { |
| namespace interpreter { |
| |
| TEST(BytecodeSourceInfo, Operations) { |
| BytecodeSourceInfo x(0, true); |
| CHECK_EQ(x.source_position(), 0); |
| CHECK_EQ(x.is_statement(), true); |
| CHECK_EQ(x.is_valid(), true); |
| x.set_invalid(); |
| CHECK_EQ(x.is_statement(), false); |
| CHECK_EQ(x.is_valid(), false); |
| |
| x.MakeStatementPosition(1); |
| BytecodeSourceInfo y(1, true); |
| CHECK(x == y); |
| CHECK(!(x != y)); |
| |
| x.set_invalid(); |
| CHECK(!(x == y)); |
| CHECK(x != y); |
| |
| y.MakeStatementPosition(1); |
| CHECK_EQ(y.source_position(), 1); |
| CHECK_EQ(y.is_statement(), true); |
| |
| y.MakeStatementPosition(2); |
| CHECK_EQ(y.source_position(), 2); |
| CHECK_EQ(y.is_statement(), true); |
| |
| y.set_invalid(); |
| y.MakeExpressionPosition(3); |
| CHECK_EQ(y.source_position(), 3); |
| CHECK_EQ(y.is_statement(), false); |
| |
| y.MakeStatementPosition(3); |
| CHECK_EQ(y.source_position(), 3); |
| CHECK_EQ(y.is_statement(), true); |
| } |
| |
| } // namespace interpreter |
| } // namespace internal |
| } // namespace v8 |