diff options
author | Michaël Zasso <targos@protonmail.com> | 2019-11-08 15:39:11 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2019-11-08 15:46:25 +0100 |
commit | 6ca81ad72a3c6fdf16c683335be748f22aaa9a0d (patch) | |
tree | 33c8ee75f729aed76c2c0b89c63f9bf1b4dd66aa /deps/v8/src/compiler/js-operator.h | |
parent | 1eee0b8bf8bba39b600fb16a9223e545e3bac2bc (diff) | |
download | node-new-6ca81ad72a3c6fdf16c683335be748f22aaa9a0d.tar.gz |
deps: update V8 to 7.9.317.20
PR-URL: https://github.com/nodejs/node/pull/30020
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Diffstat (limited to 'deps/v8/src/compiler/js-operator.h')
-rw-r--r-- | deps/v8/src/compiler/js-operator.h | 72 |
1 files changed, 65 insertions, 7 deletions
diff --git a/deps/v8/src/compiler/js-operator.h b/deps/v8/src/compiler/js-operator.h index f795a2f402..47b0fff05a 100644 --- a/deps/v8/src/compiler/js-operator.h +++ b/deps/v8/src/compiler/js-operator.h @@ -409,13 +409,13 @@ class StoreGlobalParameters final { : language_mode_(language_mode), name_(name), feedback_(feedback) {} LanguageMode language_mode() const { return language_mode_; } - const FeedbackSource& feedback() const { return feedback_; } - const Handle<Name>& name() const { return name_; } + FeedbackSource const& feedback() const { return feedback_; } + Handle<Name> const& name() const { return name_; } private: - const LanguageMode language_mode_; - const Handle<Name> name_; - const FeedbackSource feedback_; + LanguageMode const language_mode_; + Handle<Name> const name_; + FeedbackSource const feedback_; }; bool operator==(StoreGlobalParameters const&, StoreGlobalParameters const&); @@ -598,6 +598,35 @@ std::ostream& operator<<(std::ostream&, CreateClosureParameters const&); const CreateClosureParameters& CreateClosureParametersOf(const Operator* op); +class GetTemplateObjectParameters final { + public: + GetTemplateObjectParameters(Handle<TemplateObjectDescription> description, + Handle<SharedFunctionInfo> shared, + FeedbackSource const& feedback) + : description_(description), shared_(shared), feedback_(feedback) {} + + Handle<TemplateObjectDescription> description() const { return description_; } + Handle<SharedFunctionInfo> shared() const { return shared_; } + FeedbackSource const& feedback() const { return feedback_; } + + private: + Handle<TemplateObjectDescription> const description_; + Handle<SharedFunctionInfo> const shared_; + FeedbackSource const feedback_; +}; + +bool operator==(GetTemplateObjectParameters const&, + GetTemplateObjectParameters const&); +bool operator!=(GetTemplateObjectParameters const&, + GetTemplateObjectParameters const&); + +size_t hash_value(GetTemplateObjectParameters const&); + +std::ostream& operator<<(std::ostream&, GetTemplateObjectParameters const&); + +const GetTemplateObjectParameters& GetTemplateObjectParametersOf( + const Operator* op); + // Defines shared information for the literal that should be created. This is // used as parameter by JSCreateLiteralArray, JSCreateLiteralObject and // JSCreateLiteralRegExp operators. @@ -653,6 +682,31 @@ std::ostream& operator<<(std::ostream&, CloneObjectParameters const&); const CloneObjectParameters& CloneObjectParametersOf(const Operator* op); +// Defines the shared information for the iterator symbol thats loaded and +// called. This is used as a parameter by JSGetIterator operator. +class GetIteratorParameters final { + public: + GetIteratorParameters(const FeedbackSource& load_feedback, + const FeedbackSource& call_feedback) + : load_feedback_(load_feedback), call_feedback_(call_feedback) {} + + FeedbackSource const& loadFeedback() const { return load_feedback_; } + FeedbackSource const& callFeedback() const { return call_feedback_; } + + private: + FeedbackSource const load_feedback_; + FeedbackSource const call_feedback_; +}; + +bool operator==(GetIteratorParameters const&, GetIteratorParameters const&); +bool operator!=(GetIteratorParameters const&, GetIteratorParameters const&); + +size_t hash_value(GetIteratorParameters const&); + +std::ostream& operator<<(std::ostream&, GetIteratorParameters const&); + +const GetIteratorParameters& GetIteratorParametersOf(const Operator* op); + // Descriptor used by the JSForInPrepare and JSForInNext opcodes. enum class ForInMode : uint8_t { kUseEnumCacheKeysAndIndices, @@ -742,7 +796,6 @@ class V8_EXPORT_PRIVATE JSOperatorBuilder final const Operator* CreateEmptyLiteralArray(FeedbackSource const& feedback); const Operator* CreateArrayFromIterable(); const Operator* CreateEmptyLiteralObject(); - const Operator* CreateLiteralObject( Handle<ObjectBoilerplateDescription> constant, FeedbackSource const& feedback, int literal_flags, @@ -753,6 +806,10 @@ class V8_EXPORT_PRIVATE JSOperatorBuilder final FeedbackSource const& feedback, int literal_flags); + const Operator* GetTemplateObject( + Handle<TemplateObjectDescription> description, + Handle<SharedFunctionInfo> shared, FeedbackSource const& feedback); + const Operator* CallForwardVarargs(size_t arity, uint32_t start_index); const Operator* Call( size_t arity, CallFrequency const& frequency = CallFrequency(), @@ -856,7 +913,8 @@ class V8_EXPORT_PRIVATE JSOperatorBuilder final const Operator* ParseInt(); const Operator* RegExpTest(); - const Operator* GetIterator(FeedbackSource const& feedback); + const Operator* GetIterator(FeedbackSource const& load_feedback, + FeedbackSource const& call_feedback); private: Zone* zone() const { return zone_; } |