| Index: src/parsing/parse-info.h
|
| diff --git a/src/parsing/parse-info.h b/src/parsing/parse-info.h
|
| index 02e413fd96dd8b537be5626adada7ee49c88d50d..b3f47692a19da613363e8220abf74c69903c33eb 100644
|
| --- a/src/parsing/parse-info.h
|
| +++ b/src/parsing/parse-info.h
|
| @@ -4,6 +4,8 @@
|
|
|
| #ifndef V8_PARSING_PARSE_INFO_H_
|
| #define V8_PARSING_PARSE_INFO_H_
|
| +
|
| +#include <memory>
|
|
|
| #include "include/v8.h"
|
| #include "src/globals.h"
|
| @@ -16,6 +18,7 @@
|
|
|
| namespace internal {
|
|
|
| +class AccountingAllocator;
|
| class AstRawString;
|
| class AstValueFactory;
|
| class DeclarationScope;
|
| @@ -29,13 +32,18 @@
|
| // A container for the inputs, configuration options, and outputs of parsing.
|
| class V8_EXPORT_PRIVATE ParseInfo {
|
| public:
|
| - explicit ParseInfo(Zone* zone);
|
| - ParseInfo(Zone* zone, Handle<Script> script);
|
| - ParseInfo(Zone* zone, Handle<SharedFunctionInfo> shared);
|
| + explicit ParseInfo(AccountingAllocator* zone_allocator);
|
| + ParseInfo(Handle<Script> script);
|
| + ParseInfo(Handle<SharedFunctionInfo> shared);
|
| +
|
| + // TODO(rmcilroy): Remove once Hydrogen no longer needs this.
|
| + ParseInfo(Handle<SharedFunctionInfo> shared, std::shared_ptr<Zone> zone);
|
|
|
| ~ParseInfo();
|
|
|
| - Zone* zone() const { return zone_; }
|
| + Zone* zone() const { return zone_.get(); }
|
| +
|
| + std::shared_ptr<Zone> zone_shared() const { return zone_; }
|
|
|
| // Convenience accessor methods for flags.
|
| #define FLAG_ACCESSOR(flag, getter, setter) \
|
| @@ -226,7 +234,7 @@
|
| };
|
|
|
| //------------- Inputs to parsing and scope analysis -----------------------
|
| - Zone* zone_;
|
| + std::shared_ptr<Zone> zone_;
|
| unsigned flags_;
|
| ScriptCompiler::ExternalSourceStream* source_stream_;
|
| ScriptCompiler::StreamedSource::Encoding source_stream_encoding_;
|
|
|