| Index: src/compiler/js-operator.cc
|
| diff --git a/src/compiler/js-operator.cc b/src/compiler/js-operator.cc
|
| index 5fcd51928d64307b57bc6f778733d6a21d2a47db..a3ff809ed6dea228be2292b7b841eb5482225614 100644
|
| --- a/src/compiler/js-operator.cc
|
| +++ b/src/compiler/js-operator.cc
|
| @@ -346,7 +346,8 @@ const CreateClosureParameters& CreateClosureParametersOf(const Operator* op) {
|
| bool operator==(CreateLiteralParameters const& lhs,
|
| CreateLiteralParameters const& rhs) {
|
| return lhs.constant().location() == rhs.constant().location() &&
|
| - lhs.flags() == rhs.flags() && lhs.index() == rhs.index();
|
| + lhs.length() == rhs.length() && lhs.flags() == rhs.flags() &&
|
| + lhs.index() == rhs.index();
|
| }
|
|
|
|
|
| @@ -357,12 +358,14 @@ bool operator!=(CreateLiteralParameters const& lhs,
|
|
|
|
|
| size_t hash_value(CreateLiteralParameters const& p) {
|
| - return base::hash_combine(p.constant().location(), p.flags(), p.index());
|
| + return base::hash_combine(p.constant().location(), p.length(), p.flags(),
|
| + p.index());
|
| }
|
|
|
|
|
| std::ostream& operator<<(std::ostream& os, CreateLiteralParameters const& p) {
|
| - return os << Brief(*p.constant()) << ", " << p.flags() << ", " << p.index();
|
| + return os << Brief(*p.constant()) << ", " << p.length() << ", " << p.flags()
|
| + << ", " << p.index();
|
| }
|
|
|
|
|
| @@ -733,12 +736,11 @@ const Operator* JSOperatorBuilder::CreateClosure(
|
| parameters); // parameter
|
| }
|
|
|
| -
|
| const Operator* JSOperatorBuilder::CreateLiteralArray(
|
| - Handle<FixedArray> constant_elements, int literal_flags,
|
| - int literal_index) {
|
| - CreateLiteralParameters parameters(constant_elements, literal_flags,
|
| - literal_index);
|
| + Handle<FixedArray> constant_elements, int literal_flags, int literal_index,
|
| + int number_of_elements) {
|
| + CreateLiteralParameters parameters(constant_elements, number_of_elements,
|
| + literal_flags, literal_index);
|
| return new (zone()) Operator1<CreateLiteralParameters>( // --
|
| IrOpcode::kJSCreateLiteralArray, Operator::kNoProperties, // opcode
|
| "JSCreateLiteralArray", // name
|
| @@ -746,12 +748,11 @@ const Operator* JSOperatorBuilder::CreateLiteralArray(
|
| parameters); // parameter
|
| }
|
|
|
| -
|
| const Operator* JSOperatorBuilder::CreateLiteralObject(
|
| Handle<FixedArray> constant_properties, int literal_flags,
|
| - int literal_index) {
|
| - CreateLiteralParameters parameters(constant_properties, literal_flags,
|
| - literal_index);
|
| + int literal_index, int number_of_properties) {
|
| + CreateLiteralParameters parameters(constant_properties, number_of_properties,
|
| + literal_flags, literal_index);
|
| return new (zone()) Operator1<CreateLiteralParameters>( // --
|
| IrOpcode::kJSCreateLiteralObject, Operator::kNoProperties, // opcode
|
| "JSCreateLiteralObject", // name
|
| @@ -762,7 +763,7 @@ const Operator* JSOperatorBuilder::CreateLiteralObject(
|
|
|
| const Operator* JSOperatorBuilder::CreateLiteralRegExp(
|
| Handle<String> constant_pattern, int literal_flags, int literal_index) {
|
| - CreateLiteralParameters parameters(constant_pattern, literal_flags,
|
| + CreateLiteralParameters parameters(constant_pattern, -1, literal_flags,
|
| literal_index);
|
| return new (zone()) Operator1<CreateLiteralParameters>( // --
|
| IrOpcode::kJSCreateLiteralRegExp, Operator::kNoProperties, // opcode
|
|
|