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

Side by Side Diff: src/ic/ic.cc

Issue 2909893002: [debug] Untangle DebugInfo from break point support (Closed)
Patch Set: Address comments Created 3 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
« no previous file with comments | « src/factory.cc ('k') | src/objects.cc » ('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 // 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 #include "src/ic/ic.h" 5 #include "src/ic/ic.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/api-arguments-inl.h" 8 #include "src/api-arguments-inl.h"
9 #include "src/api.h" 9 #include "src/api.h"
10 #include "src/arguments.h" 10 #include "src/arguments.h"
(...skipping 1129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1140 } 1140 }
1141 1141
1142 Handle<Object> accessors = lookup->GetAccessors(); 1142 Handle<Object> accessors = lookup->GetAccessors();
1143 if (accessors->IsAccessorPair()) { 1143 if (accessors->IsAccessorPair()) {
1144 if (lookup->TryLookupCachedProperty()) { 1144 if (lookup->TryLookupCachedProperty()) {
1145 DCHECK_EQ(LookupIterator::DATA, lookup->state()); 1145 DCHECK_EQ(LookupIterator::DATA, lookup->state());
1146 return ComputeHandler(lookup); 1146 return ComputeHandler(lookup);
1147 } 1147 }
1148 1148
1149 // When debugging we need to go the slow path to flood the accessor. 1149 // When debugging we need to go the slow path to flood the accessor.
1150 if (GetHostFunction()->shared()->HasDebugInfo()) { 1150 if (GetHostFunction()->shared()->HasBreakInfo()) {
1151 TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub); 1151 TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
1152 return slow_stub(); 1152 return slow_stub();
1153 } 1153 }
1154 1154
1155 Handle<Object> getter(AccessorPair::cast(*accessors)->getter(), 1155 Handle<Object> getter(AccessorPair::cast(*accessors)->getter(),
1156 isolate()); 1156 isolate());
1157 if (!getter->IsJSFunction() && !getter->IsFunctionTemplateInfo()) { 1157 if (!getter->IsJSFunction() && !getter->IsFunctionTemplateInfo()) {
1158 TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub); 1158 TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
1159 return slow_stub(); 1159 return slow_stub();
1160 } 1160 }
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
1276 } 1276 }
1277 1277
1278 Handle<Code> LoadIC::CompileHandler(LookupIterator* lookup) { 1278 Handle<Code> LoadIC::CompileHandler(LookupIterator* lookup) {
1279 DCHECK_EQ(LookupIterator::ACCESSOR, lookup->state()); 1279 DCHECK_EQ(LookupIterator::ACCESSOR, lookup->state());
1280 Handle<JSObject> holder = lookup->GetHolder<JSObject>(); 1280 Handle<JSObject> holder = lookup->GetHolder<JSObject>();
1281 Handle<Map> map = receiver_map(); 1281 Handle<Map> map = receiver_map();
1282 1282
1283 Handle<Object> accessors = lookup->GetAccessors(); 1283 Handle<Object> accessors = lookup->GetAccessors();
1284 DCHECK(accessors->IsAccessorPair()); 1284 DCHECK(accessors->IsAccessorPair());
1285 DCHECK(holder->HasFastProperties()); 1285 DCHECK(holder->HasFastProperties());
1286 DCHECK(!GetHostFunction()->shared()->HasDebugInfo()); 1286 DCHECK(!GetHostFunction()->shared()->HasBreakInfo());
1287 Handle<Object> getter(Handle<AccessorPair>::cast(accessors)->getter(), 1287 Handle<Object> getter(Handle<AccessorPair>::cast(accessors)->getter(),
1288 isolate()); 1288 isolate());
1289 CallOptimization call_optimization(getter); 1289 CallOptimization call_optimization(getter);
1290 NamedLoadHandlerCompiler compiler(isolate(), map, holder); 1290 NamedLoadHandlerCompiler compiler(isolate(), map, holder);
1291 DCHECK(call_optimization.is_simple_api_call()); 1291 DCHECK(call_optimization.is_simple_api_call());
1292 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadCallback); 1292 TRACE_HANDLER_STATS(isolate(), LoadIC_LoadCallback);
1293 int index = lookup->GetAccessorIndex(); 1293 int index = lookup->GetAccessorIndex();
1294 Handle<Code> code = compiler.CompileLoadCallback( 1294 Handle<Code> code = compiler.CompileLoadCallback(
1295 lookup->name(), call_optimization, index, slow_stub()); 1295 lookup->name(), call_optimization, index, slow_stub());
1296 return code; 1296 return code;
(...skipping 1693 matching lines...) Expand 10 before | Expand all | Expand 10 after
2990 DCHECK_EQ(LookupIterator::INTERCEPTOR, it.state()); 2990 DCHECK_EQ(LookupIterator::INTERCEPTOR, it.state());
2991 it.Next(); 2991 it.Next();
2992 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, 2992 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
2993 Object::GetProperty(&it)); 2993 Object::GetProperty(&it));
2994 } 2994 }
2995 2995
2996 return *result; 2996 return *result;
2997 } 2997 }
2998 } // namespace internal 2998 } // namespace internal
2999 } // namespace v8 2999 } // namespace v8
OLDNEW
« no previous file with comments | « src/factory.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698