| 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,
|
|
|