| 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());
|
| }
|
|
|