• keuchel@chromium.org's avatar
    Reapply r9870 "Remove some initialization checks based on source positions.". · 72dba271
    keuchel@chromium.org authored
    This reverts r9896 "Revert r9870 due to browser-test failures." See below for
    the diff from the previous version for the ia32 platform. The code for other
    platforms has been changed accordingly.
    
    TEST=mjsunit/compiler/lazy-const-lookup.js
    
    diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc
    index 2cbf518..1990f2f 100644
    --- a/src/ia32/full-codegen-ia32.cc
    +++ b/src/ia32/full-codegen-ia32.cc
    @@ -1258,13 +1258,17 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
             // binding is initialized:
             //   function() { f(); let x = 1; function f() { x = 2; } }
             //
    -        // Check that we always have valid source position.
    -        ASSERT(var->initializer_position() != RelocInfo::kNoPosition);
    -        ASSERT(proxy->position() != RelocInfo::kNoPosition);
    -        bool skip_init_check =
    -            var->mode() != CONST &&
    -            var->scope()->DeclarationScope() == scope()->DeclarationScope() &&
    -            var->initializer_position() < proxy->position();
    +        bool skip_init_check;
    +        if (var->scope()->DeclarationScope() != scope()->DeclarationScope()) {
    +          skip_init_check = false;
    +        } else {
    +          // Check that we always have valid source position.
    +          ASSERT(var->initializer_position() != RelocInfo::kNoPosition);
    +          ASSERT(proxy->position() != RelocInfo::kNoPosition);
    +          skip_init_check = var->mode() != CONST &&
    +              var->initializer_position() < proxy->position();
    +        }
    +
             if (!skip_init_check) {
               // Let and const need a read barrier.
               Label done;
    
    Review URL: http://codereview.chromium.org/8479034
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    72dba271
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
es5conform Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
sputnik Loading commit data...
test262 Loading commit data...