OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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 <cstring> | 5 #include <cstring> |
6 #include <fstream> | 6 #include <fstream> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "test/cctest/interpreter/bytecode-expectations-printer.h" | 9 #include "test/cctest/interpreter/bytecode-expectations-printer.h" |
10 | 10 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 bool top_level_; | 86 bool top_level_; |
87 bool do_expressions_; | 87 bool do_expressions_; |
88 bool ignition_generators_; | 88 bool ignition_generators_; |
89 bool verbose_; | 89 bool verbose_; |
90 BytecodeExpectationsPrinter::ConstantPoolType const_pool_type_; | 90 BytecodeExpectationsPrinter::ConstantPoolType const_pool_type_; |
91 std::vector<std::string> input_filenames_; | 91 std::vector<std::string> input_filenames_; |
92 std::string output_filename_; | 92 std::string output_filename_; |
93 std::string test_function_name_; | 93 std::string test_function_name_; |
94 }; | 94 }; |
95 | 95 |
96 class ArrayBufferAllocator final : public v8::ArrayBuffer::Allocator { | |
97 public: | |
98 void* Allocate(size_t length) override { | |
99 void* data = AllocateUninitialized(length); | |
100 if (data != nullptr) memset(data, 0, length); | |
101 return data; | |
102 } | |
103 void* AllocateUninitialized(size_t length) override { return malloc(length); } | |
104 void Free(void* data, size_t) override { free(data); } | |
105 }; | |
106 | |
107 class V8InitializationScope final { | 96 class V8InitializationScope final { |
108 public: | 97 public: |
109 explicit V8InitializationScope(const char* exec_path); | 98 explicit V8InitializationScope(const char* exec_path); |
110 ~V8InitializationScope(); | 99 ~V8InitializationScope(); |
111 | 100 |
112 v8::Platform* platform() const { return platform_.get(); } | 101 v8::Platform* platform() const { return platform_.get(); } |
113 v8::Isolate* isolate() const { return isolate_; } | 102 v8::Isolate* isolate() const { return isolate_; } |
114 | 103 |
115 private: | 104 private: |
116 v8::base::SmartPointer<v8::Platform> platform_; | 105 v8::base::SmartPointer<v8::Platform> platform_; |
| 106 v8::base::SmartPointer<v8::ArrayBuffer::Allocator> allocator_; |
117 v8::Isolate* isolate_; | 107 v8::Isolate* isolate_; |
118 | 108 |
119 DISALLOW_COPY_AND_ASSIGN(V8InitializationScope); | 109 DISALLOW_COPY_AND_ASSIGN(V8InitializationScope); |
120 }; | 110 }; |
121 | 111 |
122 BytecodeExpectationsPrinter::ConstantPoolType ParseConstantPoolType( | 112 BytecodeExpectationsPrinter::ConstantPoolType ParseConstantPoolType( |
123 const char* type_string) { | 113 const char* type_string) { |
124 if (strcmp(type_string, "number") == 0) { | 114 if (strcmp(type_string, "number") == 0) { |
125 return BytecodeExpectationsPrinter::ConstantPoolType::kNumber; | 115 return BytecodeExpectationsPrinter::ConstantPoolType::kNumber; |
126 } else if (strcmp(type_string, "string") == 0) { | 116 } else if (strcmp(type_string, "string") == 0) { |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
356 : platform_(v8::platform::CreateDefaultPlatform()) { | 346 : platform_(v8::platform::CreateDefaultPlatform()) { |
357 i::FLAG_ignition = true; | 347 i::FLAG_ignition = true; |
358 i::FLAG_always_opt = false; | 348 i::FLAG_always_opt = false; |
359 i::FLAG_allow_natives_syntax = true; | 349 i::FLAG_allow_natives_syntax = true; |
360 | 350 |
361 v8::V8::InitializeICUDefaultLocation(exec_path); | 351 v8::V8::InitializeICUDefaultLocation(exec_path); |
362 v8::V8::InitializeExternalStartupData(exec_path); | 352 v8::V8::InitializeExternalStartupData(exec_path); |
363 v8::V8::InitializePlatform(platform_.get()); | 353 v8::V8::InitializePlatform(platform_.get()); |
364 v8::V8::Initialize(); | 354 v8::V8::Initialize(); |
365 | 355 |
366 ArrayBufferAllocator allocator; | |
367 v8::Isolate::CreateParams create_params; | 356 v8::Isolate::CreateParams create_params; |
368 create_params.array_buffer_allocator = &allocator; | 357 allocator_.Reset(v8::ArrayBuffer::Allocator::NewDefaultAllocator()); |
| 358 create_params.array_buffer_allocator = allocator_.get(); |
369 | 359 |
370 isolate_ = v8::Isolate::New(create_params); | 360 isolate_ = v8::Isolate::New(create_params); |
371 } | 361 } |
372 | 362 |
373 V8InitializationScope::~V8InitializationScope() { | 363 V8InitializationScope::~V8InitializationScope() { |
374 isolate_->Dispose(); | 364 isolate_->Dispose(); |
375 v8::V8::Dispose(); | 365 v8::V8::Dispose(); |
376 v8::V8::ShutdownPlatform(); | 366 v8::V8::ShutdownPlatform(); |
377 } | 367 } |
378 | 368 |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
575 } | 565 } |
576 } | 566 } |
577 | 567 |
578 if (!options.rebaseline()) { | 568 if (!options.rebaseline()) { |
579 if (!WriteExpectationsFile(snippet_list, platform, options, | 569 if (!WriteExpectationsFile(snippet_list, platform, options, |
580 options.output_filename())) { | 570 options.output_filename())) { |
581 return 3; | 571 return 3; |
582 } | 572 } |
583 } | 573 } |
584 } | 574 } |
OLD | NEW |