| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 5087 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5098 // assumed to stay the same for this instanceof. | 5098 // assumed to stay the same for this instanceof. |
| 5099 if (target.is_null()) { | 5099 if (target.is_null()) { |
| 5100 HContext* context = new(zone()) HContext; | 5100 HContext* context = new(zone()) HContext; |
| 5101 AddInstruction(context); | 5101 AddInstruction(context); |
| 5102 instr = new(zone()) HInstanceOf(context, left, right); | 5102 instr = new(zone()) HInstanceOf(context, left, right); |
| 5103 } else { | 5103 } else { |
| 5104 AddInstruction(new(zone()) HCheckFunction(right, target)); | 5104 AddInstruction(new(zone()) HCheckFunction(right, target)); |
| 5105 instr = new(zone()) HInstanceOfKnownGlobal(left, target); | 5105 instr = new(zone()) HInstanceOfKnownGlobal(left, target); |
| 5106 } | 5106 } |
| 5107 } else if (op == Token::IN) { | 5107 } else if (op == Token::IN) { |
| 5108 return Bailout("Unsupported comparison: in"); | 5108 instr = new(zone()) HIn(left, right); |
| 5109 } else if (type_info.IsNonPrimitive()) { | 5109 } else if (type_info.IsNonPrimitive()) { |
| 5110 switch (op) { | 5110 switch (op) { |
| 5111 case Token::EQ: | 5111 case Token::EQ: |
| 5112 case Token::EQ_STRICT: { | 5112 case Token::EQ_STRICT: { |
| 5113 AddInstruction(new(zone()) HCheckNonSmi(left)); | 5113 AddInstruction(new(zone()) HCheckNonSmi(left)); |
| 5114 AddInstruction(HCheckInstanceType::NewIsJSObjectOrJSFunction(left)); | 5114 AddInstruction(HCheckInstanceType::NewIsJSObjectOrJSFunction(left)); |
| 5115 AddInstruction(new(zone()) HCheckNonSmi(right)); | 5115 AddInstruction(new(zone()) HCheckNonSmi(right)); |
| 5116 AddInstruction(HCheckInstanceType::NewIsJSObjectOrJSFunction(right)); | 5116 AddInstruction(HCheckInstanceType::NewIsJSObjectOrJSFunction(right)); |
| 5117 instr = new(zone()) HCompareJSObjectEq(left, right); | 5117 instr = new(zone()) HCompareJSObjectEq(left, right); |
| 5118 break; | 5118 break; |
| (...skipping 952 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6071 } | 6071 } |
| 6072 } | 6072 } |
| 6073 | 6073 |
| 6074 #ifdef DEBUG | 6074 #ifdef DEBUG |
| 6075 if (graph_ != NULL) graph_->Verify(); | 6075 if (graph_ != NULL) graph_->Verify(); |
| 6076 if (allocator_ != NULL) allocator_->Verify(); | 6076 if (allocator_ != NULL) allocator_->Verify(); |
| 6077 #endif | 6077 #endif |
| 6078 } | 6078 } |
| 6079 | 6079 |
| 6080 } } // namespace v8::internal | 6080 } } // namespace v8::internal |
| OLD | NEW |