OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_HEAP_HEAP_H_ | 5 #ifndef V8_HEAP_HEAP_H_ |
6 #define V8_HEAP_HEAP_H_ | 6 #define V8_HEAP_HEAP_H_ |
7 | 7 |
8 #include <cmath> | 8 #include <cmath> |
9 #include <map> | 9 #include <map> |
10 | 10 |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 V(FixedArray, microtask_queue, MicrotaskQueue) \ | 180 V(FixedArray, microtask_queue, MicrotaskQueue) \ |
181 V(TypeFeedbackVector, dummy_vector, DummyVector) \ | 181 V(TypeFeedbackVector, dummy_vector, DummyVector) \ |
182 V(FixedArray, detached_contexts, DetachedContexts) \ | 182 V(FixedArray, detached_contexts, DetachedContexts) \ |
183 V(ArrayList, retained_maps, RetainedMaps) \ | 183 V(ArrayList, retained_maps, RetainedMaps) \ |
184 V(WeakHashTable, weak_object_to_code_table, WeakObjectToCodeTable) \ | 184 V(WeakHashTable, weak_object_to_code_table, WeakObjectToCodeTable) \ |
185 V(PropertyCell, array_protector, ArrayProtector) \ | 185 V(PropertyCell, array_protector, ArrayProtector) \ |
186 V(PropertyCell, empty_property_cell, EmptyPropertyCell) \ | 186 V(PropertyCell, empty_property_cell, EmptyPropertyCell) \ |
187 V(Object, weak_stack_trace_list, WeakStackTraceList) \ | 187 V(Object, weak_stack_trace_list, WeakStackTraceList) \ |
188 V(Object, code_stub_context, CodeStubContext) \ | 188 V(Object, code_stub_context, CodeStubContext) \ |
189 V(JSObject, code_stub_exports_object, CodeStubExportsObject) \ | 189 V(JSObject, code_stub_exports_object, CodeStubExportsObject) \ |
| 190 V(Object, noscript_shared_function_infos, NoScriptSharedFunctionInfos) \ |
190 V(FixedArray, interpreter_table, InterpreterTable) \ | 191 V(FixedArray, interpreter_table, InterpreterTable) \ |
191 V(Map, bytecode_array_map, BytecodeArrayMap) \ | 192 V(Map, bytecode_array_map, BytecodeArrayMap) \ |
192 V(BytecodeArray, empty_bytecode_array, EmptyBytecodeArray) | 193 V(BytecodeArray, empty_bytecode_array, EmptyBytecodeArray) |
193 | 194 |
194 | 195 |
195 // Entries in this list are limited to Smis and are not visited during GC. | 196 // Entries in this list are limited to Smis and are not visited during GC. |
196 #define SMI_ROOT_LIST(V) \ | 197 #define SMI_ROOT_LIST(V) \ |
197 V(Smi, stack_limit, StackLimit) \ | 198 V(Smi, stack_limit, StackLimit) \ |
198 V(Smi, real_stack_limit, RealStackLimit) \ | 199 V(Smi, real_stack_limit, RealStackLimit) \ |
199 V(Smi, last_script_id, LastScriptId) \ | 200 V(Smi, last_script_id, LastScriptId) \ |
(...skipping 957 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1157 } | 1158 } |
1158 | 1159 |
1159 void SetRootScriptList(Object* value) { | 1160 void SetRootScriptList(Object* value) { |
1160 roots_[kScriptListRootIndex] = value; | 1161 roots_[kScriptListRootIndex] = value; |
1161 } | 1162 } |
1162 | 1163 |
1163 void SetRootStringTable(StringTable* value) { | 1164 void SetRootStringTable(StringTable* value) { |
1164 roots_[kStringTableRootIndex] = value; | 1165 roots_[kStringTableRootIndex] = value; |
1165 } | 1166 } |
1166 | 1167 |
| 1168 void SetRootNoScriptSharedFunctionInfos(Object* value) { |
| 1169 roots_[kNoScriptSharedFunctionInfosRootIndex] = value; |
| 1170 } |
| 1171 |
1167 // Set the stack limit in the roots_ array. Some architectures generate | 1172 // Set the stack limit in the roots_ array. Some architectures generate |
1168 // code that looks here, because it is faster than loading from the static | 1173 // code that looks here, because it is faster than loading from the static |
1169 // jslimit_/real_jslimit_ variable in the StackGuard. | 1174 // jslimit_/real_jslimit_ variable in the StackGuard. |
1170 void SetStackLimits(); | 1175 void SetStackLimits(); |
1171 | 1176 |
1172 // Generated code can treat direct references to this root as constant. | 1177 // Generated code can treat direct references to this root as constant. |
1173 bool RootCanBeTreatedAsConstant(RootListIndex root_index); | 1178 bool RootCanBeTreatedAsConstant(RootListIndex root_index); |
1174 | 1179 |
1175 Map* MapForFixedTypedArray(ExternalArrayType array_type); | 1180 Map* MapForFixedTypedArray(ExternalArrayType array_type); |
1176 RootListIndex RootIndexForFixedTypedArray(ExternalArrayType array_type); | 1181 RootListIndex RootIndexForFixedTypedArray(ExternalArrayType array_type); |
(...skipping 1539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2716 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 2721 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
2717 | 2722 |
2718 private: | 2723 private: |
2719 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2724 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
2720 }; | 2725 }; |
2721 #endif // DEBUG | 2726 #endif // DEBUG |
2722 } // namespace internal | 2727 } // namespace internal |
2723 } // namespace v8 | 2728 } // namespace v8 |
2724 | 2729 |
2725 #endif // V8_HEAP_HEAP_H_ | 2730 #endif // V8_HEAP_HEAP_H_ |
OLD | NEW |