Index: src/compiler/js-native-context-specialization.h |
diff --git a/src/compiler/js-native-context-specialization.h b/src/compiler/js-native-context-specialization.h |
index e23b0ff2c9eaef9e0e23062a8fb4651ba36a9c0d..45ff87f61973b699c2699a9e6f2e73badabe1b5f 100644 |
--- a/src/compiler/js-native-context-specialization.h |
+++ b/src/compiler/js-native-context-specialization.h |
@@ -6,7 +6,6 @@ |
#define V8_COMPILER_JS_NATIVE_CONTEXT_SPECIALIZATION_H_ |
#include "src/base/flags.h" |
-#include "src/compiler/access-info.h" |
#include "src/compiler/graph-reducer.h" |
namespace v8 { |
@@ -22,6 +21,7 @@ class TypeCache; |
namespace compiler { |
// Forward declarations. |
+enum class AccessMode; |
class CommonOperatorBuilder; |
class JSGraph; |
class JSOperatorBuilder; |
@@ -43,7 +43,7 @@ class JSNativeContextSpecialization final : public AdvancedReducer { |
typedef base::Flags<Flag> Flags; |
JSNativeContextSpecialization(Editor* editor, JSGraph* jsgraph, Flags flags, |
- Handle<Context> native_context, |
+ MaybeHandle<Context> native_context, |
CompilationDependencies* dependencies, |
Zone* zone); |
@@ -73,12 +73,17 @@ class JSNativeContextSpecialization final : public AdvancedReducer { |
// Adds stability dependencies on all prototypes of every class in |
// {receiver_type} up to (and including) the {holder}. |
- void AssumePrototypesStable(Type* receiver_type, Handle<JSObject> holder); |
+ void AssumePrototypesStable(Type* receiver_type, |
+ Handle<Context> native_context, |
+ Handle<JSObject> holder); |
// Assuming that {if_projection} is either IfTrue or IfFalse, adds a hint on |
// the dominating Branch that {if_projection} is the unlikely (deferred) case. |
void MarkAsDeferred(Node* if_projection); |
+ // Retrieve the native context from the given {node} if known. |
+ MaybeHandle<Context> GetNativeContext(Node* node); |
+ |
Graph* graph() const; |
JSGraph* jsgraph() const { return jsgraph_; } |
Isolate* isolate() const; |
@@ -88,18 +93,16 @@ class JSNativeContextSpecialization final : public AdvancedReducer { |
SimplifiedOperatorBuilder* simplified() const; |
MachineOperatorBuilder* machine() const; |
Flags flags() const { return flags_; } |
- Handle<Context> native_context() const { return native_context_; } |
+ MaybeHandle<Context> native_context() const { return native_context_; } |
CompilationDependencies* dependencies() const { return dependencies_; } |
Zone* zone() const { return zone_; } |
- AccessInfoFactory& access_info_factory() { return access_info_factory_; } |
JSGraph* const jsgraph_; |
Flags const flags_; |
- Handle<Context> native_context_; |
+ MaybeHandle<Context> native_context_; |
CompilationDependencies* const dependencies_; |
Zone* const zone_; |
TypeCache const& type_cache_; |
- AccessInfoFactory access_info_factory_; |
DISALLOW_COPY_AND_ASSIGN(JSNativeContextSpecialization); |
}; |