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 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 int position) | 90 int position) |
91 : Expression(isolate), | 91 : Expression(isolate), |
92 name_(name), | 92 name_(name), |
93 var_(NULL), | 93 var_(NULL), |
94 is_this_(is_this), | 94 is_this_(is_this), |
95 is_trivial_(false), | 95 is_trivial_(false), |
96 is_lvalue_(false), | 96 is_lvalue_(false), |
97 position_(position), | 97 position_(position), |
98 interface_(interface) { | 98 interface_(interface) { |
99 // Names must be canonicalized for fast equality checks. | 99 // Names must be canonicalized for fast equality checks. |
100 ASSERT(name->IsSymbol()); | 100 ASSERT(name->IsInternalizedString()); |
101 } | 101 } |
102 | 102 |
103 | 103 |
104 void VariableProxy::BindTo(Variable* var) { | 104 void VariableProxy::BindTo(Variable* var) { |
105 ASSERT(var_ == NULL); // must be bound only once | 105 ASSERT(var_ == NULL); // must be bound only once |
106 ASSERT(var != NULL); // must bind | 106 ASSERT(var != NULL); // must bind |
107 ASSERT(!FLAG_harmony_modules || interface_->IsUnified(var->interface())); | 107 ASSERT(!FLAG_harmony_modules || interface_->IsUnified(var->interface())); |
108 ASSERT((is_this() && var->is_this()) || name_.is_identical_to(var->name())); | 108 ASSERT((is_this() && var->is_this()) || name_.is_identical_to(var->name())); |
109 // Ideally CONST-ness should match. However, this is very hard to achieve | 109 // Ideally CONST-ness should match. However, this is very hard to achieve |
110 // because we don't know the exact semantics of conflicting (const and | 110 // because we don't know the exact semantics of conflicting (const and |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 } | 175 } |
176 | 176 |
177 | 177 |
178 ObjectLiteral::Property::Property(Literal* key, | 178 ObjectLiteral::Property::Property(Literal* key, |
179 Expression* value, | 179 Expression* value, |
180 Isolate* isolate) { | 180 Isolate* isolate) { |
181 emit_store_ = true; | 181 emit_store_ = true; |
182 key_ = key; | 182 key_ = key; |
183 value_ = value; | 183 value_ = value; |
184 Object* k = *key->handle(); | 184 Object* k = *key->handle(); |
185 if (k->IsSymbol() && | 185 if (k->IsInternalizedString() && |
186 isolate->heap()->Proto_symbol()->Equals(String::cast(k))) { | 186 isolate->heap()->proto_string()->Equals(String::cast(k))) { |
187 kind_ = PROTOTYPE; | 187 kind_ = PROTOTYPE; |
188 } else if (value_->AsMaterializedLiteral() != NULL) { | 188 } else if (value_->AsMaterializedLiteral() != NULL) { |
189 kind_ = MATERIALIZED_LITERAL; | 189 kind_ = MATERIALIZED_LITERAL; |
190 } else if (value_->AsLiteral() != NULL) { | 190 } else if (value_->AsLiteral() != NULL) { |
191 kind_ = CONSTANT; | 191 kind_ = CONSTANT; |
192 } else { | 192 } else { |
193 kind_ = COMPUTED; | 193 kind_ = COMPUTED; |
194 } | 194 } |
195 } | 195 } |
196 | 196 |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
476 oracle->CollectKeyedReceiverTypes(id, &receiver_types_); | 476 oracle->CollectKeyedReceiverTypes(id, &receiver_types_); |
477 } | 477 } |
478 } | 478 } |
479 | 479 |
480 | 480 |
481 void CaseClause::RecordTypeFeedback(TypeFeedbackOracle* oracle) { | 481 void CaseClause::RecordTypeFeedback(TypeFeedbackOracle* oracle) { |
482 TypeInfo info = oracle->SwitchType(this); | 482 TypeInfo info = oracle->SwitchType(this); |
483 if (info.IsUninitialized()) info = TypeInfo::Unknown(); | 483 if (info.IsUninitialized()) info = TypeInfo::Unknown(); |
484 if (info.IsSmi()) { | 484 if (info.IsSmi()) { |
485 compare_type_ = SMI_ONLY; | 485 compare_type_ = SMI_ONLY; |
486 } else if (info.IsSymbol()) { | 486 } else if (info.IsInternalizedString()) { |
487 compare_type_ = SYMBOL_ONLY; | 487 compare_type_ = NAME_ONLY; |
488 } else if (info.IsNonSymbol()) { | 488 } else if (info.IsNonInternalizedString()) { |
489 compare_type_ = STRING_ONLY; | 489 compare_type_ = STRING_ONLY; |
490 } else if (info.IsNonPrimitive()) { | 490 } else if (info.IsNonPrimitive()) { |
491 compare_type_ = OBJECT_ONLY; | 491 compare_type_ = OBJECT_ONLY; |
492 } else { | 492 } else { |
493 ASSERT(compare_type_ == NONE); | 493 ASSERT(compare_type_ == NONE); |
494 } | 494 } |
495 } | 495 } |
496 | 496 |
497 | 497 |
498 bool Call::ComputeTarget(Handle<Map> type, Handle<String> name) { | 498 bool Call::ComputeTarget(Handle<Map> type, Handle<String> name) { |
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1114 OS::SNPrintF(buffer, "%d", Smi::cast(*handle_)->value()); | 1114 OS::SNPrintF(buffer, "%d", Smi::cast(*handle_)->value()); |
1115 str = arr; | 1115 str = arr; |
1116 } else { | 1116 } else { |
1117 str = DoubleToCString(handle_->Number(), buffer); | 1117 str = DoubleToCString(handle_->Number(), buffer); |
1118 } | 1118 } |
1119 return FACTORY->NewStringFromAscii(CStrVector(str)); | 1119 return FACTORY->NewStringFromAscii(CStrVector(str)); |
1120 } | 1120 } |
1121 | 1121 |
1122 | 1122 |
1123 } } // namespace v8::internal | 1123 } } // namespace v8::internal |
OLD | NEW |