| Index: runtime/vm/intermediate_language.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language.cc (revision 24590)
|
| +++ runtime/vm/intermediate_language.cc (working copy)
|
| @@ -21,6 +21,9 @@
|
|
|
| namespace dart {
|
|
|
| +DEFINE_FLAG(int, max_equality_polymorphic_checks, 32,
|
| + "Maximum number of polymorphic checks in equality operator,"
|
| + " otherwise use megamorphic dispatch.");
|
| DEFINE_FLAG(bool, new_identity_spec, true,
|
| "Use new identity check rules for numbers.");
|
| DEFINE_FLAG(bool, propagate_ic_data, true,
|
| @@ -1034,6 +1037,14 @@
|
| }
|
|
|
|
|
| +bool EqualityCompareInstr::IsCheckedStrictEqual() const {
|
| + if (!HasICData()) return false;
|
| + return ic_data()->AllTargetsHaveSameOwner(kInstanceCid) &&
|
| + (unary_ic_data_->NumberOfChecks() <=
|
| + FLAG_max_equality_polymorphic_checks);
|
| +}
|
| +
|
| +
|
| bool BinarySmiOpInstr::CanDeoptimize() const {
|
| if (FLAG_throw_on_javascript_int_overflow) return true;
|
| switch (op_kind()) {
|
|
|