| Index: src/hydrogen.cc
|
| ===================================================================
|
| --- src/hydrogen.cc (revision 6703)
|
| +++ src/hydrogen.cc (working copy)
|
| @@ -870,13 +870,11 @@
|
| }
|
| uses_to_replace.Rewind(0);
|
| block->RemovePhi(phi);
|
| - } else if (phi->HasNoUses() &&
|
| - !phi->HasReceiverOperand() &&
|
| - FLAG_eliminate_dead_phis) {
|
| - // We can't eliminate phis that have the receiver as an operand
|
| - // because in case of throwing an error we need the correct
|
| - // receiver value in the environment to construct a corrent
|
| - // stack trace.
|
| + } else if (FLAG_eliminate_dead_phis && phi->HasNoUses() &&
|
| + !phi->IsReceiver()) {
|
| + // We can't eliminate phis in the receiver position in the environment
|
| + // because in case of throwing an error we need this value to
|
| + // construct a stack trace.
|
| block->RemovePhi(phi);
|
| block->RecordDeletedPhi(phi->merged_index());
|
| }
|
| @@ -2952,6 +2950,9 @@
|
| if (is_store && lookup->IsReadOnly()) {
|
| BAILOUT("read-only global variable");
|
| }
|
| + if (lookup->holder() != *global) {
|
| + BAILOUT("global property on prototype of global object");
|
| + }
|
| }
|
|
|
|
|
| @@ -5185,9 +5186,10 @@
|
| }
|
|
|
|
|
| - // Support for construct call checks.
|
| +// Support for construct call checks.
|
| void HGraphBuilder::GenerateIsConstructCall(int argument_count, int ast_id) {
|
| - BAILOUT("inlined runtime function: IsConstructCall");
|
| + ASSERT(argument_count == 0);
|
| + ast_context()->ReturnInstruction(new HIsConstructCall, ast_id);
|
| }
|
|
|
|
|
|
|