Index: src/hydrogen-instructions.cc |
diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc |
index 7598d61cb683f37e2ccf7cd79cee03b65f6faca8..a6766a6e214191c4763ef01769861a448cd94bb9 100644 |
--- a/src/hydrogen-instructions.cc |
+++ b/src/hydrogen-instructions.cc |
@@ -780,6 +780,9 @@ void HInstruction::Verify() { |
bool HInstruction::CanDeoptimize() { |
// TODO(titzer): make this a virtual method? |
+ // TODO(all): Some of these may be incorrect, since any method that can |
+ // collect can provoke lazy deoptimization. Methods like CallNew can |
+ // certainly do that. |
switch (opcode()) { |
case HValue::kAbnormalExit: |
case HValue::kAccessArgumentsAt: |
@@ -793,7 +796,6 @@ bool HInstruction::CanDeoptimize() { |
case HValue::kCallNew: |
case HValue::kCallNewArray: |
case HValue::kCallStub: |
- case HValue::kCallWithDescriptor: |
case HValue::kCapturedObject: |
case HValue::kClassOfTestAndBranch: |
case HValue::kCompareGeneric: |
@@ -859,6 +861,7 @@ bool HInstruction::CanDeoptimize() { |
case HValue::kBranch: |
case HValue::kCallJSFunction: |
case HValue::kCallRuntime: |
+ case HValue::kCallWithDescriptor: |
case HValue::kChange: |
case HValue::kCheckHeapObject: |
case HValue::kCheckInstanceType: |