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 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
421 bool is_declaration_context(); | 421 bool is_declaration_context(); |
422 | 422 |
423 // Get the next closure's context on the context chain. | 423 // Get the next closure's context on the context chain. |
424 Context* closure_context(); | 424 Context* closure_context(); |
425 | 425 |
426 // Returns a JSGlobalProxy object or null. | 426 // Returns a JSGlobalProxy object or null. |
427 JSObject* global_proxy(); | 427 JSObject* global_proxy(); |
428 void set_global_proxy(JSObject* global); | 428 void set_global_proxy(JSObject* global); |
429 | 429 |
430 // Get the JSGlobalObject object. | 430 // Get the JSGlobalObject object. |
431 JSGlobalObject* global_object(); | 431 V8_EXPORT_PRIVATE JSGlobalObject* global_object(); |
432 | 432 |
433 // Get the script context by traversing the context chain. | 433 // Get the script context by traversing the context chain. |
434 Context* script_context(); | 434 Context* script_context(); |
435 | 435 |
436 // Compute the native context. | 436 // Compute the native context. |
437 inline Context* native_context(); | 437 inline Context* native_context(); |
438 inline void set_native_context(Context* context); | 438 inline void set_native_context(Context* context); |
439 | 439 |
440 // Predicates for context types. IsNativeContext is also defined on Object | 440 // Predicates for context types. IsNativeContext is also defined on Object |
441 // because we frequently have to know if arbitrary objects are natives | 441 // because we frequently have to know if arbitrary objects are natives |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
544 kHeaderSize, kSize, kSize> ScavengeBodyDescriptor; | 544 kHeaderSize, kSize, kSize> ScavengeBodyDescriptor; |
545 | 545 |
546 typedef FixedBodyDescriptor< | 546 typedef FixedBodyDescriptor< |
547 kHeaderSize, | 547 kHeaderSize, |
548 kHeaderSize + FIRST_WEAK_SLOT * kPointerSize, | 548 kHeaderSize + FIRST_WEAK_SLOT * kPointerSize, |
549 kSize> MarkCompactBodyDescriptor; | 549 kSize> MarkCompactBodyDescriptor; |
550 | 550 |
551 private: | 551 private: |
552 #ifdef DEBUG | 552 #ifdef DEBUG |
553 // Bootstrapping-aware type checks. | 553 // Bootstrapping-aware type checks. |
554 static bool IsBootstrappingOrNativeContext(Isolate* isolate, Object* object); | 554 V8_EXPORT_PRIVATE static bool IsBootstrappingOrNativeContext(Isolate* isolate, |
| 555 Object* object); |
555 static bool IsBootstrappingOrValidParentContext(Object* object, Context* kid); | 556 static bool IsBootstrappingOrValidParentContext(Object* object, Context* kid); |
556 #endif | 557 #endif |
557 | 558 |
558 STATIC_ASSERT(kHeaderSize == Internals::kContextHeaderSize); | 559 STATIC_ASSERT(kHeaderSize == Internals::kContextHeaderSize); |
559 STATIC_ASSERT(EMBEDDER_DATA_INDEX == Internals::kContextEmbedderDataIndex); | 560 STATIC_ASSERT(EMBEDDER_DATA_INDEX == Internals::kContextEmbedderDataIndex); |
560 }; | 561 }; |
561 | 562 |
562 } // namespace internal | 563 } // namespace internal |
563 } // namespace v8 | 564 } // namespace v8 |
564 | 565 |
565 #endif // V8_CONTEXTS_H_ | 566 #endif // V8_CONTEXTS_H_ |
OLD | NEW |