| Index: src/debug.cc
|
| diff --git a/src/debug.cc b/src/debug.cc
|
| index 0ffdd0043e57c55f6d6e92720f4f0d4f3b2f0a49..e3ef2468cea6b94dbaf7b506760eccc992861627 100644
|
| --- a/src/debug.cc
|
| +++ b/src/debug.cc
|
| @@ -390,6 +390,20 @@ void BreakLocationIterator::ClearDebugBreak() {
|
| }
|
|
|
|
|
| +bool BreakLocationIterator::IsStepInLocation(Isolate* isolate) {
|
| + if (RelocInfo::IsConstructCall(rmode())) {
|
| + return true;
|
| + } else if (RelocInfo::IsCodeTarget(rmode())) {
|
| + HandleScope scope(debug_info_->GetIsolate());
|
| + Address target = rinfo()->target_address();
|
| + Handle<Code> target_code(Code::GetCodeFromTargetAddress(target));
|
| + return target_code->is_call_stub() || target_code->is_keyed_call_stub();
|
| + } else {
|
| + return false;
|
| + }
|
| +}
|
| +
|
| +
|
| void BreakLocationIterator::PrepareStepIn(Isolate* isolate) {
|
| HandleScope scope(isolate);
|
|
|
| @@ -606,7 +620,7 @@ const int Debug::kFrameDropperFrameSize = 4;
|
| void ScriptCache::Add(Handle<Script> script) {
|
| GlobalHandles* global_handles = Isolate::Current()->global_handles();
|
| // Create an entry in the hash map for the script.
|
| - int id = Smi::cast(script->id())->value();
|
| + int id = script->id()->value();
|
| HashMap::Entry* entry =
|
| HashMap::Lookup(reinterpret_cast<void*>(id), Hash(id), true);
|
| if (entry->value != NULL) {
|
| @@ -674,7 +688,7 @@ void ScriptCache::HandleWeakScript(v8::Isolate* isolate,
|
| ASSERT((*location)->IsScript());
|
|
|
| // Remove the entry from the cache.
|
| - int id = Smi::cast((*location)->id())->value();
|
| + int id = (*location)->id()->value();
|
| script_cache->Remove(reinterpret_cast<void*>(id), Hash(id));
|
| script_cache->collected_scripts_.Add(id);
|
|
|
|
|