Chromium Code Reviews| Index: src/compiler/js-operator.cc |
| diff --git a/src/compiler/js-operator.cc b/src/compiler/js-operator.cc |
| index c486e02855d6f733e3012c7923c450116eff8268..6a9f0926dce9b5964b23799f563aca0d78a69ce8 100644 |
| --- a/src/compiler/js-operator.cc |
| +++ b/src/compiler/js-operator.cc |
| @@ -391,6 +391,28 @@ const StorePropertyParameters& StorePropertyParametersOf(const Operator* op) { |
| } |
| +bool operator==(CreateArgumentsParameters const& lhs, |
| + CreateArgumentsParameters const& rhs) { |
| + return lhs.type() == rhs.type() && lhs.start_index() == rhs.start_index(); |
| +} |
| + |
| + |
| +bool operator!=(CreateArgumentsParameters const& lhs, |
| + CreateArgumentsParameters const& rhs) { |
| + return !(lhs == rhs); |
| +} |
| + |
| + |
| +size_t hash_value(CreateArgumentsParameters const& p) { |
| + return base::hash_combine(p.type(), p.start_index()); |
| +} |
| + |
| + |
| +std::ostream& operator<<(std::ostream& os, CreateArgumentsParameters const& p) { |
| + return os << p.type() << ", " << p.start_index(); |
| +} |
| + |
| + |
| bool operator==(CreateClosureParameters const& lhs, |
| CreateClosureParameters const& rhs) { |
| return lhs.pretenure() == rhs.pretenure() && |
| @@ -705,6 +727,18 @@ const Operator* JSOperatorBuilder::LoadDynamicContext( |
| } |
| +const Operator* JSOperatorBuilder::CreateArguments( |
| + CreateArgumentsParameters::Type type, int start_index) { |
| + DCHECK(start_index == 0 || type == CreateArgumentsParameters::REST_ARRAY); |
|
Benedikt Meurer
2015/09/15 04:35:50
How about DCHECK_IMPLIES(start_index != 0, type ==
Michael Starzinger
2015/09/15 07:39:27
Done.
|
| + CreateArgumentsParameters parameters(type, start_index); |
| + return new (zone()) Operator1<CreateArgumentsParameters>( // -- |
| + IrOpcode::kJSCreateArguments, Operator::kNoThrow, // opcode |
| + "JSCreateArguments", // name |
| + 1, 1, 1, 1, 1, 0, // counts |
| + parameters); // parameter |
| +} |
| + |
| + |
| const Operator* JSOperatorBuilder::CreateClosure( |
| Handle<SharedFunctionInfo> shared_info, PretenureFlag pretenure) { |
| CreateClosureParameters parameters(shared_info, pretenure); |