OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #include "accessors.h" | 7 #include "accessors.h" |
8 #include "allocation-site-scopes.h" | 8 #include "allocation-site-scopes.h" |
9 #include "api.h" | 9 #include "api.h" |
10 #include "arguments.h" | 10 #include "arguments.h" |
(...skipping 11187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11198 info->host()->constant_pool()); | 11198 info->host()->constant_pool()); |
11199 } | 11199 } |
11200 } | 11200 } |
11201 } | 11201 } |
11202 } | 11202 } |
11203 | 11203 |
11204 | 11204 |
11205 void SharedFunctionInfo::ClearTypeFeedbackInfo() { | 11205 void SharedFunctionInfo::ClearTypeFeedbackInfo() { |
11206 FixedArray* vector = feedback_vector(); | 11206 FixedArray* vector = feedback_vector(); |
11207 Heap* heap = GetHeap(); | 11207 Heap* heap = GetHeap(); |
11208 int length = vector->length(); | 11208 for (int i = 0; i < vector->length(); i++) { |
11209 | |
11210 for (int i = 0; i < length; i++) { | |
11211 Object* obj = vector->get(i); | 11209 Object* obj = vector->get(i); |
11212 if (obj->IsHeapObject()) { | 11210 if (!obj->IsAllocationSite()) { |
11213 InstanceType instance_type = | 11211 vector->set( |
11214 HeapObject::cast(obj)->map()->instance_type(); | 11212 i, |
11215 switch (instance_type) { | 11213 TypeFeedbackInfo::RawUninitializedSentinel(heap), |
11216 case ALLOCATION_SITE_TYPE: | 11214 SKIP_WRITE_BARRIER); |
11217 // AllocationSites are not cleared because they do not store | |
11218 // information that leaks. | |
11219 break; | |
11220 case JS_FUNCTION_TYPE: | |
11221 // No need to clear the native context array function. | |
11222 if (obj == JSFunction::cast(obj)->context()->native_context()-> | |
11223 get(Context::ARRAY_FUNCTION_INDEX)) { | |
11224 break; | |
11225 } | |
11226 // Fall through... | |
11227 | |
11228 default: | |
11229 vector->set(i, TypeFeedbackInfo::RawUninitializedSentinel(heap), | |
11230 SKIP_WRITE_BARRIER); | |
11231 } | |
11232 } | 11215 } |
11233 } | 11216 } |
11234 } | 11217 } |
11235 | 11218 |
11236 | 11219 |
11237 BailoutId Code::TranslatePcOffsetToAstId(uint32_t pc_offset) { | 11220 BailoutId Code::TranslatePcOffsetToAstId(uint32_t pc_offset) { |
11238 DisallowHeapAllocation no_gc; | 11221 DisallowHeapAllocation no_gc; |
11239 ASSERT(kind() == FUNCTION); | 11222 ASSERT(kind() == FUNCTION); |
11240 BackEdgeTable back_edges(this, &no_gc); | 11223 BackEdgeTable back_edges(this, &no_gc); |
11241 for (uint32_t i = 0; i < back_edges.length(); i++) { | 11224 for (uint32_t i = 0; i < back_edges.length(); i++) { |
(...skipping 6027 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17269 #define ERROR_MESSAGES_TEXTS(C, T) T, | 17252 #define ERROR_MESSAGES_TEXTS(C, T) T, |
17270 static const char* error_messages_[] = { | 17253 static const char* error_messages_[] = { |
17271 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) | 17254 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) |
17272 }; | 17255 }; |
17273 #undef ERROR_MESSAGES_TEXTS | 17256 #undef ERROR_MESSAGES_TEXTS |
17274 return error_messages_[reason]; | 17257 return error_messages_[reason]; |
17275 } | 17258 } |
17276 | 17259 |
17277 | 17260 |
17278 } } // namespace v8::internal | 17261 } } // namespace v8::internal |
OLD | NEW |