Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(177)

Side by Side Diff: src/isolate.h

Issue 2840018: [Isolates] Moved more compilation-related globals (builtins, runtime, &c.)... (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/isolates/
Patch Set: rebase Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/ic.cc ('k') | src/isolate.cc » ('j') | src/runtime.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 14 matching lines...) Expand all
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 27
28 #ifndef V8_ISOLATE_H_ 28 #ifndef V8_ISOLATE_H_
29 #define V8_ISOLATE_H_ 29 #define V8_ISOLATE_H_
30 30
31 #define V8_USE_TLS_FOR_GLOBAL_ISOLATE 31 #define V8_USE_TLS_FOR_GLOBAL_ISOLATE
32 32
33 #include "allocation.h" 33 #include "allocation.h"
34 #include "apiutils.h" 34 #include "apiutils.h"
35 #include "builtins.h"
35 #include "contexts.h" 36 #include "contexts.h"
36 #include "execution.h" 37 #include "execution.h"
37 #include "frames-inl.h" 38 #include "frames-inl.h"
38 #include "frames.h" 39 #include "frames.h"
39 #include "global-handles.h" 40 #include "global-handles.h"
40 #include "handles.h" 41 #include "handles.h"
41 #include "heap.h" 42 #include "heap.h"
43 #include "runtime.h"
42 #include "zone.h" 44 #include "zone.h"
43 #include "../include/v8-debug.h" 45 #include "../include/v8-debug.h"
44 46
45 namespace v8 { 47 namespace v8 {
46 namespace internal { 48 namespace internal {
47 49
50 class AstSentinels;
48 class Bootstrapper; 51 class Bootstrapper;
49 class CompilationCache; 52 class CompilationCache;
50 class ContextSlotCache; 53 class ContextSlotCache;
51 class ContextSwitcher; 54 class ContextSwitcher;
52 class CodeRange; 55 class CodeRange;
53 class CpuFeatures; 56 class CpuFeatures;
54 class Deserializer; 57 class Deserializer;
58 class EmptyStatement;
59 class FunctionInfoListener;
55 class HandleScopeImplementer; 60 class HandleScopeImplementer;
56 class NoAllocationStringAllocator; 61 class NoAllocationStringAllocator;
57 class PreallocatedMemoryThread; 62 class PreallocatedMemoryThread;
58 class SaveContext; 63 class SaveContext;
59 class StubCache; 64 class StubCache;
60 class StringInputBuffer; 65 class StringInputBuffer;
61 class StringTracker; 66 class StringTracker;
62 class ScannerCharacterClasses; 67 class ScannerCharacterClasses;
63 class ThreadVisitor; // Defined in v8threads.h 68 class ThreadVisitor; // Defined in v8threads.h
64 class ThreadManager; 69 class ThreadManager;
70 class VMState;
71
72 typedef void* ExternalReferenceRedirector(void* original, bool fp_return);
65 73
66 74
67 #ifdef ENABLE_DEBUGGER_SUPPORT 75 #ifdef ENABLE_DEBUGGER_SUPPORT
68 class Debugger; 76 class Debugger;
69 #endif 77 #endif
70 78
71 #define RETURN_IF_SCHEDULED_EXCEPTION() \ 79 #define RETURN_IF_SCHEDULED_EXCEPTION() \
72 if (Isolate::Current()->has_scheduled_exception()) \ 80 if (Isolate::Current()->has_scheduled_exception()) \
73 return Isolate::Current()->PromoteScheduledException() 81 return Isolate::Current()->PromoteScheduledException()
74 82
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 /* Assembler state. */ \ 196 /* Assembler state. */ \
189 /* A previously allocated buffer of kMinimalBufferSize bytes, or NULL. */ \ 197 /* A previously allocated buffer of kMinimalBufferSize bytes, or NULL. */ \
190 V(byte*, assembler_spare_buffer, NULL) \ 198 V(byte*, assembler_spare_buffer, NULL) \
191 /*This static counter ensures that NativeAllocationCheckers can be nested.*/ \ 199 /*This static counter ensures that NativeAllocationCheckers can be nested.*/ \
192 V(int, allocation_disallowed, 0) \ 200 V(int, allocation_disallowed, 0) \
193 V(FatalErrorCallback, exception_behavior, NULL) \ 201 V(FatalErrorCallback, exception_behavior, NULL) \
194 V(v8::Debug::MessageHandler, message_handler, NULL) \ 202 V(v8::Debug::MessageHandler, message_handler, NULL) \
195 /* To distinguish the function templates, so that we can find them in the */ \ 203 /* To distinguish the function templates, so that we can find them in the */ \
196 /* function cache of the global context. */ \ 204 /* function cache of the global context. */ \
197 V(int, next_serial_number, 0) \ 205 V(int, next_serial_number, 0) \
206 V(ExternalReferenceRedirector*, external_reference_redirector, NULL) \
207 V(bool, always_allow_natives_syntax, false) \
208 /* A stack of VM states. */ \
209 V(VMState*, vm_state, NULL) \
210 /* Part of the state of liveedit. */ \
211 V(FunctionInfoListener*, active_function_info_listener, NULL) \
198 /* State for Relocatable. */ \ 212 /* State for Relocatable. */ \
199 V(Relocatable*, relocatable_top, NULL) \ 213 V(Relocatable*, relocatable_top, NULL) \
200 /* State for CodeEntry in profile-generator. */ \ 214 /* State for CodeEntry in profile-generator. */ \
201 V(unsigned, code_entry_next_call_uid, NULL) \ 215 V(unsigned, code_entry_next_call_uid, NULL) \
202 ISOLATE_PLATFORM_INIT_LIST(V) 216 ISOLATE_PLATFORM_INIT_LIST(V)
203 217
204 class Isolate { 218 class Isolate {
205 public: 219 public:
206 ~Isolate(); 220 ~Isolate();
207 221
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 // a builtin object, or a js global object. 361 // a builtin object, or a js global object.
348 Handle<GlobalObject> global() { 362 Handle<GlobalObject> global() {
349 return Handle<GlobalObject>(context()->global()); 363 return Handle<GlobalObject>(context()->global());
350 } 364 }
351 365
352 // Returns the global proxy object of the current context. 366 // Returns the global proxy object of the current context.
353 Object* global_proxy() { 367 Object* global_proxy() {
354 return context()->global_proxy(); 368 return context()->global_proxy();
355 } 369 }
356 370
357 Handle<JSBuiltinsObject> builtins() { 371 Handle<JSBuiltinsObject> js_builtins_object() {
358 return Handle<JSBuiltinsObject>(thread_local_top_.context_->builtins()); 372 return Handle<JSBuiltinsObject>(thread_local_top_.context_->builtins());
359 } 373 }
360 374
361 static int ArchiveSpacePerThread() { return sizeof(ThreadLocalTop); } 375 static int ArchiveSpacePerThread() { return sizeof(ThreadLocalTop); }
362 void FreeThreadResources() { thread_local_top_.Free(); } 376 void FreeThreadResources() { thread_local_top_.Free(); }
363 377
364 // This method is called by the api after operations that may throw 378 // This method is called by the api after operations that may throw
365 // exceptions. If an exception was thrown and not handled by an external 379 // exceptions. If an exception was thrown and not handled by an external
366 // handler the exception is scheduled to be rethrown when we return to running 380 // handler the exception is scheduled to be rethrown when we return to running
367 // JavaScript code. If an exception is scheduled true is returned. 381 // JavaScript code. If an exception is scheduled true is returned.
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 } 561 }
548 562
549 StringInputBuffer* objects_string_compare_buffer_b() { 563 StringInputBuffer* objects_string_compare_buffer_b() {
550 return &objects_string_compare_buffer_b_; 564 return &objects_string_compare_buffer_b_;
551 } 565 }
552 566
553 StaticResource<StringInputBuffer>* objects_string_input_buffer() { 567 StaticResource<StringInputBuffer>* objects_string_input_buffer() {
554 return &objects_string_input_buffer_; 568 return &objects_string_input_buffer_;
555 } 569 }
556 570
571 AstSentinels* ast_sentinels() { return ast_sentinels_; }
572
573 InlineRuntimeFunctionsTable* inline_runtime_functions_table() {
574 return &inline_runtime_functions_table_;
575 }
576
577 RuntimeState* runtime_state() { return &runtime_state_; }
578
579 StringInputBuffer* liveedit_compare_substrings_buf1() {
580 return &liveedit_compare_substrings_buf1_;
581 }
582
583 StringInputBuffer* liveedit_compare_substrings_buf2() {
584 return &liveedit_compare_substrings_buf2_;
585 }
586
587 StaticResource<SafeStringInputBuffer>* compiler_safe_string_input_buffer() {
588 return &compiler_safe_string_input_buffer_;
589 }
590
591 Builtins* builtins() { return &builtins_; }
592
557 void* PreallocatedStorageNew(size_t size); 593 void* PreallocatedStorageNew(size_t size);
558 void PreallocatedStorageDelete(void* p); 594 void PreallocatedStorageDelete(void* p);
559 void PreallocatedStorageInit(size_t size); 595 void PreallocatedStorageInit(size_t size);
560 596
561 #ifdef ENABLE_DEBUGGER_SUPPORT 597 #ifdef ENABLE_DEBUGGER_SUPPORT
562 Debugger* debugger() { return debugger_; } 598 Debugger* debugger() { return debugger_; }
563 #endif 599 #endif
564 600
565 #ifdef DEBUG 601 #ifdef DEBUG
566 HistogramInfo* heap_histograms() { return heap_histograms_; } 602 HistogramInfo* heap_histograms() { return heap_histograms_; }
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 HandleScopeImplementer* handle_scope_implementer_; 684 HandleScopeImplementer* handle_scope_implementer_;
649 ScannerCharacterClasses* scanner_character_classes_; 685 ScannerCharacterClasses* scanner_character_classes_;
650 Zone zone_; 686 Zone zone_;
651 PreallocatedStorage in_use_list_; 687 PreallocatedStorage in_use_list_;
652 PreallocatedStorage free_list_; 688 PreallocatedStorage free_list_;
653 bool preallocated_storage_preallocated_; 689 bool preallocated_storage_preallocated_;
654 StringInputBuffer* write_input_buffer_; 690 StringInputBuffer* write_input_buffer_;
655 GlobalHandles* global_handles_; 691 GlobalHandles* global_handles_;
656 ContextSwitcher* context_switcher_; 692 ContextSwitcher* context_switcher_;
657 ThreadManager* thread_manager_; 693 ThreadManager* thread_manager_;
694 AstSentinels* ast_sentinels_;
695 InlineRuntimeFunctionsTable inline_runtime_functions_table_;
696 RuntimeState runtime_state_;
697 StringInputBuffer liveedit_compare_substrings_buf1_;
698 StringInputBuffer liveedit_compare_substrings_buf2_;
699 StaticResource<SafeStringInputBuffer> compiler_safe_string_input_buffer_;
700 Builtins builtins_;
658 StringTracker* string_tracker_; 701 StringTracker* string_tracker_;
659 unibrow::Mapping<unibrow::Ecma262UnCanonicalize> jsregexp_uncanonicalize_; 702 unibrow::Mapping<unibrow::Ecma262UnCanonicalize> jsregexp_uncanonicalize_;
660 unibrow::Mapping<unibrow::CanonicalizationRange> jsregexp_canonrange_; 703 unibrow::Mapping<unibrow::CanonicalizationRange> jsregexp_canonrange_;
661 StringInputBuffer objects_string_compare_buffer_a_; 704 StringInputBuffer objects_string_compare_buffer_a_;
662 StringInputBuffer objects_string_compare_buffer_b_; 705 StringInputBuffer objects_string_compare_buffer_b_;
663 StaticResource<StringInputBuffer> objects_string_input_buffer_; 706 StaticResource<StringInputBuffer> objects_string_input_buffer_;
664 707
665 #ifdef DEBUG 708 #ifdef DEBUG
666 // A static array of histogram info for each type. 709 // A static array of histogram info for each type.
667 HistogramInfo heap_histograms_[LAST_TYPE + 1]; 710 HistogramInfo heap_histograms_[LAST_TYPE + 1];
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 // Temporary macro to be used to flag classes that are completely converted 868 // Temporary macro to be used to flag classes that are completely converted
826 // to be isolate-friendly. Their mix of static/nonstatic methods/fields is 869 // to be isolate-friendly. Their mix of static/nonstatic methods/fields is
827 // correct. 870 // correct.
828 #define ISOLATED_CLASS class 871 #define ISOLATED_CLASS class
829 872
830 } } // namespace v8::internal 873 } } // namespace v8::internal
831 874
832 #include "allocation-inl.h" 875 #include "allocation-inl.h"
833 876
834 #endif // V8_ISOLATE_H_ 877 #endif // V8_ISOLATE_H_
OLDNEW
« no previous file with comments | « src/ic.cc ('k') | src/isolate.cc » ('j') | src/runtime.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698