Index: src/lithium-codegen.cc |
diff --git a/src/lithium-codegen.cc b/src/lithium-codegen.cc |
index 1e7178551508f8c0afae7d0849fd55239ce14590..510a582c7fe7b4b226a778ce5ab2fa988249326b 100644 |
--- a/src/lithium-codegen.cc |
+++ b/src/lithium-codegen.cc |
@@ -112,7 +112,11 @@ void LCodeGenBase::CheckEnvironmentUsage() { |
if (dead_block || !hval->block()->IsReachable()) continue; |
HInstruction* hinstr = HInstruction::cast(hval); |
- if (!hinstr->CanDeoptimize() && instr->HasEnvironment()) { |
+ // TODO(mvstanton): Verify that the side effects exemption is correct and |
+ // sufficient. |
+ if (!hinstr->CanDeoptimize() && instr->HasEnvironment() && |
+ !(hinstr->IsCallWithDescriptor() && |
+ !hinstr->HasObservableSideEffects())) { |
V8_Fatal(__FILE__, __LINE__, "CanDeoptimize is wrong for %s (%s)\n", |
hinstr->Mnemonic(), instr->Mnemonic()); |
} |