• keuchel@chromium.org's avatar
    Reapply r9673 "Scope tree serialization and ScopeIterator cleanup." · 666c4be2
    keuchel@chromium.org authored
    This also includes the two fixes from r9674 and r9675. Here's the diff
    to the previous CL.
    
     --- a/src/runtime.cc
     +++ b/src/runtime.cc
     @@ -11133,17 +11133,26 @@ class ScopeIterator {
            context_(Context::cast(frame->context())),
            nested_scope_chain_(4) {
    
     +    // Catch the case when the debugger stops in an internal function.
     +    Handle<SharedFunctionInfo> shared_info(function_->shared());
     +    if (shared_info->script() == isolate->heap()->undefined_value()) {
     +      if (shared_info->scope_info()->HasContext()) Next();
     +      return;
     +    }
     +
          // Check whether we are in global code or function code. If there is a stack
          // slot for .result then this function has been created for evaluating
          // global code and it is not a real function.
          // Checking for the existence of .result seems fragile, but the scope info
          // saved with the code object does not otherwise have that information.
     -    int index = function_->shared()->scope_info()->
     +    int index = shared_info->scope_info()->
              StackSlotIndex(isolate_->heap()->result_symbol());
    
          // Reparse the code and analyze the scopes.
          ZoneScope zone_scope(isolate, DELETE_ON_EXIT);
     -    Handle<SharedFunctionInfo> shared_info(function_->shared());
          Handle<Script> script(Script::cast(shared_info->script()));
          Scope* scope;
          if (index >= 0) {
    
    Review URL: http://codereview.chromium.org/8344046
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    666c4be2
Name
Last commit
Last update
..
SConscript Loading commit data...
cctest.cc Loading commit data...
cctest.gyp Loading commit data...
cctest.h Loading commit data...
cctest.status Loading commit data...
gay-fixed.cc Loading commit data...
gay-fixed.h Loading commit data...
gay-precision.cc Loading commit data...
gay-precision.h Loading commit data...
gay-shortest.cc Loading commit data...
gay-shortest.h Loading commit data...
log-eq-of-logging-and-traversal.js Loading commit data...
test-accessors.cc Loading commit data...
test-alloc.cc Loading commit data...
test-api.cc Loading commit data...
test-assembler-arm.cc Loading commit data...
test-assembler-ia32.cc Loading commit data...
test-assembler-mips.cc Loading commit data...
test-assembler-x64.cc Loading commit data...
test-ast.cc Loading commit data...
test-bignum-dtoa.cc Loading commit data...
test-bignum.cc Loading commit data...
test-circular-queue.cc Loading commit data...
test-compiler.cc Loading commit data...
test-conversions.cc Loading commit data...
test-cpu-profiler.cc Loading commit data...
test-dataflow.cc Loading commit data...
test-debug.cc Loading commit data...
test-decls.cc Loading commit data...
test-deoptimization.cc Loading commit data...
test-dictionary.cc Loading commit data...
test-disasm-arm.cc Loading commit data...
test-disasm-ia32.cc Loading commit data...
test-disasm-mips.cc Loading commit data...
test-diy-fp.cc Loading commit data...
test-double.cc Loading commit data...
test-dtoa.cc Loading commit data...
test-fast-dtoa.cc Loading commit data...
test-fixed-dtoa.cc Loading commit data...
test-flags.cc Loading commit data...
test-func-name-inference.cc Loading commit data...
test-hashmap.cc Loading commit data...
test-heap-profiler.cc Loading commit data...
test-heap.cc Loading commit data...
test-list.cc Loading commit data...
test-liveedit.cc Loading commit data...
test-lock.cc Loading commit data...
test-lockers.cc Loading commit data...
test-log-stack-tracer.cc Loading commit data...
test-log.cc Loading commit data...
test-macro-assembler-x64.cc Loading commit data...
test-mark-compact.cc Loading commit data...
test-parsing.cc Loading commit data...
test-platform-linux.cc Loading commit data...
test-platform-macos.cc Loading commit data...
test-platform-nullos.cc Loading commit data...
test-platform-tls.cc Loading commit data...
test-platform-win32.cc Loading commit data...
test-profile-generator.cc Loading commit data...
test-regexp.cc Loading commit data...
test-reloc-info.cc Loading commit data...
test-serialize.cc Loading commit data...
test-sockets.cc Loading commit data...
test-spaces.cc Loading commit data...
test-strings.cc Loading commit data...
test-strtod.cc Loading commit data...
test-thread-termination.cc Loading commit data...
test-threads.cc Loading commit data...
test-unbound-queue.cc Loading commit data...
test-utils.cc Loading commit data...
test-version.cc Loading commit data...
test-weakmaps.cc Loading commit data...
testcfg.py Loading commit data...