| Index: src/debug/debug-scopes.cc
|
| diff --git a/src/debug/debug-scopes.cc b/src/debug/debug-scopes.cc
|
| index fade076b18c189e1fae8583b1c1ac46a1c21cc35..b91657289edbc49dd1aa419f320a106848024594 100644
|
| --- a/src/debug/debug-scopes.cc
|
| +++ b/src/debug/debug-scopes.cc
|
| @@ -6,13 +6,14 @@
|
|
|
| #include <memory>
|
|
|
| +#include "src/ast/ast.h"
|
| #include "src/ast/scopes.h"
|
| #include "src/debug/debug.h"
|
| #include "src/frames-inl.h"
|
| #include "src/globals.h"
|
| #include "src/isolate-inl.h"
|
| #include "src/parsing/parse-info.h"
|
| -#include "src/parsing/parser.h"
|
| +#include "src/parsing/parsing.h"
|
| #include "src/parsing/rewriter.h"
|
|
|
| namespace v8 {
|
| @@ -88,6 +89,7 @@ ScopeIterator::ScopeIterator(Isolate* isolate, FrameInspector* frame_inspector,
|
| // Check whether we are in global, eval or function code.
|
| Zone zone(isolate->allocator(), ZONE_NAME);
|
| std::unique_ptr<ParseInfo> info;
|
| + bool successfully_parsed = false;
|
| if (scope_info->scope_type() != FUNCTION_SCOPE) {
|
| // Global or eval code.
|
| Handle<Script> script(Script::cast(shared_info->script()));
|
| @@ -105,11 +107,13 @@ ScopeIterator::ScopeIterator(Isolate* isolate, FrameInspector* frame_inspector,
|
| } else {
|
| DCHECK(scope_info->scope_type() == SCRIPT_SCOPE);
|
| }
|
| + successfully_parsed = parsing::ParseProgram(info.get());
|
| } else {
|
| // Inner function.
|
| info.reset(new ParseInfo(&zone, shared_info));
|
| + successfully_parsed = parsing::ParseFunction(info.get());
|
| }
|
| - if (Parser::ParseStatic(info.get()) && Rewriter::Rewrite(info.get())) {
|
| + if (successfully_parsed && Rewriter::Rewrite(info.get())) {
|
| DeclarationScope* scope = info->literal()->scope();
|
| if (!ignore_nested_scopes || collect_non_locals) {
|
| CollectNonLocals(info.get(), scope);
|
|
|