| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_COMPILER_JS_OPERATOR_H_ | 5 #ifndef V8_COMPILER_JS_OPERATOR_H_ |
| 6 #define V8_COMPILER_JS_OPERATOR_H_ | 6 #define V8_COMPILER_JS_OPERATOR_H_ |
| 7 | 7 |
| 8 #include "src/base/compiler-specific.h" | 8 #include "src/base/compiler-specific.h" |
| 9 #include "src/globals.h" | 9 #include "src/globals.h" |
| 10 #include "src/handles.h" | 10 #include "src/handles.h" |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 | 83 |
| 84 size_t hash_value(ConstructParameters const&); | 84 size_t hash_value(ConstructParameters const&); |
| 85 | 85 |
| 86 std::ostream& operator<<(std::ostream&, ConstructParameters const&); | 86 std::ostream& operator<<(std::ostream&, ConstructParameters const&); |
| 87 | 87 |
| 88 ConstructParameters const& ConstructParametersOf(Operator const*); | 88 ConstructParameters const& ConstructParametersOf(Operator const*); |
| 89 | 89 |
| 90 // Defines the arity for JavaScript calls with a spread as the last | 90 // Defines the arity for JavaScript calls with a spread as the last |
| 91 // parameter. This is used as a parameter by JSConstructWithSpread and | 91 // parameter. This is used as a parameter by JSConstructWithSpread and |
| 92 // JSCallWithSpread operators. | 92 // JSCallWithSpread operators. |
| 93 class SpreadWithArityParameters final { | 93 class SpreadWithArityParameter final { |
| 94 public: | 94 public: |
| 95 explicit SpreadWithArityParameters(uint32_t arity) : arity_(arity) {} | 95 explicit SpreadWithArityParameter(uint32_t arity) : arity_(arity) {} |
| 96 | 96 |
| 97 uint32_t arity() const { return arity_; } | 97 uint32_t arity() const { return arity_; } |
| 98 | 98 |
| 99 private: | 99 private: |
| 100 uint32_t const arity_; | 100 uint32_t const arity_; |
| 101 }; | 101 }; |
| 102 | 102 |
| 103 bool operator==(SpreadWithArityParameters const&, | 103 bool operator==(SpreadWithArityParameter const&, |
| 104 SpreadWithArityParameters const&); | 104 SpreadWithArityParameter const&); |
| 105 bool operator!=(SpreadWithArityParameters const&, | 105 bool operator!=(SpreadWithArityParameter const&, |
| 106 SpreadWithArityParameters const&); | 106 SpreadWithArityParameter const&); |
| 107 | 107 |
| 108 size_t hash_value(SpreadWithArityParameters const&); | 108 size_t hash_value(SpreadWithArityParameter const&); |
| 109 | 109 |
| 110 std::ostream& operator<<(std::ostream&, SpreadWithArityParameters const&); | 110 std::ostream& operator<<(std::ostream&, SpreadWithArityParameter const&); |
| 111 | 111 |
| 112 SpreadWithArityParameters const& SpreadWithArityParametersOf(Operator const*); | 112 SpreadWithArityParameter const& SpreadWithArityParameterOf(Operator const*); |
| 113 | 113 |
| 114 // Defines the flags for a JavaScript call forwarding parameters. This | 114 // Defines the flags for a JavaScript call forwarding parameters. This |
| 115 // is used as parameter by JSCallForwardVarargs operators. | 115 // is used as parameter by JSCallForwardVarargs operators. |
| 116 class CallForwardVarargsParameters final { | 116 class CallForwardVarargsParameters final { |
| 117 public: | 117 public: |
| 118 CallForwardVarargsParameters(uint32_t start_index, | 118 CallForwardVarargsParameters(uint32_t start_index, |
| 119 TailCallMode tail_call_mode) | 119 TailCallMode tail_call_mode) |
| 120 : bit_field_(StartIndexField::encode(start_index) | | 120 : bit_field_(StartIndexField::encode(start_index) | |
| 121 TailCallModeField::encode(tail_call_mode)) {} | 121 TailCallModeField::encode(tail_call_mode)) {} |
| 122 | 122 |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 325 | 325 |
| 326 size_t hash_value(StoreNamedOwnParameters const&); | 326 size_t hash_value(StoreNamedOwnParameters const&); |
| 327 | 327 |
| 328 std::ostream& operator<<(std::ostream&, StoreNamedOwnParameters const&); | 328 std::ostream& operator<<(std::ostream&, StoreNamedOwnParameters const&); |
| 329 | 329 |
| 330 const StoreNamedOwnParameters& StoreNamedOwnParametersOf(const Operator* op); | 330 const StoreNamedOwnParameters& StoreNamedOwnParametersOf(const Operator* op); |
| 331 | 331 |
| 332 // Defines the feedback, i.e., vector and index, for storing a data property in | 332 // Defines the feedback, i.e., vector and index, for storing a data property in |
| 333 // an object literal. This is | 333 // an object literal. This is |
| 334 // used as a parameter by the JSStoreDataPropertyInLiteral operator. | 334 // used as a parameter by the JSStoreDataPropertyInLiteral operator. |
| 335 class DataPropertyParameters final { | 335 class FeedbackParameter final { |
| 336 public: | 336 public: |
| 337 explicit DataPropertyParameters(VectorSlotPair const& feedback) | 337 explicit FeedbackParameter(VectorSlotPair const& feedback) |
| 338 : feedback_(feedback) {} | 338 : feedback_(feedback) {} |
| 339 | 339 |
| 340 VectorSlotPair const& feedback() const { return feedback_; } | 340 VectorSlotPair const& feedback() const { return feedback_; } |
| 341 | 341 |
| 342 private: | 342 private: |
| 343 VectorSlotPair const feedback_; | 343 VectorSlotPair const feedback_; |
| 344 }; | 344 }; |
| 345 | 345 |
| 346 bool operator==(DataPropertyParameters const&, DataPropertyParameters const&); | 346 bool operator==(FeedbackParameter const&, FeedbackParameter const&); |
| 347 bool operator!=(DataPropertyParameters const&, DataPropertyParameters const&); | 347 bool operator!=(FeedbackParameter const&, FeedbackParameter const&); |
| 348 | 348 |
| 349 size_t hash_value(DataPropertyParameters const&); | 349 size_t hash_value(FeedbackParameter const&); |
| 350 | 350 |
| 351 std::ostream& operator<<(std::ostream&, DataPropertyParameters const&); | 351 std::ostream& operator<<(std::ostream&, FeedbackParameter const&); |
| 352 | 352 |
| 353 const DataPropertyParameters& DataPropertyParametersOf(const Operator* op); | 353 const FeedbackParameter& FeedbackParameterOf(const Operator* op); |
| 354 | 354 |
| 355 // Defines the property of an object for a named access. This is | 355 // Defines the property of an object for a named access. This is |
| 356 // used as a parameter by the JSLoadNamed and JSStoreNamed operators. | 356 // used as a parameter by the JSLoadNamed and JSStoreNamed operators. |
| 357 class NamedAccess final { | 357 class NamedAccess final { |
| 358 public: | 358 public: |
| 359 NamedAccess(LanguageMode language_mode, Handle<Name> name, | 359 NamedAccess(LanguageMode language_mode, Handle<Name> name, |
| 360 VectorSlotPair const& feedback) | 360 VectorSlotPair const& feedback) |
| 361 : name_(name), feedback_(feedback), language_mode_(language_mode) {} | 361 : name_(name), feedback_(feedback), language_mode_(language_mode) {} |
| 362 | 362 |
| 363 Handle<Name> name() const { return name_; } | 363 Handle<Name> name() const { return name_; } |
| (...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 692 Zone* const zone_; | 692 Zone* const zone_; |
| 693 | 693 |
| 694 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder); | 694 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder); |
| 695 }; | 695 }; |
| 696 | 696 |
| 697 } // namespace compiler | 697 } // namespace compiler |
| 698 } // namespace internal | 698 } // namespace internal |
| 699 } // namespace v8 | 699 } // namespace v8 |
| 700 | 700 |
| 701 #endif // V8_COMPILER_JS_OPERATOR_H_ | 701 #endif // V8_COMPILER_JS_OPERATOR_H_ |
| OLD | NEW |