OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 4997 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5008 SaveContext* save = Top::save_context(); | 5008 SaveContext* save = Top::save_context(); |
5009 while (save != NULL && !save->below(it.frame())) { | 5009 while (save != NULL && !save->below(it.frame())) { |
5010 save = save->prev(); | 5010 save = save->prev(); |
5011 } | 5011 } |
5012 ASSERT(save != NULL); | 5012 ASSERT(save != NULL); |
5013 | 5013 |
5014 // Get the frame id. | 5014 // Get the frame id. |
5015 Handle<Object> frame_id(WrapFrameId(it.frame()->id())); | 5015 Handle<Object> frame_id(WrapFrameId(it.frame()->id())); |
5016 | 5016 |
5017 // Find source position. | 5017 // Find source position. |
5018 int position = it.frame()->FindCode()->SourcePosition(it.frame()->pc()); | 5018 int position = it.frame()->code()->SourcePosition(it.frame()->pc()); |
5019 | 5019 |
5020 // Check for constructor frame. | 5020 // Check for constructor frame. |
5021 bool constructor = it.frame()->IsConstructor(); | 5021 bool constructor = it.frame()->IsConstructor(); |
5022 | 5022 |
5023 // Get code and read scope info from it for local variable information. | 5023 // Get code and read scope info from it for local variable information. |
5024 Handle<Code> code(it.frame()->FindCode()); | 5024 Handle<Code> code(it.frame()->code()); |
5025 ScopeInfo<> info(*code); | 5025 ScopeInfo<> info(*code); |
5026 | 5026 |
5027 // Get the context. | 5027 // Get the context. |
5028 Handle<Context> context(Context::cast(it.frame()->context())); | 5028 Handle<Context> context(Context::cast(it.frame()->context())); |
5029 | 5029 |
5030 // Get the locals names and values into a temporary array. | 5030 // Get the locals names and values into a temporary array. |
5031 // | 5031 // |
5032 // TODO(1240907): Hide compiler-introduced stack variables | 5032 // TODO(1240907): Hide compiler-introduced stack variables |
5033 // (e.g. .result)? For users of the debugger, they will probably be | 5033 // (e.g. .result)? For users of the debugger, they will probably be |
5034 // confusing. | 5034 // confusing. |
(...skipping 1061 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6096 } else { | 6096 } else { |
6097 // Handle last resort GC and make sure to allow future allocations | 6097 // Handle last resort GC and make sure to allow future allocations |
6098 // to grow the heap without causing GCs (if possible). | 6098 // to grow the heap without causing GCs (if possible). |
6099 Counters::gc_last_resort_from_js.Increment(); | 6099 Counters::gc_last_resort_from_js.Increment(); |
6100 Heap::CollectAllGarbage(); | 6100 Heap::CollectAllGarbage(); |
6101 } | 6101 } |
6102 } | 6102 } |
6103 | 6103 |
6104 | 6104 |
6105 } } // namespace v8::internal | 6105 } } // namespace v8::internal |
OLD | NEW |