Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Side by Side Diff: test/unittests/interpreter/bytecode-array-builder-unittest.cc

Issue 1676883002: [runtime] Optimize and unify rest parameters. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/interpreter/bytecode-array-builder.h" 7 #include "src/interpreter/bytecode-array-builder.h"
8 #include "src/interpreter/bytecode-array-iterator.h" 8 #include "src/interpreter/bytecode-array-iterator.h"
9 #include "src/interpreter/bytecode-register-allocator.h" 9 #include "src/interpreter/bytecode-register-allocator.h"
10 #include "test/unittests/test-utils.h" 10 #include "test/unittests/test-utils.h"
11 11
12 namespace v8 { 12 namespace v8 {
13 namespace internal { 13 namespace internal {
14 namespace interpreter { 14 namespace interpreter {
15 15
16 class BytecodeArrayBuilderTest : public TestWithIsolateAndZone { 16 class BytecodeArrayBuilderTest : public TestWithIsolateAndZone {
17 public: 17 public:
18 BytecodeArrayBuilderTest() {} 18 BytecodeArrayBuilderTest() {}
19 ~BytecodeArrayBuilderTest() override {} 19 ~BytecodeArrayBuilderTest() override {}
20 }; 20 };
21 21
22 22
23 TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { 23 TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) {
24 BytecodeArrayBuilder builder(isolate(), zone(), 0, 1, 131); 24 BytecodeArrayBuilder builder(isolate(), zone(), 0, 1, 131);
25 25
26 CHECK_EQ(builder.locals_count(), 131); 26 CHECK_EQ(builder.locals_count(), 131);
27 CHECK_EQ(builder.context_count(), 1); 27 CHECK_EQ(builder.context_count(), 1);
28 CHECK_EQ(builder.fixed_register_count(), 132); 28 CHECK_EQ(builder.fixed_register_count(), 132);
29 29
30 // Emit argument creation operations. CreateRestArguments should 30 // Emit argument creation operations.
31 // be output before any bytecodes that change constant pool.
32 builder.CreateArguments(CreateArgumentsType::kMappedArguments) 31 builder.CreateArguments(CreateArgumentsType::kMappedArguments)
33 .CreateArguments(CreateArgumentsType::kUnmappedArguments) 32 .CreateArguments(CreateArgumentsType::kUnmappedArguments)
34 .CreateRestArguments(0); 33 .CreateArguments(CreateArgumentsType::kRestParameter);
35 34
36 // Emit constant loads. 35 // Emit constant loads.
37 builder.LoadLiteral(Smi::FromInt(0)) 36 builder.LoadLiteral(Smi::FromInt(0))
38 .LoadLiteral(Smi::FromInt(8)) 37 .LoadLiteral(Smi::FromInt(8))
39 .LoadLiteral(Smi::FromInt(10000000)) 38 .LoadLiteral(Smi::FromInt(10000000))
40 .LoadUndefined() 39 .LoadUndefined()
41 .LoadNull() 40 .LoadNull()
42 .LoadTheHole() 41 .LoadTheHole()
43 .LoadTrue() 42 .LoadTrue()
44 .LoadFalse(); 43 .LoadFalse();
(...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 iterator.Advance(); 658 iterator.Advance();
660 } 659 }
661 CHECK_EQ(iterator.current_bytecode(), Bytecode::kReturn); 660 CHECK_EQ(iterator.current_bytecode(), Bytecode::kReturn);
662 iterator.Advance(); 661 iterator.Advance();
663 CHECK(iterator.done()); 662 CHECK(iterator.done());
664 } 663 }
665 664
666 } // namespace interpreter 665 } // namespace interpreter
667 } // namespace internal 666 } // namespace internal
668 } // namespace v8 667 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698