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 5819bce7f4ec8d67cfe11aac07a372e9c6df2a9a..fab9d872905d5aa31c71994788a788dcaa86e6eb 100644 |
--- a/src/compiler/js-native-context-specialization.h |
+++ b/src/compiler/js-native-context-specialization.h |
@@ -96,6 +96,8 @@ class JSNativeContextSpecialization final : public AdvancedReducer { |
// A triple of nodes that represents a continuation. |
class ValueEffectControl final { |
public: |
+ ValueEffectControl() |
+ : value_(nullptr), effect_(nullptr), control_(nullptr) {} |
ValueEffectControl(Node* value, Node* effect, Node* control) |
: value_(value), effect_(effect), control_(control) {} |
@@ -104,9 +106,9 @@ class JSNativeContextSpecialization final : public AdvancedReducer { |
Node* control() const { return control_; } |
private: |
- Node* const value_; |
- Node* const effect_; |
- Node* const control_; |
+ Node* value_; |
+ Node* effect_; |
+ Node* control_; |
}; |
// Construct the appropriate subgraph for property access. |
@@ -115,6 +117,34 @@ class JSNativeContextSpecialization final : public AdvancedReducer { |
Node* effect, Node* control, Handle<Name> name, |
ZoneVector<Node*>* if_exceptions, PropertyAccessInfo const& access_info, |
AccessMode access_mode, LanguageMode language_mode); |
+ ValueEffectControl BuildPropertyLoad(Node* receiver, Node* context, |
+ Node* frame_state, Node* effect, |
+ Node* control, Handle<Name> name, |
+ ZoneVector<Node*>* if_exceptions, |
+ PropertyAccessInfo const& access_info, |
+ LanguageMode language_mode); |
+ |
+ ValueEffectControl BuildPropertyStore( |
+ Node* receiver, Node* value, Node* context, Node* frame_state, |
+ Node* effect, Node* control, Handle<Name> name, |
+ ZoneVector<Node*>* if_exceptions, PropertyAccessInfo const& access_info, |
+ AccessMode access_mode, LanguageMode language_mode); |
+ |
+ // Helpers for accessor inlining. |
+ Node* InlinePropertyGetterCall(Node* receiver, Node* context, |
+ Node* frame_state, Node** effect, |
+ Node** control, |
+ ZoneVector<Node*>* if_exceptions, |
+ PropertyAccessInfo const& access_info); |
+ Node* InlinePropertySetterCall(Node* receiver, Node* value, Node* context, |
+ Node* frame_state, Node** effect, |
+ Node** control, |
+ ZoneVector<Node*>* if_exceptions, |
+ PropertyAccessInfo const& access_info); |
+ Node* InlineApiCall(Node* receiver, Node* context, Node* target, |
+ Node* frame_state, Node* value, Node** effect, |
+ Node** control, Handle<SharedFunctionInfo> shared_info, |
+ Handle<FunctionTemplateInfo> function_template_info); |
// Construct the appropriate subgraph for element access. |
ValueEffectControl BuildElementAccess(Node* receiver, Node* index, |
@@ -124,22 +154,10 @@ class JSNativeContextSpecialization final : public AdvancedReducer { |
AccessMode access_mode, |
KeyedAccessStoreMode store_mode); |
- // Construct an appropriate heap object check. |
- Node* BuildCheckHeapObject(Node* receiver, Node** effect, Node* control); |
- |
- // Construct an appropriate map check. |
- Node* BuildCheckMaps(Node* receiver, Node* effect, Node* control, |
- MapHandles const& maps); |
- |
// Construct appropriate subgraph to extend properties backing store. |
Node* BuildExtendPropertiesBackingStore(Handle<Map> map, Node* properties, |
Node* effect, Node* control); |
- // Adds stability dependencies on all prototypes of every class in |
- // {receiver_type} up to (and including) the {holder}. |
- void AssumePrototypesStable(MapHandles const& receiver_maps, |
- Handle<JSObject> holder); |
- |
// Checks if we can turn the hole into undefined when loading an element |
// from an object with one of the {receiver_maps}; sets up appropriate |
// code dependencies and might use the array protector cell. |
@@ -161,12 +179,6 @@ class JSNativeContextSpecialization final : public AdvancedReducer { |
// program location. |
MaybeHandle<Map> InferReceiverRootMap(Node* receiver); |
- ValueEffectControl InlineApiCall( |
- Node* receiver, Node* context, Node* target, Node* frame_state, |
- Node* parameter, Node* effect, Node* control, |
- Handle<SharedFunctionInfo> shared_info, |
- Handle<FunctionTemplateInfo> function_template_info); |
- |
// Script context lookup logic. |
struct ScriptContextTableLookupResult; |
bool LookupInScriptContextTable(Handle<Name> name, |