diff options
Diffstat (limited to 'deps/v8/src/compiler/js-operator.cc')
-rw-r--r-- | deps/v8/src/compiler/js-operator.cc | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/deps/v8/src/compiler/js-operator.cc b/deps/v8/src/compiler/js-operator.cc index 5fcd51928d..98e090b509 100644 --- a/deps/v8/src/compiler/js-operator.cc +++ b/deps/v8/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(); } @@ -382,10 +385,12 @@ const CreateLiteralParameters& CreateLiteralParametersOf(const Operator* op) { V(GreaterThan, Operator::kNoProperties, 2, 1) \ V(LessThanOrEqual, Operator::kNoProperties, 2, 1) \ V(GreaterThanOrEqual, Operator::kNoProperties, 2, 1) \ - V(ToNumber, Operator::kNoProperties, 1, 1) \ - V(ToString, Operator::kNoProperties, 1, 1) \ + V(ToInteger, Operator::kNoProperties, 1, 1) \ + V(ToLength, Operator::kNoProperties, 1, 1) \ V(ToName, Operator::kNoProperties, 1, 1) \ + V(ToNumber, Operator::kNoProperties, 1, 1) \ V(ToObject, Operator::kNoProperties, 1, 1) \ + V(ToString, Operator::kNoProperties, 1, 1) \ V(Yield, Operator::kNoProperties, 1, 1) \ V(Create, Operator::kEliminatable, 2, 1) \ V(CreateIterResultObject, Operator::kEliminatable, 2, 1) \ @@ -733,12 +738,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 +750,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 +765,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 |