6458a5296b
Move the persistent compilation state and Isolate inputs (such as the allocator, shared AST constants, hash seed, logger, etc.) which survives across both parse and compile, out of ParseInfo and into a new UnoptimizedCompileState class. Also add UnoptimizedCompilePerThreadState for per-thread state such as stack limit and RCS. In particular, this new state survives the ParseInfo being destructed, which means it is available after off-thread finalization. This allows a followup to access the PendingCompilationErrorHandler after finalization and report errors on merge. Bug: v8:10314 Change-Id: Ia186bc0f267c704efd771aa1895f50a4525a8364 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2105636 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#67329}
57 lines
1.4 KiB
C++
57 lines
1.4 KiB
C++
// 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.
|
|
|
|
#ifndef V8_UNITTESTS_TEST_HELPERS_H_
|
|
#define V8_UNITTESTS_TEST_HELPERS_H_
|
|
|
|
#include <memory>
|
|
|
|
#include "include/v8.h"
|
|
#include "src/parsing/parse-info.h"
|
|
|
|
namespace v8 {
|
|
|
|
class Isolate;
|
|
|
|
namespace internal {
|
|
|
|
class Object;
|
|
template <typename T>
|
|
class Handle;
|
|
class Isolate;
|
|
|
|
namespace test {
|
|
|
|
class ScriptResource : public v8::String::ExternalOneByteStringResource {
|
|
public:
|
|
ScriptResource(const char* data, size_t length)
|
|
: data_(data), length_(length) {}
|
|
~ScriptResource() override = default;
|
|
|
|
const char* data() const override { return data_; }
|
|
size_t length() const override { return length_; }
|
|
|
|
private:
|
|
const char* data_;
|
|
size_t length_;
|
|
|
|
DISALLOW_COPY_AND_ASSIGN(ScriptResource);
|
|
};
|
|
|
|
Handle<String> CreateSource(
|
|
Isolate* isolate,
|
|
v8::String::ExternalOneByteStringResource* maybe_resource);
|
|
Handle<SharedFunctionInfo> CreateSharedFunctionInfo(
|
|
Isolate* isolate,
|
|
v8::String::ExternalOneByteStringResource* maybe_resource);
|
|
std::unique_ptr<ParseInfo> OuterParseInfoForShared(
|
|
Isolate* isolate, Handle<SharedFunctionInfo> shared,
|
|
UnoptimizedCompileState* state);
|
|
|
|
} // namespace test
|
|
} // namespace internal
|
|
} // namespace v8
|
|
|
|
#endif // V8_UNITTESTS_TEST_HELPERS_H_
|