| Index: src/ast.h
|
| diff --git a/src/ast.h b/src/ast.h
|
| index 32d87bd732d07c33318a7c8631a8487bdf9e7ea5..dc6795de8c7fdd48d8c9aa610007d33109531777 100644
|
| --- a/src/ast.h
|
| +++ b/src/ast.h
|
| @@ -158,7 +158,8 @@ typedef ZoneList<Handle<Object> > ZoneObjectList;
|
|
|
| #define DECLARE_NODE_TYPE(type) \
|
| virtual void Accept(AstVisitor* v); \
|
| - virtual AstNode::Type node_type() const { return AstNode::k##type; }
|
| + virtual AstNode::Type node_type() const { return AstNode::k##type; } \
|
| + template<class> friend class AstNodeFactory;
|
|
|
|
|
| enum AstPropertiesFlag {
|
| @@ -419,8 +420,6 @@ class Block: public BreakableStatement {
|
| void set_scope(Scope* scope) { scope_ = scope; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| Block(Isolate* isolate,
|
| ZoneStringList* labels,
|
| int capacity,
|
| @@ -478,8 +477,6 @@ class VariableDeclaration: public Declaration {
|
| }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| VariableDeclaration(VariableProxy* proxy,
|
| VariableMode mode,
|
| Scope* scope)
|
| @@ -499,8 +496,6 @@ class FunctionDeclaration: public Declaration {
|
| virtual bool IsInlineable() const;
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| FunctionDeclaration(VariableProxy* proxy,
|
| VariableMode mode,
|
| FunctionLiteral* fun,
|
| @@ -527,8 +522,6 @@ class ModuleDeclaration: public Declaration {
|
| }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| ModuleDeclaration(VariableProxy* proxy,
|
| Module* module,
|
| Scope* scope)
|
| @@ -551,8 +544,6 @@ class ImportDeclaration: public Declaration {
|
| }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| ImportDeclaration(VariableProxy* proxy,
|
| Module* module,
|
| Scope* scope)
|
| @@ -574,8 +565,6 @@ class ExportDeclaration: public Declaration {
|
| }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| ExportDeclaration(VariableProxy* proxy, Scope* scope)
|
| : Declaration(proxy, LET, scope) {}
|
| };
|
| @@ -605,8 +594,6 @@ class ModuleLiteral: public Module {
|
| DECLARE_NODE_TYPE(ModuleLiteral)
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| ModuleLiteral(Block* body, Interface* interface) : Module(interface, body) {}
|
| };
|
|
|
| @@ -618,8 +605,6 @@ class ModuleVariable: public Module {
|
| VariableProxy* proxy() const { return proxy_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| inline explicit ModuleVariable(VariableProxy* proxy);
|
|
|
| private:
|
| @@ -635,8 +620,6 @@ class ModulePath: public Module {
|
| Handle<String> name() const { return name_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| ModulePath(Module* module, Handle<String> name, Zone* zone)
|
| : Module(zone),
|
| module_(module),
|
| @@ -656,8 +639,6 @@ class ModuleUrl: public Module {
|
| Handle<String> url() const { return url_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| ModuleUrl(Handle<String> url, Zone* zone)
|
| : Module(zone), url_(url) {
|
| }
|
| @@ -720,8 +701,6 @@ class DoWhileStatement: public IterationStatement {
|
| BailoutId BackEdgeId() const { return back_edge_id_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| DoWhileStatement(Isolate* isolate, ZoneStringList* labels)
|
| : IterationStatement(isolate, labels),
|
| cond_(NULL),
|
| @@ -760,8 +739,6 @@ class WhileStatement: public IterationStatement {
|
| BailoutId BodyId() const { return body_id_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| WhileStatement(Isolate* isolate, ZoneStringList* labels)
|
| : IterationStatement(isolate, labels),
|
| cond_(NULL),
|
| @@ -811,8 +788,6 @@ class ForStatement: public IterationStatement {
|
| void set_loop_variable(Variable* var) { loop_variable_ = var; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| ForStatement(Isolate* isolate, ZoneStringList* labels)
|
| : IterationStatement(isolate, labels),
|
| init_(NULL),
|
| @@ -857,8 +832,6 @@ class ForInStatement: public IterationStatement {
|
| TypeFeedbackId ForInFeedbackId() const { return reuse(PrepareId()); }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| ForInStatement(Isolate* isolate, ZoneStringList* labels)
|
| : IterationStatement(isolate, labels),
|
| each_(NULL),
|
| @@ -883,8 +856,6 @@ class ExpressionStatement: public Statement {
|
| Expression* expression() const { return expression_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| explicit ExpressionStatement(Expression* expression)
|
| : expression_(expression) { }
|
|
|
| @@ -900,8 +871,6 @@ class ContinueStatement: public Statement {
|
| IterationStatement* target() const { return target_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| explicit ContinueStatement(IterationStatement* target)
|
| : target_(target) { }
|
|
|
| @@ -917,8 +886,6 @@ class BreakStatement: public Statement {
|
| BreakableStatement* target() const { return target_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| explicit BreakStatement(BreakableStatement* target)
|
| : target_(target) { }
|
|
|
| @@ -934,8 +901,6 @@ class ReturnStatement: public Statement {
|
| Expression* expression() const { return expression_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| explicit ReturnStatement(Expression* expression)
|
| : expression_(expression) { }
|
|
|
| @@ -952,8 +917,6 @@ class WithStatement: public Statement {
|
| Statement* statement() const { return statement_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| WithStatement(Expression* expression, Statement* statement)
|
| : expression_(expression),
|
| statement_(statement) { }
|
| @@ -1023,8 +986,6 @@ class SwitchStatement: public BreakableStatement {
|
| ZoneList<CaseClause*>* cases() const { return cases_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| SwitchStatement(Isolate* isolate, ZoneStringList* labels)
|
| : BreakableStatement(isolate, labels, TARGET_FOR_ANONYMOUS),
|
| tag_(NULL),
|
| @@ -1057,8 +1018,6 @@ class IfStatement: public Statement {
|
| BailoutId ElseId() const { return else_id_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| IfStatement(Isolate* isolate,
|
| Expression* condition,
|
| Statement* then_statement,
|
| @@ -1138,8 +1097,6 @@ class TryCatchStatement: public TryStatement {
|
| Block* catch_block() const { return catch_block_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| TryCatchStatement(int index,
|
| Block* try_block,
|
| Scope* scope,
|
| @@ -1165,8 +1122,6 @@ class TryFinallyStatement: public TryStatement {
|
| Block* finally_block() const { return finally_block_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| TryFinallyStatement(int index, Block* try_block, Block* finally_block)
|
| : TryStatement(index, try_block),
|
| finally_block_(finally_block) { }
|
| @@ -1181,8 +1136,6 @@ class DebuggerStatement: public Statement {
|
| DECLARE_NODE_TYPE(DebuggerStatement)
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| DebuggerStatement() {}
|
| };
|
|
|
| @@ -1192,8 +1145,6 @@ class EmptyStatement: public Statement {
|
| DECLARE_NODE_TYPE(EmptyStatement)
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| EmptyStatement() {}
|
| };
|
|
|
| @@ -1247,8 +1198,6 @@ class Literal: public Expression {
|
| TypeFeedbackId LiteralFeedbackId() const { return reuse(id()); }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| Literal(Isolate* isolate, Handle<Object> handle)
|
| : Expression(isolate),
|
| handle_(handle) { }
|
| @@ -1366,8 +1315,6 @@ class ObjectLiteral: public MaterializedLiteral {
|
| };
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| ObjectLiteral(Isolate* isolate,
|
| Handle<FixedArray> constant_properties,
|
| ZoneList<Property*>* properties,
|
| @@ -1399,8 +1346,6 @@ class RegExpLiteral: public MaterializedLiteral {
|
| Handle<String> flags() const { return flags_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| RegExpLiteral(Isolate* isolate,
|
| Handle<String> pattern,
|
| Handle<String> flags,
|
| @@ -1429,8 +1374,6 @@ class ArrayLiteral: public MaterializedLiteral {
|
| }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| ArrayLiteral(Isolate* isolate,
|
| Handle<FixedArray> constant_elements,
|
| ZoneList<Expression*>* values,
|
| @@ -1481,8 +1424,6 @@ class VariableProxy: public Expression {
|
| void BindTo(Variable* var);
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| VariableProxy(Isolate* isolate, Variable* var);
|
|
|
| VariableProxy(Isolate* isolate,
|
| @@ -1528,8 +1469,6 @@ class Property: public Expression {
|
| TypeFeedbackId PropertyFeedbackId() { return reuse(id()); }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| Property(Isolate* isolate,
|
| Expression* obj,
|
| Expression* key,
|
| @@ -1596,8 +1535,6 @@ class Call: public Expression {
|
| #endif
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| Call(Isolate* isolate,
|
| Expression* expression,
|
| ZoneList<Expression*>* arguments,
|
| @@ -1643,8 +1580,6 @@ class CallNew: public Expression {
|
| BailoutId ReturnId() const { return return_id_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| CallNew(Isolate* isolate,
|
| Expression* expression,
|
| ZoneList<Expression*>* arguments,
|
| @@ -1684,8 +1619,6 @@ class CallRuntime: public Expression {
|
| TypeFeedbackId CallRuntimeFeedbackId() const { return reuse(id()); }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| CallRuntime(Isolate* isolate,
|
| Handle<String> name,
|
| const Runtime::Function* function,
|
| @@ -1718,8 +1651,6 @@ class UnaryOperation: public Expression {
|
| TypeFeedbackId UnaryOperationFeedbackId() const { return reuse(id()); }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| UnaryOperation(Isolate* isolate,
|
| Token::Value op,
|
| Expression* expression,
|
| @@ -1761,8 +1692,6 @@ class BinaryOperation: public Expression {
|
| TypeFeedbackId BinaryOperationFeedbackId() const { return reuse(id()); }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| BinaryOperation(Isolate* isolate,
|
| Token::Value op,
|
| Expression* left,
|
| @@ -1815,8 +1744,6 @@ class CountOperation: public Expression {
|
| TypeFeedbackId CountStoreFeedbackId() const { return reuse(id()); }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| CountOperation(Isolate* isolate,
|
| Token::Value op,
|
| bool is_prefix,
|
| @@ -1863,8 +1790,6 @@ class CompareOperation: public Expression {
|
| bool IsLiteralCompareNull(Expression** expr);
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| CompareOperation(Isolate* isolate,
|
| Token::Value op,
|
| Expression* left,
|
| @@ -1905,8 +1830,6 @@ class Conditional: public Expression {
|
| BailoutId ElseId() const { return else_id_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| Conditional(Isolate* isolate,
|
| Expression* condition,
|
| Expression* then_expression,
|
| @@ -1968,8 +1891,6 @@ class Assignment: public Expression {
|
| virtual SmallMapList* GetReceiverTypes() { return &receiver_types_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| Assignment(Isolate* isolate,
|
| Token::Value op,
|
| Expression* target,
|
| @@ -2009,8 +1930,6 @@ class Throw: public Expression {
|
| virtual int position() const { return pos_; }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| Throw(Isolate* isolate, Expression* exception, int pos)
|
| : Expression(isolate), exception_(exception), pos_(pos) {}
|
|
|
| @@ -2110,8 +2029,6 @@ class FunctionLiteral: public Expression {
|
| }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| FunctionLiteral(Isolate* isolate,
|
| Handle<String> name,
|
| Scope* scope,
|
| @@ -2182,8 +2099,6 @@ class SharedFunctionInfoLiteral: public Expression {
|
| }
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| SharedFunctionInfoLiteral(
|
| Isolate* isolate,
|
| Handle<SharedFunctionInfo> shared_function_info)
|
| @@ -2200,8 +2115,6 @@ class ThisFunction: public Expression {
|
| DECLARE_NODE_TYPE(ThisFunction)
|
|
|
| protected:
|
| - template<class> friend class AstNodeFactory;
|
| -
|
| explicit ThisFunction(Isolate* isolate): Expression(isolate) {}
|
| };
|
|
|
|
|