| 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 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 399 NEXT_CONTEXT_LINK, // Weak. | 399 NEXT_CONTEXT_LINK, // Weak. |
| 400 | 400 |
| 401 // Total number of slots. | 401 // Total number of slots. |
| 402 NATIVE_CONTEXT_SLOTS, | 402 NATIVE_CONTEXT_SLOTS, |
| 403 FIRST_WEAK_SLOT = OPTIMIZED_FUNCTIONS_LIST, | 403 FIRST_WEAK_SLOT = OPTIMIZED_FUNCTIONS_LIST, |
| 404 FIRST_JS_ARRAY_MAP_SLOT = JS_ARRAY_FAST_SMI_ELEMENTS_MAP_INDEX, | 404 FIRST_JS_ARRAY_MAP_SLOT = JS_ARRAY_FAST_SMI_ELEMENTS_MAP_INDEX, |
| 405 | 405 |
| 406 MIN_CONTEXT_SLOTS = GLOBAL_PROXY_INDEX, | 406 MIN_CONTEXT_SLOTS = GLOBAL_PROXY_INDEX, |
| 407 // This slot holds the thrown value in catch contexts. | 407 // This slot holds the thrown value in catch contexts. |
| 408 THROWN_OBJECT_INDEX = MIN_CONTEXT_SLOTS, | 408 THROWN_OBJECT_INDEX = MIN_CONTEXT_SLOTS, |
| 409 |
| 410 // These slots hold values in debug evaluate contexts. |
| 411 WRAPPED_CONTEXT_INDEX = MIN_CONTEXT_SLOTS, |
| 412 WHITE_LIST_INDEX = MIN_CONTEXT_SLOTS + 1 |
| 409 }; | 413 }; |
| 410 | 414 |
| 411 void IncrementErrorsThrown(); | 415 void IncrementErrorsThrown(); |
| 412 int GetErrorsThrown(); | 416 int GetErrorsThrown(); |
| 413 | 417 |
| 414 // Direct slot access. | 418 // Direct slot access. |
| 415 inline JSFunction* closure(); | 419 inline JSFunction* closure(); |
| 416 inline void set_closure(JSFunction* closure); | 420 inline void set_closure(JSFunction* closure); |
| 417 | 421 |
| 418 inline Context* previous(); | 422 inline Context* previous(); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 451 inline Context* native_context(); | 455 inline Context* native_context(); |
| 452 inline void set_native_context(Context* context); | 456 inline void set_native_context(Context* context); |
| 453 | 457 |
| 454 // Predicates for context types. IsNativeContext is also defined on Object | 458 // Predicates for context types. IsNativeContext is also defined on Object |
| 455 // because we frequently have to know if arbitrary objects are natives | 459 // because we frequently have to know if arbitrary objects are natives |
| 456 // contexts. | 460 // contexts. |
| 457 inline bool IsNativeContext(); | 461 inline bool IsNativeContext(); |
| 458 inline bool IsFunctionContext(); | 462 inline bool IsFunctionContext(); |
| 459 inline bool IsCatchContext(); | 463 inline bool IsCatchContext(); |
| 460 inline bool IsWithContext(); | 464 inline bool IsWithContext(); |
| 465 inline bool IsDebugEvaluateContext(); |
| 461 inline bool IsBlockContext(); | 466 inline bool IsBlockContext(); |
| 462 inline bool IsModuleContext(); | 467 inline bool IsModuleContext(); |
| 463 inline bool IsScriptContext(); | 468 inline bool IsScriptContext(); |
| 464 | 469 |
| 465 inline bool HasSameSecurityTokenAs(Context* that); | 470 inline bool HasSameSecurityTokenAs(Context* that); |
| 466 | 471 |
| 467 // Initializes global variable bindings in given script context. | 472 // Initializes global variable bindings in given script context. |
| 468 void InitializeGlobalSlots(); | 473 void InitializeGlobalSlots(); |
| 469 | 474 |
| 470 // A native context holds a list of all functions with optimized code. | 475 // A native context holds a list of all functions with optimized code. |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 566 #endif | 571 #endif |
| 567 | 572 |
| 568 STATIC_ASSERT(kHeaderSize == Internals::kContextHeaderSize); | 573 STATIC_ASSERT(kHeaderSize == Internals::kContextHeaderSize); |
| 569 STATIC_ASSERT(EMBEDDER_DATA_INDEX == Internals::kContextEmbedderDataIndex); | 574 STATIC_ASSERT(EMBEDDER_DATA_INDEX == Internals::kContextEmbedderDataIndex); |
| 570 }; | 575 }; |
| 571 | 576 |
| 572 } // namespace internal | 577 } // namespace internal |
| 573 } // namespace v8 | 578 } // namespace v8 |
| 574 | 579 |
| 575 #endif // V8_CONTEXTS_H_ | 580 #endif // V8_CONTEXTS_H_ |
| OLD | NEW |