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

Side by Side Diff: src/isolate.cc

Issue 14139033: Clean up VMState a little bit. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: fixed mistake Created 7 years, 8 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/isolate.h ('k') | src/log.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 912 matching lines...) Expand 10 before | Expand all | Expand 10 after
923 // Get the data object from access check info. 923 // Get the data object from access check info.
924 JSFunction* constructor = JSFunction::cast(receiver->map()->constructor()); 924 JSFunction* constructor = JSFunction::cast(receiver->map()->constructor());
925 if (!constructor->shared()->IsApiFunction()) return; 925 if (!constructor->shared()->IsApiFunction()) return;
926 Object* data_obj = 926 Object* data_obj =
927 constructor->shared()->get_api_func_data()->access_check_info(); 927 constructor->shared()->get_api_func_data()->access_check_info();
928 if (data_obj == heap_.undefined_value()) return; 928 if (data_obj == heap_.undefined_value()) return;
929 929
930 HandleScope scope(this); 930 HandleScope scope(this);
931 Handle<JSObject> receiver_handle(receiver); 931 Handle<JSObject> receiver_handle(receiver);
932 Handle<Object> data(AccessCheckInfo::cast(data_obj)->data(), this); 932 Handle<Object> data(AccessCheckInfo::cast(data_obj)->data(), this);
933 { VMState state(this, EXTERNAL); 933 { VMState<EXTERNAL> state(this);
934 thread_local_top()->failed_access_check_callback_( 934 thread_local_top()->failed_access_check_callback_(
935 v8::Utils::ToLocal(receiver_handle), 935 v8::Utils::ToLocal(receiver_handle),
936 type, 936 type,
937 v8::Utils::ToLocal(data)); 937 v8::Utils::ToLocal(data));
938 } 938 }
939 } 939 }
940 940
941 941
942 enum MayAccessDecision { 942 enum MayAccessDecision {
943 YES, NO, UNKNOWN 943 YES, NO, UNKNOWN
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1002 if (!callback) return false; 1002 if (!callback) return false;
1003 1003
1004 HandleScope scope(this); 1004 HandleScope scope(this);
1005 Handle<JSObject> receiver_handle(receiver, this); 1005 Handle<JSObject> receiver_handle(receiver, this);
1006 Handle<Object> key_handle(key, this); 1006 Handle<Object> key_handle(key, this);
1007 Handle<Object> data(AccessCheckInfo::cast(data_obj)->data(), this); 1007 Handle<Object> data(AccessCheckInfo::cast(data_obj)->data(), this);
1008 LOG(this, ApiNamedSecurityCheck(key)); 1008 LOG(this, ApiNamedSecurityCheck(key));
1009 bool result = false; 1009 bool result = false;
1010 { 1010 {
1011 // Leaving JavaScript. 1011 // Leaving JavaScript.
1012 VMState state(this, EXTERNAL); 1012 VMState<EXTERNAL> state(this);
1013 result = callback(v8::Utils::ToLocal(receiver_handle), 1013 result = callback(v8::Utils::ToLocal(receiver_handle),
1014 v8::Utils::ToLocal(key_handle), 1014 v8::Utils::ToLocal(key_handle),
1015 type, 1015 type,
1016 v8::Utils::ToLocal(data)); 1016 v8::Utils::ToLocal(data));
1017 } 1017 }
1018 return result; 1018 return result;
1019 } 1019 }
1020 1020
1021 1021
1022 bool Isolate::MayIndexedAccess(JSObject* receiver, 1022 bool Isolate::MayIndexedAccess(JSObject* receiver,
(...skipping 21 matching lines...) Expand all
1044 1044
1045 if (!callback) return false; 1045 if (!callback) return false;
1046 1046
1047 HandleScope scope(this); 1047 HandleScope scope(this);
1048 Handle<JSObject> receiver_handle(receiver, this); 1048 Handle<JSObject> receiver_handle(receiver, this);
1049 Handle<Object> data(AccessCheckInfo::cast(data_obj)->data(), this); 1049 Handle<Object> data(AccessCheckInfo::cast(data_obj)->data(), this);
1050 LOG(this, ApiIndexedSecurityCheck(index)); 1050 LOG(this, ApiIndexedSecurityCheck(index));
1051 bool result = false; 1051 bool result = false;
1052 { 1052 {
1053 // Leaving JavaScript. 1053 // Leaving JavaScript.
1054 VMState state(this, EXTERNAL); 1054 VMState<EXTERNAL> state(this);
1055 result = callback(v8::Utils::ToLocal(receiver_handle), 1055 result = callback(v8::Utils::ToLocal(receiver_handle),
1056 index, 1056 index,
1057 type, 1057 type,
1058 v8::Utils::ToLocal(data)); 1058 v8::Utils::ToLocal(data));
1059 } 1059 }
1060 return result; 1060 return result;
1061 } 1061 }
1062 1062
1063 1063
1064 const char* const Isolate::kStackOverflowMessage = 1064 const char* const Isolate::kStackOverflowMessage =
(...skipping 1044 matching lines...) Expand 10 before | Expand all | Expand 10 after
2109 stub_cache_ = new StubCache(this, runtime_zone()); 2109 stub_cache_ = new StubCache(this, runtime_zone());
2110 regexp_stack_ = new RegExpStack(); 2110 regexp_stack_ = new RegExpStack();
2111 regexp_stack_->isolate_ = this; 2111 regexp_stack_->isolate_ = this;
2112 date_cache_ = new DateCache(); 2112 date_cache_ = new DateCache();
2113 code_stub_interface_descriptors_ = 2113 code_stub_interface_descriptors_ =
2114 new CodeStubInterfaceDescriptor[CodeStub::NUMBER_OF_IDS]; 2114 new CodeStubInterfaceDescriptor[CodeStub::NUMBER_OF_IDS];
2115 cpu_profiler_ = new CpuProfiler(this); 2115 cpu_profiler_ = new CpuProfiler(this);
2116 heap_profiler_ = new HeapProfiler(heap()); 2116 heap_profiler_ = new HeapProfiler(heap());
2117 2117
2118 // Enable logging before setting up the heap 2118 // Enable logging before setting up the heap
2119 logger_->SetUp(); 2119 logger_->SetUp(this);
2120 2120
2121 // Initialize other runtime facilities 2121 // Initialize other runtime facilities
2122 #if defined(USE_SIMULATOR) 2122 #if defined(USE_SIMULATOR)
2123 #if defined(V8_TARGET_ARCH_ARM) || defined(V8_TARGET_ARCH_MIPS) 2123 #if defined(V8_TARGET_ARCH_ARM) || defined(V8_TARGET_ARCH_MIPS)
2124 Simulator::Initialize(this); 2124 Simulator::Initialize(this);
2125 #endif 2125 #endif
2126 #endif 2126 #endif
2127 2127
2128 { // NOLINT 2128 { // NOLINT
2129 // Ensure that the thread has a valid stack guard. The v8::Locker object 2129 // Ensure that the thread has a valid stack guard. The v8::Locker object
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
2450 2450
2451 #ifdef DEBUG 2451 #ifdef DEBUG
2452 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ 2452 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \
2453 const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_); 2453 const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_);
2454 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) 2454 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET)
2455 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) 2455 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET)
2456 #undef ISOLATE_FIELD_OFFSET 2456 #undef ISOLATE_FIELD_OFFSET
2457 #endif 2457 #endif
2458 2458
2459 } } // namespace v8::internal 2459 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/isolate.h ('k') | src/log.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698