| Index: src/compiler/js-operator.cc
|
| diff --git a/src/compiler/js-operator.cc b/src/compiler/js-operator.cc
|
| index b3d118130e533a39df5b0620fcd13d01cf3fb152..243afb2d775ddd2adf98dfb59db16383fe0de601 100644
|
| --- a/src/compiler/js-operator.cc
|
| +++ b/src/compiler/js-operator.cc
|
| @@ -293,7 +293,8 @@ std::ostream& operator<<(std::ostream& os, DataPropertyParameters const& p) {
|
| }
|
|
|
| DataPropertyParameters const& DataPropertyParametersOf(const Operator* op) {
|
| - DCHECK(op->opcode() == IrOpcode::kJSStoreDataPropertyInLiteral);
|
| + DCHECK(op->opcode() == IrOpcode::kJSStoreDataPropertyInLiteral ||
|
| + op->opcode() == IrOpcode::kJSCollectTypeProfile);
|
| return OpParameter<DataPropertyParameters>(op);
|
| }
|
|
|
| @@ -708,6 +709,17 @@ const Operator* JSOperatorBuilder::StoreDataPropertyInLiteral(
|
| parameters); // parameter
|
| }
|
|
|
| +const Operator* JSOperatorBuilder::CollectTypeProfile(
|
| + const VectorSlotPair& feedback) {
|
| + DataPropertyParameters parameters(feedback);
|
| + return new (zone()) Operator1<DataPropertyParameters>( // --
|
| + IrOpcode::kJSCollectTypeProfile,
|
| + Operator::kNoThrow, // opcode
|
| + "JSCollectTypeProfile", // name
|
| + 2, 1, 1, 0, 1, 0, // counts
|
| + parameters); // parameter
|
| +}
|
| +
|
| const Operator* JSOperatorBuilder::ToBoolean(ToBooleanHints hints) {
|
| // TODO(turbofan): Cache most important versions of this operator.
|
| return new (zone()) Operator1<ToBooleanHints>( //--
|
|
|