Changeset 127987 in webkit for trunk/Source/JavaScriptCore/parser


Ignore:
Timestamp:
Sep 9, 2012, 10:10:21 AM (13 years ago)
Author:
[email protected]
Message:

Rolled out <http://trac.webkit.org/changeset/127939> because it broke
fast/js/named-function-expression.html.

Refactored bytecode generator initialization to support moving captured vars around
https://bugs.webkit.org/show_bug.cgi?id=96159

Reviewed by Gavin Barraclough.

Location:
trunk/Source/JavaScriptCore/parser
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/parser/ASTBuilder.h

    r127958 r127987  
    315315        if (*name == m_globalData->propertyNames->arguments)
    316316            usesArguments();
    317         m_scope.m_funcDeclarations->data.append(DeclarationStacks::FunctionDeclaration(decl->body()));
     317        m_scope.m_funcDeclarations->data.append(decl->body());
    318318        body->setLoc(bodyStartLine, bodyEndLine, location.column);
    319319        return decl;
     
    509509        if (m_globalData->propertyNames->arguments == *ident)
    510510            usesArguments();
    511         m_scope.m_varDeclarations->data.append(DeclarationStacks::VarDeclaration(ident, attrs));
     511        m_scope.m_varDeclarations->data.append(std::make_pair(ident, attrs));
    512512    }
    513513
  • trunk/Source/JavaScriptCore/parser/Nodes.h

    r127939 r127987  
    8686
    8787    namespace DeclarationStacks {
    88         struct VarDeclaration {
    89             VarDeclaration(const Identifier* name, unsigned attributes)
    90                 : name(name)
    91                 , attributes(attributes)
    92                 , reg(0)
    93             {
    94             }
    95             const Identifier* name;
    96             unsigned attributes;
    97             RegisterID* reg;
    98         };
    99         struct FunctionDeclaration {
    100             explicit FunctionDeclaration(FunctionBodyNode* node)
    101                 : node(node)
    102                 , reg(0)
    103             {
    104             }
    105             FunctionBodyNode* node;
    106             RegisterID* reg;
    107         };
    10888        enum VarAttrs { IsConstant = 1, HasInitializer = 2 };
    109         typedef Vector<VarDeclaration> VarStack;
    110         typedef Vector<FunctionDeclaration> FunctionStack;
     89        typedef Vector<std::pair<const Identifier*, unsigned> > VarStack;
     90        typedef Vector<FunctionBodyNode*> FunctionStack;
    11191    }
    11292
Note: See TracChangeset for help on using the changeset viewer.