| 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_CONTEXTS_H_ | 5 #ifndef V8_CONTEXTS_H_ |
| 6 #define V8_CONTEXTS_H_ | 6 #define V8_CONTEXTS_H_ |
| 7 | 7 |
| 8 #include "src/heap/heap.h" | 8 #include "src/heap/heap.h" |
| 9 #include "src/objects.h" | 9 #include "src/objects.h" |
| 10 | 10 |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 | 75 |
| 76 #define NATIVE_CONTEXT_FIELDS(V) \ | 76 #define NATIVE_CONTEXT_FIELDS(V) \ |
| 77 V(GLOBAL_PROXY_INDEX, JSObject, global_proxy_object) \ | 77 V(GLOBAL_PROXY_INDEX, JSObject, global_proxy_object) \ |
| 78 V(SECURITY_TOKEN_INDEX, Object, security_token) \ | 78 V(SECURITY_TOKEN_INDEX, Object, security_token) \ |
| 79 V(BOOLEAN_FUNCTION_INDEX, JSFunction, boolean_function) \ | 79 V(BOOLEAN_FUNCTION_INDEX, JSFunction, boolean_function) \ |
| 80 V(NUMBER_FUNCTION_INDEX, JSFunction, number_function) \ | 80 V(NUMBER_FUNCTION_INDEX, JSFunction, number_function) \ |
| 81 V(STRING_FUNCTION_INDEX, JSFunction, string_function) \ | 81 V(STRING_FUNCTION_INDEX, JSFunction, string_function) \ |
| 82 V(STRING_FUNCTION_PROTOTYPE_MAP_INDEX, Map, string_function_prototype_map) \ | 82 V(STRING_FUNCTION_PROTOTYPE_MAP_INDEX, Map, string_function_prototype_map) \ |
| 83 V(SYMBOL_FUNCTION_INDEX, JSFunction, symbol_function) \ | 83 V(SYMBOL_FUNCTION_INDEX, JSFunction, symbol_function) \ |
| 84 V(OBJECT_FUNCTION_INDEX, JSFunction, object_function) \ | 84 V(OBJECT_FUNCTION_INDEX, JSFunction, object_function) \ |
| 85 V(JS_OBJECT_STRONG_MAP_INDEX, Map, js_object_strong_map) \ |
| 85 V(INTERNAL_ARRAY_FUNCTION_INDEX, JSFunction, internal_array_function) \ | 86 V(INTERNAL_ARRAY_FUNCTION_INDEX, JSFunction, internal_array_function) \ |
| 86 V(ARRAY_FUNCTION_INDEX, JSFunction, array_function) \ | 87 V(ARRAY_FUNCTION_INDEX, JSFunction, array_function) \ |
| 87 V(JS_ARRAY_MAPS_INDEX, Object, js_array_maps) \ | 88 V(JS_ARRAY_MAPS_INDEX, Object, js_array_maps) \ |
| 88 V(JS_ARRAY_STRONG_MAPS_INDEX, Object, js_array_strong_maps) \ | 89 V(JS_ARRAY_STRONG_MAPS_INDEX, Object, js_array_strong_maps) \ |
| 89 V(DATE_FUNCTION_INDEX, JSFunction, date_function) \ | 90 V(DATE_FUNCTION_INDEX, JSFunction, date_function) \ |
| 90 V(JSON_OBJECT_INDEX, JSObject, json_object) \ | 91 V(JSON_OBJECT_INDEX, JSObject, json_object) \ |
| 91 V(REGEXP_FUNCTION_INDEX, JSFunction, regexp_function) \ | 92 V(REGEXP_FUNCTION_INDEX, JSFunction, regexp_function) \ |
| 92 V(INITIAL_OBJECT_PROTOTYPE_INDEX, JSObject, initial_object_prototype) \ | 93 V(INITIAL_OBJECT_PROTOTYPE_INDEX, JSObject, initial_object_prototype) \ |
| 93 V(INITIAL_ARRAY_PROTOTYPE_INDEX, JSObject, initial_array_prototype) \ | 94 V(INITIAL_ARRAY_PROTOTYPE_INDEX, JSObject, initial_array_prototype) \ |
| 94 V(CREATE_DATE_FUN_INDEX, JSFunction, create_date_fun) \ | 95 V(CREATE_DATE_FUN_INDEX, JSFunction, create_date_fun) \ |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 V(JSFUNCTION_RESULT_CACHES_INDEX, FixedArray, jsfunction_result_caches) \ | 147 V(JSFUNCTION_RESULT_CACHES_INDEX, FixedArray, jsfunction_result_caches) \ |
| 147 V(NORMALIZED_MAP_CACHE_INDEX, Object, normalized_map_cache) \ | 148 V(NORMALIZED_MAP_CACHE_INDEX, Object, normalized_map_cache) \ |
| 148 V(RUNTIME_CONTEXT_INDEX, Context, runtime_context) \ | 149 V(RUNTIME_CONTEXT_INDEX, Context, runtime_context) \ |
| 149 V(CALL_AS_FUNCTION_DELEGATE_INDEX, JSFunction, call_as_function_delegate) \ | 150 V(CALL_AS_FUNCTION_DELEGATE_INDEX, JSFunction, call_as_function_delegate) \ |
| 150 V(CALL_AS_CONSTRUCTOR_DELEGATE_INDEX, JSFunction, \ | 151 V(CALL_AS_CONSTRUCTOR_DELEGATE_INDEX, JSFunction, \ |
| 151 call_as_constructor_delegate) \ | 152 call_as_constructor_delegate) \ |
| 152 V(SCRIPT_FUNCTION_INDEX, JSFunction, script_function) \ | 153 V(SCRIPT_FUNCTION_INDEX, JSFunction, script_function) \ |
| 153 V(OPAQUE_REFERENCE_FUNCTION_INDEX, JSFunction, opaque_reference_function) \ | 154 V(OPAQUE_REFERENCE_FUNCTION_INDEX, JSFunction, opaque_reference_function) \ |
| 154 V(CONTEXT_EXTENSION_FUNCTION_INDEX, JSFunction, context_extension_function) \ | 155 V(CONTEXT_EXTENSION_FUNCTION_INDEX, JSFunction, context_extension_function) \ |
| 155 V(MAP_CACHE_INDEX, Object, map_cache) \ | 156 V(MAP_CACHE_INDEX, Object, map_cache) \ |
| 157 V(STRONG_MAP_CACHE_INDEX, Object, strong_map_cache) \ |
| 156 V(EMBEDDER_DATA_INDEX, FixedArray, embedder_data) \ | 158 V(EMBEDDER_DATA_INDEX, FixedArray, embedder_data) \ |
| 157 V(ALLOW_CODE_GEN_FROM_STRINGS_INDEX, Object, allow_code_gen_from_strings) \ | 159 V(ALLOW_CODE_GEN_FROM_STRINGS_INDEX, Object, allow_code_gen_from_strings) \ |
| 158 V(ERROR_MESSAGE_FOR_CODE_GEN_FROM_STRINGS_INDEX, Object, \ | 160 V(ERROR_MESSAGE_FOR_CODE_GEN_FROM_STRINGS_INDEX, Object, \ |
| 159 error_message_for_code_gen_from_strings) \ | 161 error_message_for_code_gen_from_strings) \ |
| 160 V(PROMISE_STATUS_INDEX, Symbol, promise_status) \ | 162 V(PROMISE_STATUS_INDEX, Symbol, promise_status) \ |
| 161 V(PROMISE_VALUE_INDEX, Symbol, promise_value) \ | 163 V(PROMISE_VALUE_INDEX, Symbol, promise_value) \ |
| 162 V(PROMISE_CREATE_INDEX, JSFunction, promise_create) \ | 164 V(PROMISE_CREATE_INDEX, JSFunction, promise_create) \ |
| 163 V(PROMISE_RESOLVE_INDEX, JSFunction, promise_resolve) \ | 165 V(PROMISE_RESOLVE_INDEX, JSFunction, promise_resolve) \ |
| 164 V(PROMISE_REJECT_INDEX, JSFunction, promise_reject) \ | 166 V(PROMISE_REJECT_INDEX, JSFunction, promise_reject) \ |
| 165 V(PROMISE_CHAIN_INDEX, JSFunction, promise_chain) \ | 167 V(PROMISE_CHAIN_INDEX, JSFunction, promise_chain) \ |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 333 STRONG_CONSTRUCTOR_MAP_INDEX, | 335 STRONG_CONSTRUCTOR_MAP_INDEX, |
| 334 BOUND_FUNCTION_MAP_INDEX, | 336 BOUND_FUNCTION_MAP_INDEX, |
| 335 INITIAL_OBJECT_PROTOTYPE_INDEX, | 337 INITIAL_OBJECT_PROTOTYPE_INDEX, |
| 336 INITIAL_ARRAY_PROTOTYPE_INDEX, | 338 INITIAL_ARRAY_PROTOTYPE_INDEX, |
| 337 BOOLEAN_FUNCTION_INDEX, | 339 BOOLEAN_FUNCTION_INDEX, |
| 338 NUMBER_FUNCTION_INDEX, | 340 NUMBER_FUNCTION_INDEX, |
| 339 STRING_FUNCTION_INDEX, | 341 STRING_FUNCTION_INDEX, |
| 340 STRING_FUNCTION_PROTOTYPE_MAP_INDEX, | 342 STRING_FUNCTION_PROTOTYPE_MAP_INDEX, |
| 341 SYMBOL_FUNCTION_INDEX, | 343 SYMBOL_FUNCTION_INDEX, |
| 342 OBJECT_FUNCTION_INDEX, | 344 OBJECT_FUNCTION_INDEX, |
| 345 JS_OBJECT_STRONG_MAP_INDEX, |
| 343 INTERNAL_ARRAY_FUNCTION_INDEX, | 346 INTERNAL_ARRAY_FUNCTION_INDEX, |
| 344 ARRAY_FUNCTION_INDEX, | 347 ARRAY_FUNCTION_INDEX, |
| 345 JS_ARRAY_MAPS_INDEX, | 348 JS_ARRAY_MAPS_INDEX, |
| 346 JS_ARRAY_STRONG_MAPS_INDEX, | 349 JS_ARRAY_STRONG_MAPS_INDEX, |
| 347 DATE_FUNCTION_INDEX, | 350 DATE_FUNCTION_INDEX, |
| 348 JSON_OBJECT_INDEX, | 351 JSON_OBJECT_INDEX, |
| 349 REGEXP_FUNCTION_INDEX, | 352 REGEXP_FUNCTION_INDEX, |
| 350 CREATE_DATE_FUN_INDEX, | 353 CREATE_DATE_FUN_INDEX, |
| 351 TO_NUMBER_FUN_INDEX, | 354 TO_NUMBER_FUN_INDEX, |
| 352 TO_STRING_FUN_INDEX, | 355 TO_STRING_FUN_INDEX, |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 420 SLOPPY_GENERATOR_FUNCTION_MAP_INDEX, | 423 SLOPPY_GENERATOR_FUNCTION_MAP_INDEX, |
| 421 STRICT_GENERATOR_FUNCTION_MAP_INDEX, | 424 STRICT_GENERATOR_FUNCTION_MAP_INDEX, |
| 422 STRONG_GENERATOR_FUNCTION_MAP_INDEX, | 425 STRONG_GENERATOR_FUNCTION_MAP_INDEX, |
| 423 GENERATOR_OBJECT_PROTOTYPE_MAP_INDEX, | 426 GENERATOR_OBJECT_PROTOTYPE_MAP_INDEX, |
| 424 ITERATOR_RESULT_MAP_INDEX, | 427 ITERATOR_RESULT_MAP_INDEX, |
| 425 MAP_ITERATOR_MAP_INDEX, | 428 MAP_ITERATOR_MAP_INDEX, |
| 426 SET_ITERATOR_MAP_INDEX, | 429 SET_ITERATOR_MAP_INDEX, |
| 427 ARRAY_VALUES_ITERATOR_INDEX, | 430 ARRAY_VALUES_ITERATOR_INDEX, |
| 428 SCRIPT_CONTEXT_TABLE_INDEX, | 431 SCRIPT_CONTEXT_TABLE_INDEX, |
| 429 MAP_CACHE_INDEX, | 432 MAP_CACHE_INDEX, |
| 433 STRONG_MAP_CACHE_INDEX, |
| 430 TO_LENGTH_FUN_INDEX, | 434 TO_LENGTH_FUN_INDEX, |
| 431 NATIVES_UTILS_OBJECT_INDEX, | 435 NATIVES_UTILS_OBJECT_INDEX, |
| 432 EXTRAS_EXPORTS_OBJECT_INDEX, | 436 EXTRAS_EXPORTS_OBJECT_INDEX, |
| 433 | 437 |
| 434 // Properties from here are treated as weak references by the full GC. | 438 // Properties from here are treated as weak references by the full GC. |
| 435 // Scavenge treats them as strong references. | 439 // Scavenge treats them as strong references. |
| 436 OPTIMIZED_FUNCTIONS_LIST, // Weak. | 440 OPTIMIZED_FUNCTIONS_LIST, // Weak. |
| 437 OPTIMIZED_CODE_LIST, // Weak. | 441 OPTIMIZED_CODE_LIST, // Weak. |
| 438 DEOPTIMIZED_CODE_LIST, // Weak. | 442 DEOPTIMIZED_CODE_LIST, // Weak. |
| 439 NEXT_CONTEXT_LINK, // Weak. | 443 NEXT_CONTEXT_LINK, // Weak. |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 630 static bool IsBootstrappingOrGlobalObject(Isolate* isolate, Object* object); | 634 static bool IsBootstrappingOrGlobalObject(Isolate* isolate, Object* object); |
| 631 #endif | 635 #endif |
| 632 | 636 |
| 633 STATIC_ASSERT(kHeaderSize == Internals::kContextHeaderSize); | 637 STATIC_ASSERT(kHeaderSize == Internals::kContextHeaderSize); |
| 634 STATIC_ASSERT(EMBEDDER_DATA_INDEX == Internals::kContextEmbedderDataIndex); | 638 STATIC_ASSERT(EMBEDDER_DATA_INDEX == Internals::kContextEmbedderDataIndex); |
| 635 }; | 639 }; |
| 636 | 640 |
| 637 } } // namespace v8::internal | 641 } } // namespace v8::internal |
| 638 | 642 |
| 639 #endif // V8_CONTEXTS_H_ | 643 #endif // V8_CONTEXTS_H_ |
| OLD | NEW |