OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 6466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6477 name, | 6477 name, |
6478 value, | 6478 value, |
6479 map)); | 6479 map)); |
6480 } | 6480 } |
6481 | 6481 |
6482 } else if (types != NULL && types->length() > 1) { | 6482 } else if (types != NULL && types->length() > 1) { |
6483 Drop(2); | 6483 Drop(2); |
6484 return HandlePolymorphicStoreNamedField(expr, object, value, types, name); | 6484 return HandlePolymorphicStoreNamedField(expr, object, value, types, name); |
6485 } else { | 6485 } else { |
6486 Drop(2); | 6486 Drop(2); |
| 6487 if (expr->IsUninitialized()) { |
| 6488 AddSoftDeoptimize(); |
| 6489 } |
6487 instr = BuildStoreNamedGeneric(object, name, value); | 6490 instr = BuildStoreNamedGeneric(object, name, value); |
6488 } | 6491 } |
6489 | 6492 |
6490 Push(value); | 6493 Push(value); |
6491 instr->set_position(expr->position()); | 6494 instr->set_position(expr->position()); |
6492 AddInstruction(instr); | 6495 AddInstruction(instr); |
6493 if (instr->HasObservableSideEffects()) { | 6496 if (instr->HasObservableSideEffects()) { |
6494 AddSimulate(expr->AssignmentId(), REMOVABLE_SIMULATE); | 6497 AddSimulate(expr->AssignmentId(), REMOVABLE_SIMULATE); |
6495 } | 6498 } |
6496 return ast_context()->ReturnValue(Pop()); | 6499 return ast_context()->ReturnValue(Pop()); |
(...skipping 5078 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11575 } | 11578 } |
11576 } | 11579 } |
11577 | 11580 |
11578 #ifdef DEBUG | 11581 #ifdef DEBUG |
11579 if (graph_ != NULL) graph_->Verify(false); // No full verify. | 11582 if (graph_ != NULL) graph_->Verify(false); // No full verify. |
11580 if (allocator_ != NULL) allocator_->Verify(); | 11583 if (allocator_ != NULL) allocator_->Verify(); |
11581 #endif | 11584 #endif |
11582 } | 11585 } |
11583 | 11586 |
11584 } } // namespace v8::internal | 11587 } } // namespace v8::internal |
OLD | NEW |