| Index: src/deoptimizer.h
|
| diff --git a/src/deoptimizer.h b/src/deoptimizer.h
|
| index 3cf0a3e6e3aeb52c87873ea432d7497fbf176dcb..612d5f6ecf466d0902c032d491b3fd661c48efe8 100644
|
| --- a/src/deoptimizer.h
|
| +++ b/src/deoptimizer.h
|
| @@ -104,6 +104,15 @@ class Deoptimizer : public Malloced {
|
| struct Reason {
|
| Reason(int r, const char* m, const char* d)
|
| : raw_position(r), mnemonic(m), detail(d) {}
|
| +
|
| + bool operator==(const Reason& other) const {
|
| + return raw_position == other.raw_position &&
|
| + CStringEquals(mnemonic, other.mnemonic) &&
|
| + CStringEquals(detail, other.detail);
|
| + }
|
| +
|
| + bool operator!=(const Reason& other) const { return !(*this == other); }
|
| +
|
| int raw_position;
|
| const char* mnemonic;
|
| const char* detail;
|
| @@ -117,6 +126,13 @@ class Deoptimizer : public Malloced {
|
| reason(the_reason),
|
| bailout_type(type),
|
| needs_frame(frame) {}
|
| +
|
| + bool IsEquivalentTo(const JumpTableEntry& other) const {
|
| + return address == other.address && bailout_type == other.bailout_type &&
|
| + needs_frame == other.needs_frame &&
|
| + (!FLAG_trace_deopt || reason == other.reason);
|
| + }
|
| +
|
| Label label;
|
| Address address;
|
| Reason reason;
|
|
|