summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/js-operator.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/js-operator.h')
-rw-r--r--deps/v8/src/compiler/js-operator.h72
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_; }