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
3// found in the LICENSE file.
4
5#ifndef TEST_FUZZER_FUZZER_SUPPORT_H_
6#define TEST_FUZZER_FUZZER_SUPPORT_H_
7
8#include "include/v8.h"
9
10namespace v8_fuzzer {
11
12class FuzzerSupport {
13 public:
14  FuzzerSupport(int* argc, char*** argv);
15  ~FuzzerSupport();
16
17  static FuzzerSupport* Get();
18
19  v8::Isolate* GetIsolate();
20  v8::Local<v8::Context> GetContext();
21
22 private:
23  // Prevent copying. Not implemented.
24  FuzzerSupport(const FuzzerSupport&);
25  FuzzerSupport& operator=(const FuzzerSupport&);
26
27  class ArrayBufferAllocator;
28
29  v8::Platform* platform_;
30  ArrayBufferAllocator* allocator_;
31  v8::Isolate* isolate_;
32  v8::Global<v8::Context> context_;
33};
34
35}  // namespace
36
37#endif  //  TEST_FUZZER_FUZZER_SUPPORT_H_
38