| Index: src/compiler.h
|
| diff --git a/src/compiler.h b/src/compiler.h
|
| index 0e50075021e562cdb227449b4f96cdff1bf4d278..f9acb66c089b38d86bb1f15e753edb03a4a98fdc 100644
|
| --- a/src/compiler.h
|
| +++ b/src/compiler.h
|
| @@ -8,7 +8,6 @@
|
| #include "src/allocation.h"
|
| #include "src/ast.h"
|
| #include "src/bailout-reason.h"
|
| -#include "src/compilation-dependencies.h"
|
| #include "src/zone.h"
|
|
|
| namespace v8 {
|
| @@ -300,6 +299,18 @@
|
| deferred_handles_ = deferred_handles;
|
| }
|
|
|
| + ZoneList<Handle<HeapObject> >* dependencies(
|
| + DependentCode::DependencyGroup group) {
|
| + if (dependencies_[group] == NULL) {
|
| + dependencies_[group] = new(zone_) ZoneList<Handle<HeapObject> >(2, zone_);
|
| + }
|
| + return dependencies_[group];
|
| + }
|
| +
|
| + void CommitDependencies(Handle<Code> code);
|
| +
|
| + void RollbackDependencies();
|
| +
|
| void ReopenHandlesInNewHandleScope() {
|
| unoptimized_code_ = Handle<Code>(*unoptimized_code_);
|
| }
|
| @@ -352,7 +363,21 @@
|
| int TraceInlinedFunction(Handle<SharedFunctionInfo> shared,
|
| SourcePosition position, int pareint_id);
|
|
|
| - CompilationDependencies* dependencies() { return &dependencies_; }
|
| + Handle<Foreign> object_wrapper() {
|
| + if (object_wrapper_.is_null()) {
|
| + object_wrapper_ =
|
| + isolate()->factory()->NewForeign(reinterpret_cast<Address>(this));
|
| + }
|
| + return object_wrapper_;
|
| + }
|
| +
|
| + void AbortDueToDependencyChange() {
|
| + aborted_due_to_dependency_change_ = true;
|
| + }
|
| +
|
| + bool HasAbortedDueToDependencyChange() const {
|
| + return aborted_due_to_dependency_change_;
|
| + }
|
|
|
| bool HasSameOsrEntry(Handle<JSFunction> function, BailoutId osr_ast_id) {
|
| return osr_ast_id_ == osr_ast_id && function.is_identical_to(closure());
|
| @@ -435,8 +460,7 @@
|
|
|
| DeferredHandles* deferred_handles_;
|
|
|
| - // Dependencies for this compilation, e.g. stable maps.
|
| - CompilationDependencies dependencies_;
|
| + ZoneList<Handle<HeapObject> >* dependencies_[DependentCode::kGroupCount];
|
|
|
| BailoutReason bailout_reason_;
|
|
|
| @@ -453,7 +477,13 @@
|
| // Number of parameters used for compilation of stubs that require arguments.
|
| int parameter_count_;
|
|
|
| + Handle<Foreign> object_wrapper_;
|
| +
|
| int optimization_id_;
|
| +
|
| + // This flag is used by the main thread to track whether this compilation
|
| + // should be abandoned due to dependency change.
|
| + bool aborted_due_to_dependency_change_;
|
|
|
| int osr_expr_stack_height_;
|
|
|
|
|