| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without | 
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are | 
| 4 // met: | 4 // met: | 
| 5 // | 5 // | 
| 6 //     * Redistributions of source code must retain the above copyright | 6 //     * Redistributions of source code must retain the above copyright | 
| 7 //       notice, this list of conditions and the following disclaimer. | 7 //       notice, this list of conditions and the following disclaimer. | 
| 8 //     * Redistributions in binary form must reproduce the above | 8 //     * Redistributions in binary form must reproduce the above | 
| 9 //       copyright notice, this list of conditions and the following | 9 //       copyright notice, this list of conditions and the following | 
| 10 //       disclaimer in the documentation and/or other materials provided | 10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 151 | 151 | 
| 152 | 152 | 
| 153 // Typedef only introduced to avoid unreadable code. | 153 // Typedef only introduced to avoid unreadable code. | 
| 154 // Please do appreciate the required space in "> >". | 154 // Please do appreciate the required space in "> >". | 
| 155 typedef ZoneList<Handle<String> > ZoneStringList; | 155 typedef ZoneList<Handle<String> > ZoneStringList; | 
| 156 typedef ZoneList<Handle<Object> > ZoneObjectList; | 156 typedef ZoneList<Handle<Object> > ZoneObjectList; | 
| 157 | 157 | 
| 158 | 158 | 
| 159 #define DECLARE_NODE_TYPE(type)                                         \ | 159 #define DECLARE_NODE_TYPE(type)                                         \ | 
| 160   virtual void Accept(AstVisitor* v);                                   \ | 160   virtual void Accept(AstVisitor* v);                                   \ | 
| 161   virtual AstNode::Type node_type() const { return AstNode::k##type; } | 161   virtual AstNode::Type node_type() const { return AstNode::k##type; }  \ | 
|  | 162   template<class> friend class AstNodeFactory; | 
| 162 | 163 | 
| 163 | 164 | 
| 164 enum AstPropertiesFlag { | 165 enum AstPropertiesFlag { | 
| 165   kDontInline, | 166   kDontInline, | 
| 166   kDontOptimize, | 167   kDontOptimize, | 
| 167   kDontSelfOptimize, | 168   kDontSelfOptimize, | 
| 168   kDontSoftInline, | 169   kDontSoftInline, | 
| 169   kDontCache | 170   kDontCache | 
| 170 }; | 171 }; | 
| 171 | 172 | 
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 412     statements_.Add(statement, zone); | 413     statements_.Add(statement, zone); | 
| 413   } | 414   } | 
| 414 | 415 | 
| 415   ZoneList<Statement*>* statements() { return &statements_; } | 416   ZoneList<Statement*>* statements() { return &statements_; } | 
| 416   bool is_initializer_block() const { return is_initializer_block_; } | 417   bool is_initializer_block() const { return is_initializer_block_; } | 
| 417 | 418 | 
| 418   Scope* scope() const { return scope_; } | 419   Scope* scope() const { return scope_; } | 
| 419   void set_scope(Scope* scope) { scope_ = scope; } | 420   void set_scope(Scope* scope) { scope_ = scope; } | 
| 420 | 421 | 
| 421  protected: | 422  protected: | 
| 422   template<class> friend class AstNodeFactory; |  | 
| 423 |  | 
| 424   Block(Isolate* isolate, | 423   Block(Isolate* isolate, | 
| 425         ZoneStringList* labels, | 424         ZoneStringList* labels, | 
| 426         int capacity, | 425         int capacity, | 
| 427         bool is_initializer_block, | 426         bool is_initializer_block, | 
| 428         Zone* zone) | 427         Zone* zone) | 
| 429       : BreakableStatement(isolate, labels, TARGET_FOR_NAMED_ONLY), | 428       : BreakableStatement(isolate, labels, TARGET_FOR_NAMED_ONLY), | 
| 430         statements_(capacity, zone), | 429         statements_(capacity, zone), | 
| 431         is_initializer_block_(is_initializer_block), | 430         is_initializer_block_(is_initializer_block), | 
| 432         scope_(NULL) { | 431         scope_(NULL) { | 
| 433   } | 432   } | 
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 471 | 470 | 
| 472 class VariableDeclaration: public Declaration { | 471 class VariableDeclaration: public Declaration { | 
| 473  public: | 472  public: | 
| 474   DECLARE_NODE_TYPE(VariableDeclaration) | 473   DECLARE_NODE_TYPE(VariableDeclaration) | 
| 475 | 474 | 
| 476   virtual InitializationFlag initialization() const { | 475   virtual InitializationFlag initialization() const { | 
| 477     return mode() == VAR ? kCreatedInitialized : kNeedsInitialization; | 476     return mode() == VAR ? kCreatedInitialized : kNeedsInitialization; | 
| 478   } | 477   } | 
| 479 | 478 | 
| 480  protected: | 479  protected: | 
| 481   template<class> friend class AstNodeFactory; |  | 
| 482 |  | 
| 483   VariableDeclaration(VariableProxy* proxy, | 480   VariableDeclaration(VariableProxy* proxy, | 
| 484                       VariableMode mode, | 481                       VariableMode mode, | 
| 485                       Scope* scope) | 482                       Scope* scope) | 
| 486       : Declaration(proxy, mode, scope) { | 483       : Declaration(proxy, mode, scope) { | 
| 487   } | 484   } | 
| 488 }; | 485 }; | 
| 489 | 486 | 
| 490 | 487 | 
| 491 class FunctionDeclaration: public Declaration { | 488 class FunctionDeclaration: public Declaration { | 
| 492  public: | 489  public: | 
| 493   DECLARE_NODE_TYPE(FunctionDeclaration) | 490   DECLARE_NODE_TYPE(FunctionDeclaration) | 
| 494 | 491 | 
| 495   FunctionLiteral* fun() const { return fun_; } | 492   FunctionLiteral* fun() const { return fun_; } | 
| 496   virtual InitializationFlag initialization() const { | 493   virtual InitializationFlag initialization() const { | 
| 497     return kCreatedInitialized; | 494     return kCreatedInitialized; | 
| 498   } | 495   } | 
| 499   virtual bool IsInlineable() const; | 496   virtual bool IsInlineable() const; | 
| 500 | 497 | 
| 501  protected: | 498  protected: | 
| 502   template<class> friend class AstNodeFactory; |  | 
| 503 |  | 
| 504   FunctionDeclaration(VariableProxy* proxy, | 499   FunctionDeclaration(VariableProxy* proxy, | 
| 505                       VariableMode mode, | 500                       VariableMode mode, | 
| 506                       FunctionLiteral* fun, | 501                       FunctionLiteral* fun, | 
| 507                       Scope* scope) | 502                       Scope* scope) | 
| 508       : Declaration(proxy, mode, scope), | 503       : Declaration(proxy, mode, scope), | 
| 509         fun_(fun) { | 504         fun_(fun) { | 
| 510     // At the moment there are no "const functions" in JavaScript... | 505     // At the moment there are no "const functions" in JavaScript... | 
| 511     ASSERT(mode == VAR || mode == LET); | 506     ASSERT(mode == VAR || mode == LET); | 
| 512     ASSERT(fun != NULL); | 507     ASSERT(fun != NULL); | 
| 513   } | 508   } | 
| 514 | 509 | 
| 515  private: | 510  private: | 
| 516   FunctionLiteral* fun_; | 511   FunctionLiteral* fun_; | 
| 517 }; | 512 }; | 
| 518 | 513 | 
| 519 | 514 | 
| 520 class ModuleDeclaration: public Declaration { | 515 class ModuleDeclaration: public Declaration { | 
| 521  public: | 516  public: | 
| 522   DECLARE_NODE_TYPE(ModuleDeclaration) | 517   DECLARE_NODE_TYPE(ModuleDeclaration) | 
| 523 | 518 | 
| 524   Module* module() const { return module_; } | 519   Module* module() const { return module_; } | 
| 525   virtual InitializationFlag initialization() const { | 520   virtual InitializationFlag initialization() const { | 
| 526     return kCreatedInitialized; | 521     return kCreatedInitialized; | 
| 527   } | 522   } | 
| 528 | 523 | 
| 529  protected: | 524  protected: | 
| 530   template<class> friend class AstNodeFactory; |  | 
| 531 |  | 
| 532   ModuleDeclaration(VariableProxy* proxy, | 525   ModuleDeclaration(VariableProxy* proxy, | 
| 533                     Module* module, | 526                     Module* module, | 
| 534                     Scope* scope) | 527                     Scope* scope) | 
| 535       : Declaration(proxy, LET, scope), | 528       : Declaration(proxy, LET, scope), | 
| 536         module_(module) { | 529         module_(module) { | 
| 537   } | 530   } | 
| 538 | 531 | 
| 539  private: | 532  private: | 
| 540   Module* module_; | 533   Module* module_; | 
| 541 }; | 534 }; | 
| 542 | 535 | 
| 543 | 536 | 
| 544 class ImportDeclaration: public Declaration { | 537 class ImportDeclaration: public Declaration { | 
| 545  public: | 538  public: | 
| 546   DECLARE_NODE_TYPE(ImportDeclaration) | 539   DECLARE_NODE_TYPE(ImportDeclaration) | 
| 547 | 540 | 
| 548   Module* module() const { return module_; } | 541   Module* module() const { return module_; } | 
| 549   virtual InitializationFlag initialization() const { | 542   virtual InitializationFlag initialization() const { | 
| 550     return kCreatedInitialized; | 543     return kCreatedInitialized; | 
| 551   } | 544   } | 
| 552 | 545 | 
| 553  protected: | 546  protected: | 
| 554   template<class> friend class AstNodeFactory; |  | 
| 555 |  | 
| 556   ImportDeclaration(VariableProxy* proxy, | 547   ImportDeclaration(VariableProxy* proxy, | 
| 557                     Module* module, | 548                     Module* module, | 
| 558                     Scope* scope) | 549                     Scope* scope) | 
| 559       : Declaration(proxy, LET, scope), | 550       : Declaration(proxy, LET, scope), | 
| 560         module_(module) { | 551         module_(module) { | 
| 561   } | 552   } | 
| 562 | 553 | 
| 563  private: | 554  private: | 
| 564   Module* module_; | 555   Module* module_; | 
| 565 }; | 556 }; | 
| 566 | 557 | 
| 567 | 558 | 
| 568 class ExportDeclaration: public Declaration { | 559 class ExportDeclaration: public Declaration { | 
| 569  public: | 560  public: | 
| 570   DECLARE_NODE_TYPE(ExportDeclaration) | 561   DECLARE_NODE_TYPE(ExportDeclaration) | 
| 571 | 562 | 
| 572   virtual InitializationFlag initialization() const { | 563   virtual InitializationFlag initialization() const { | 
| 573     return kCreatedInitialized; | 564     return kCreatedInitialized; | 
| 574   } | 565   } | 
| 575 | 566 | 
| 576  protected: | 567  protected: | 
| 577   template<class> friend class AstNodeFactory; |  | 
| 578 |  | 
| 579   ExportDeclaration(VariableProxy* proxy, Scope* scope) | 568   ExportDeclaration(VariableProxy* proxy, Scope* scope) | 
| 580       : Declaration(proxy, LET, scope) {} | 569       : Declaration(proxy, LET, scope) {} | 
| 581 }; | 570 }; | 
| 582 | 571 | 
| 583 | 572 | 
| 584 class Module: public AstNode { | 573 class Module: public AstNode { | 
| 585  public: | 574  public: | 
| 586   Interface* interface() const { return interface_; } | 575   Interface* interface() const { return interface_; } | 
| 587   Block* body() const { return body_; } | 576   Block* body() const { return body_; } | 
| 588 | 577 | 
| 589  protected: | 578  protected: | 
| 590   explicit Module(Zone* zone) | 579   explicit Module(Zone* zone) | 
| 591       : interface_(Interface::NewModule(zone)), | 580       : interface_(Interface::NewModule(zone)), | 
| 592         body_(NULL) {} | 581         body_(NULL) {} | 
| 593   explicit Module(Interface* interface, Block* body = NULL) | 582   explicit Module(Interface* interface, Block* body = NULL) | 
| 594       : interface_(interface), | 583       : interface_(interface), | 
| 595         body_(body) {} | 584         body_(body) {} | 
| 596 | 585 | 
| 597  private: | 586  private: | 
| 598   Interface* interface_; | 587   Interface* interface_; | 
| 599   Block* body_; | 588   Block* body_; | 
| 600 }; | 589 }; | 
| 601 | 590 | 
| 602 | 591 | 
| 603 class ModuleLiteral: public Module { | 592 class ModuleLiteral: public Module { | 
| 604  public: | 593  public: | 
| 605   DECLARE_NODE_TYPE(ModuleLiteral) | 594   DECLARE_NODE_TYPE(ModuleLiteral) | 
| 606 | 595 | 
| 607  protected: | 596  protected: | 
| 608   template<class> friend class AstNodeFactory; |  | 
| 609 |  | 
| 610   ModuleLiteral(Block* body, Interface* interface) : Module(interface, body) {} | 597   ModuleLiteral(Block* body, Interface* interface) : Module(interface, body) {} | 
| 611 }; | 598 }; | 
| 612 | 599 | 
| 613 | 600 | 
| 614 class ModuleVariable: public Module { | 601 class ModuleVariable: public Module { | 
| 615  public: | 602  public: | 
| 616   DECLARE_NODE_TYPE(ModuleVariable) | 603   DECLARE_NODE_TYPE(ModuleVariable) | 
| 617 | 604 | 
| 618   VariableProxy* proxy() const { return proxy_; } | 605   VariableProxy* proxy() const { return proxy_; } | 
| 619 | 606 | 
| 620  protected: | 607  protected: | 
| 621   template<class> friend class AstNodeFactory; |  | 
| 622 |  | 
| 623   inline explicit ModuleVariable(VariableProxy* proxy); | 608   inline explicit ModuleVariable(VariableProxy* proxy); | 
| 624 | 609 | 
| 625  private: | 610  private: | 
| 626   VariableProxy* proxy_; | 611   VariableProxy* proxy_; | 
| 627 }; | 612 }; | 
| 628 | 613 | 
| 629 | 614 | 
| 630 class ModulePath: public Module { | 615 class ModulePath: public Module { | 
| 631  public: | 616  public: | 
| 632   DECLARE_NODE_TYPE(ModulePath) | 617   DECLARE_NODE_TYPE(ModulePath) | 
| 633 | 618 | 
| 634   Module* module() const { return module_; } | 619   Module* module() const { return module_; } | 
| 635   Handle<String> name() const { return name_; } | 620   Handle<String> name() const { return name_; } | 
| 636 | 621 | 
| 637  protected: | 622  protected: | 
| 638   template<class> friend class AstNodeFactory; |  | 
| 639 |  | 
| 640   ModulePath(Module* module, Handle<String> name, Zone* zone) | 623   ModulePath(Module* module, Handle<String> name, Zone* zone) | 
| 641       : Module(zone), | 624       : Module(zone), | 
| 642         module_(module), | 625         module_(module), | 
| 643         name_(name) { | 626         name_(name) { | 
| 644   } | 627   } | 
| 645 | 628 | 
| 646  private: | 629  private: | 
| 647   Module* module_; | 630   Module* module_; | 
| 648   Handle<String> name_; | 631   Handle<String> name_; | 
| 649 }; | 632 }; | 
| 650 | 633 | 
| 651 | 634 | 
| 652 class ModuleUrl: public Module { | 635 class ModuleUrl: public Module { | 
| 653  public: | 636  public: | 
| 654   DECLARE_NODE_TYPE(ModuleUrl) | 637   DECLARE_NODE_TYPE(ModuleUrl) | 
| 655 | 638 | 
| 656   Handle<String> url() const { return url_; } | 639   Handle<String> url() const { return url_; } | 
| 657 | 640 | 
| 658  protected: | 641  protected: | 
| 659   template<class> friend class AstNodeFactory; |  | 
| 660 |  | 
| 661   ModuleUrl(Handle<String> url, Zone* zone) | 642   ModuleUrl(Handle<String> url, Zone* zone) | 
| 662       : Module(zone), url_(url) { | 643       : Module(zone), url_(url) { | 
| 663   } | 644   } | 
| 664 | 645 | 
| 665  private: | 646  private: | 
| 666   Handle<String> url_; | 647   Handle<String> url_; | 
| 667 }; | 648 }; | 
| 668 | 649 | 
| 669 | 650 | 
| 670 class IterationStatement: public BreakableStatement { | 651 class IterationStatement: public BreakableStatement { | 
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 713   // Position where condition expression starts. We need it to make | 694   // Position where condition expression starts. We need it to make | 
| 714   // the loop's condition a breakable location. | 695   // the loop's condition a breakable location. | 
| 715   int condition_position() { return condition_position_; } | 696   int condition_position() { return condition_position_; } | 
| 716   void set_condition_position(int pos) { condition_position_ = pos; } | 697   void set_condition_position(int pos) { condition_position_ = pos; } | 
| 717 | 698 | 
| 718   virtual BailoutId ContinueId() const { return continue_id_; } | 699   virtual BailoutId ContinueId() const { return continue_id_; } | 
| 719   virtual BailoutId StackCheckId() const { return back_edge_id_; } | 700   virtual BailoutId StackCheckId() const { return back_edge_id_; } | 
| 720   BailoutId BackEdgeId() const { return back_edge_id_; } | 701   BailoutId BackEdgeId() const { return back_edge_id_; } | 
| 721 | 702 | 
| 722  protected: | 703  protected: | 
| 723   template<class> friend class AstNodeFactory; |  | 
| 724 |  | 
| 725   DoWhileStatement(Isolate* isolate, ZoneStringList* labels) | 704   DoWhileStatement(Isolate* isolate, ZoneStringList* labels) | 
| 726       : IterationStatement(isolate, labels), | 705       : IterationStatement(isolate, labels), | 
| 727         cond_(NULL), | 706         cond_(NULL), | 
| 728         condition_position_(-1), | 707         condition_position_(-1), | 
| 729         continue_id_(GetNextId(isolate)), | 708         continue_id_(GetNextId(isolate)), | 
| 730         back_edge_id_(GetNextId(isolate)) { | 709         back_edge_id_(GetNextId(isolate)) { | 
| 731   } | 710   } | 
| 732 | 711 | 
| 733  private: | 712  private: | 
| 734   Expression* cond_; | 713   Expression* cond_; | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
| 753   } | 732   } | 
| 754   void set_may_have_function_literal(bool value) { | 733   void set_may_have_function_literal(bool value) { | 
| 755     may_have_function_literal_ = value; | 734     may_have_function_literal_ = value; | 
| 756   } | 735   } | 
| 757 | 736 | 
| 758   virtual BailoutId ContinueId() const { return EntryId(); } | 737   virtual BailoutId ContinueId() const { return EntryId(); } | 
| 759   virtual BailoutId StackCheckId() const { return body_id_; } | 738   virtual BailoutId StackCheckId() const { return body_id_; } | 
| 760   BailoutId BodyId() const { return body_id_; } | 739   BailoutId BodyId() const { return body_id_; } | 
| 761 | 740 | 
| 762  protected: | 741  protected: | 
| 763   template<class> friend class AstNodeFactory; |  | 
| 764 |  | 
| 765   WhileStatement(Isolate* isolate, ZoneStringList* labels) | 742   WhileStatement(Isolate* isolate, ZoneStringList* labels) | 
| 766       : IterationStatement(isolate, labels), | 743       : IterationStatement(isolate, labels), | 
| 767         cond_(NULL), | 744         cond_(NULL), | 
| 768         may_have_function_literal_(true), | 745         may_have_function_literal_(true), | 
| 769         body_id_(GetNextId(isolate)) { | 746         body_id_(GetNextId(isolate)) { | 
| 770   } | 747   } | 
| 771 | 748 | 
| 772  private: | 749  private: | 
| 773   Expression* cond_; | 750   Expression* cond_; | 
| 774   // True if there is a function literal subexpression in the condition. | 751   // True if there is a function literal subexpression in the condition. | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
| 804 | 781 | 
| 805   virtual BailoutId ContinueId() const { return continue_id_; } | 782   virtual BailoutId ContinueId() const { return continue_id_; } | 
| 806   virtual BailoutId StackCheckId() const { return body_id_; } | 783   virtual BailoutId StackCheckId() const { return body_id_; } | 
| 807   BailoutId BodyId() const { return body_id_; } | 784   BailoutId BodyId() const { return body_id_; } | 
| 808 | 785 | 
| 809   bool is_fast_smi_loop() { return loop_variable_ != NULL; } | 786   bool is_fast_smi_loop() { return loop_variable_ != NULL; } | 
| 810   Variable* loop_variable() { return loop_variable_; } | 787   Variable* loop_variable() { return loop_variable_; } | 
| 811   void set_loop_variable(Variable* var) { loop_variable_ = var; } | 788   void set_loop_variable(Variable* var) { loop_variable_ = var; } | 
| 812 | 789 | 
| 813  protected: | 790  protected: | 
| 814   template<class> friend class AstNodeFactory; |  | 
| 815 |  | 
| 816   ForStatement(Isolate* isolate, ZoneStringList* labels) | 791   ForStatement(Isolate* isolate, ZoneStringList* labels) | 
| 817       : IterationStatement(isolate, labels), | 792       : IterationStatement(isolate, labels), | 
| 818         init_(NULL), | 793         init_(NULL), | 
| 819         cond_(NULL), | 794         cond_(NULL), | 
| 820         next_(NULL), | 795         next_(NULL), | 
| 821         may_have_function_literal_(true), | 796         may_have_function_literal_(true), | 
| 822         loop_variable_(NULL), | 797         loop_variable_(NULL), | 
| 823         continue_id_(GetNextId(isolate)), | 798         continue_id_(GetNextId(isolate)), | 
| 824         body_id_(GetNextId(isolate)) { | 799         body_id_(GetNextId(isolate)) { | 
| 825   } | 800   } | 
| (...skipping 24 matching lines...) Expand all  Loading... | 
| 850   Expression* enumerable() const { return enumerable_; } | 825   Expression* enumerable() const { return enumerable_; } | 
| 851 | 826 | 
| 852   virtual BailoutId ContinueId() const { return EntryId(); } | 827   virtual BailoutId ContinueId() const { return EntryId(); } | 
| 853   virtual BailoutId StackCheckId() const { return body_id_; } | 828   virtual BailoutId StackCheckId() const { return body_id_; } | 
| 854   BailoutId BodyId() const { return body_id_; } | 829   BailoutId BodyId() const { return body_id_; } | 
| 855   BailoutId PrepareId() const { return prepare_id_; } | 830   BailoutId PrepareId() const { return prepare_id_; } | 
| 856 | 831 | 
| 857   TypeFeedbackId ForInFeedbackId() const { return reuse(PrepareId()); } | 832   TypeFeedbackId ForInFeedbackId() const { return reuse(PrepareId()); } | 
| 858 | 833 | 
| 859  protected: | 834  protected: | 
| 860   template<class> friend class AstNodeFactory; |  | 
| 861 |  | 
| 862   ForInStatement(Isolate* isolate, ZoneStringList* labels) | 835   ForInStatement(Isolate* isolate, ZoneStringList* labels) | 
| 863       : IterationStatement(isolate, labels), | 836       : IterationStatement(isolate, labels), | 
| 864         each_(NULL), | 837         each_(NULL), | 
| 865         enumerable_(NULL), | 838         enumerable_(NULL), | 
| 866         body_id_(GetNextId(isolate)), | 839         body_id_(GetNextId(isolate)), | 
| 867         prepare_id_(GetNextId(isolate)) { | 840         prepare_id_(GetNextId(isolate)) { | 
| 868   } | 841   } | 
| 869 | 842 | 
| 870  private: | 843  private: | 
| 871   Expression* each_; | 844   Expression* each_; | 
| 872   Expression* enumerable_; | 845   Expression* enumerable_; | 
| 873   const BailoutId body_id_; | 846   const BailoutId body_id_; | 
| 874   const BailoutId prepare_id_; | 847   const BailoutId prepare_id_; | 
| 875 }; | 848 }; | 
| 876 | 849 | 
| 877 | 850 | 
| 878 class ExpressionStatement: public Statement { | 851 class ExpressionStatement: public Statement { | 
| 879  public: | 852  public: | 
| 880   DECLARE_NODE_TYPE(ExpressionStatement) | 853   DECLARE_NODE_TYPE(ExpressionStatement) | 
| 881 | 854 | 
| 882   void set_expression(Expression* e) { expression_ = e; } | 855   void set_expression(Expression* e) { expression_ = e; } | 
| 883   Expression* expression() const { return expression_; } | 856   Expression* expression() const { return expression_; } | 
| 884 | 857 | 
| 885  protected: | 858  protected: | 
| 886   template<class> friend class AstNodeFactory; |  | 
| 887 |  | 
| 888   explicit ExpressionStatement(Expression* expression) | 859   explicit ExpressionStatement(Expression* expression) | 
| 889       : expression_(expression) { } | 860       : expression_(expression) { } | 
| 890 | 861 | 
| 891  private: | 862  private: | 
| 892   Expression* expression_; | 863   Expression* expression_; | 
| 893 }; | 864 }; | 
| 894 | 865 | 
| 895 | 866 | 
| 896 class ContinueStatement: public Statement { | 867 class ContinueStatement: public Statement { | 
| 897  public: | 868  public: | 
| 898   DECLARE_NODE_TYPE(ContinueStatement) | 869   DECLARE_NODE_TYPE(ContinueStatement) | 
| 899 | 870 | 
| 900   IterationStatement* target() const { return target_; } | 871   IterationStatement* target() const { return target_; } | 
| 901 | 872 | 
| 902  protected: | 873  protected: | 
| 903   template<class> friend class AstNodeFactory; |  | 
| 904 |  | 
| 905   explicit ContinueStatement(IterationStatement* target) | 874   explicit ContinueStatement(IterationStatement* target) | 
| 906       : target_(target) { } | 875       : target_(target) { } | 
| 907 | 876 | 
| 908  private: | 877  private: | 
| 909   IterationStatement* target_; | 878   IterationStatement* target_; | 
| 910 }; | 879 }; | 
| 911 | 880 | 
| 912 | 881 | 
| 913 class BreakStatement: public Statement { | 882 class BreakStatement: public Statement { | 
| 914  public: | 883  public: | 
| 915   DECLARE_NODE_TYPE(BreakStatement) | 884   DECLARE_NODE_TYPE(BreakStatement) | 
| 916 | 885 | 
| 917   BreakableStatement* target() const { return target_; } | 886   BreakableStatement* target() const { return target_; } | 
| 918 | 887 | 
| 919  protected: | 888  protected: | 
| 920   template<class> friend class AstNodeFactory; |  | 
| 921 |  | 
| 922   explicit BreakStatement(BreakableStatement* target) | 889   explicit BreakStatement(BreakableStatement* target) | 
| 923       : target_(target) { } | 890       : target_(target) { } | 
| 924 | 891 | 
| 925  private: | 892  private: | 
| 926   BreakableStatement* target_; | 893   BreakableStatement* target_; | 
| 927 }; | 894 }; | 
| 928 | 895 | 
| 929 | 896 | 
| 930 class ReturnStatement: public Statement { | 897 class ReturnStatement: public Statement { | 
| 931  public: | 898  public: | 
| 932   DECLARE_NODE_TYPE(ReturnStatement) | 899   DECLARE_NODE_TYPE(ReturnStatement) | 
| 933 | 900 | 
| 934   Expression* expression() const { return expression_; } | 901   Expression* expression() const { return expression_; } | 
| 935 | 902 | 
| 936  protected: | 903  protected: | 
| 937   template<class> friend class AstNodeFactory; |  | 
| 938 |  | 
| 939   explicit ReturnStatement(Expression* expression) | 904   explicit ReturnStatement(Expression* expression) | 
| 940       : expression_(expression) { } | 905       : expression_(expression) { } | 
| 941 | 906 | 
| 942  private: | 907  private: | 
| 943   Expression* expression_; | 908   Expression* expression_; | 
| 944 }; | 909 }; | 
| 945 | 910 | 
| 946 | 911 | 
| 947 class WithStatement: public Statement { | 912 class WithStatement: public Statement { | 
| 948  public: | 913  public: | 
| 949   DECLARE_NODE_TYPE(WithStatement) | 914   DECLARE_NODE_TYPE(WithStatement) | 
| 950 | 915 | 
| 951   Expression* expression() const { return expression_; } | 916   Expression* expression() const { return expression_; } | 
| 952   Statement* statement() const { return statement_; } | 917   Statement* statement() const { return statement_; } | 
| 953 | 918 | 
| 954  protected: | 919  protected: | 
| 955   template<class> friend class AstNodeFactory; |  | 
| 956 |  | 
| 957   WithStatement(Expression* expression, Statement* statement) | 920   WithStatement(Expression* expression, Statement* statement) | 
| 958       : expression_(expression), | 921       : expression_(expression), | 
| 959         statement_(statement) { } | 922         statement_(statement) { } | 
| 960 | 923 | 
| 961  private: | 924  private: | 
| 962   Expression* expression_; | 925   Expression* expression_; | 
| 963   Statement* statement_; | 926   Statement* statement_; | 
| 964 }; | 927 }; | 
| 965 | 928 | 
| 966 | 929 | 
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1016 | 979 | 
| 1017   void Initialize(Expression* tag, ZoneList<CaseClause*>* cases) { | 980   void Initialize(Expression* tag, ZoneList<CaseClause*>* cases) { | 
| 1018     tag_ = tag; | 981     tag_ = tag; | 
| 1019     cases_ = cases; | 982     cases_ = cases; | 
| 1020   } | 983   } | 
| 1021 | 984 | 
| 1022   Expression* tag() const { return tag_; } | 985   Expression* tag() const { return tag_; } | 
| 1023   ZoneList<CaseClause*>* cases() const { return cases_; } | 986   ZoneList<CaseClause*>* cases() const { return cases_; } | 
| 1024 | 987 | 
| 1025  protected: | 988  protected: | 
| 1026   template<class> friend class AstNodeFactory; |  | 
| 1027 |  | 
| 1028   SwitchStatement(Isolate* isolate, ZoneStringList* labels) | 989   SwitchStatement(Isolate* isolate, ZoneStringList* labels) | 
| 1029       : BreakableStatement(isolate, labels, TARGET_FOR_ANONYMOUS), | 990       : BreakableStatement(isolate, labels, TARGET_FOR_ANONYMOUS), | 
| 1030         tag_(NULL), | 991         tag_(NULL), | 
| 1031         cases_(NULL) { } | 992         cases_(NULL) { } | 
| 1032 | 993 | 
| 1033  private: | 994  private: | 
| 1034   Expression* tag_; | 995   Expression* tag_; | 
| 1035   ZoneList<CaseClause*>* cases_; | 996   ZoneList<CaseClause*>* cases_; | 
| 1036 }; | 997 }; | 
| 1037 | 998 | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
| 1050 | 1011 | 
| 1051   Expression* condition() const { return condition_; } | 1012   Expression* condition() const { return condition_; } | 
| 1052   Statement* then_statement() const { return then_statement_; } | 1013   Statement* then_statement() const { return then_statement_; } | 
| 1053   Statement* else_statement() const { return else_statement_; } | 1014   Statement* else_statement() const { return else_statement_; } | 
| 1054 | 1015 | 
| 1055   BailoutId IfId() const { return if_id_; } | 1016   BailoutId IfId() const { return if_id_; } | 
| 1056   BailoutId ThenId() const { return then_id_; } | 1017   BailoutId ThenId() const { return then_id_; } | 
| 1057   BailoutId ElseId() const { return else_id_; } | 1018   BailoutId ElseId() const { return else_id_; } | 
| 1058 | 1019 | 
| 1059  protected: | 1020  protected: | 
| 1060   template<class> friend class AstNodeFactory; |  | 
| 1061 |  | 
| 1062   IfStatement(Isolate* isolate, | 1021   IfStatement(Isolate* isolate, | 
| 1063               Expression* condition, | 1022               Expression* condition, | 
| 1064               Statement* then_statement, | 1023               Statement* then_statement, | 
| 1065               Statement* else_statement) | 1024               Statement* else_statement) | 
| 1066       : condition_(condition), | 1025       : condition_(condition), | 
| 1067         then_statement_(then_statement), | 1026         then_statement_(then_statement), | 
| 1068         else_statement_(else_statement), | 1027         else_statement_(else_statement), | 
| 1069         if_id_(GetNextId(isolate)), | 1028         if_id_(GetNextId(isolate)), | 
| 1070         then_id_(GetNextId(isolate)), | 1029         then_id_(GetNextId(isolate)), | 
| 1071         else_id_(GetNextId(isolate)) { | 1030         else_id_(GetNextId(isolate)) { | 
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1131 | 1090 | 
| 1132 class TryCatchStatement: public TryStatement { | 1091 class TryCatchStatement: public TryStatement { | 
| 1133  public: | 1092  public: | 
| 1134   DECLARE_NODE_TYPE(TryCatchStatement) | 1093   DECLARE_NODE_TYPE(TryCatchStatement) | 
| 1135 | 1094 | 
| 1136   Scope* scope() { return scope_; } | 1095   Scope* scope() { return scope_; } | 
| 1137   Variable* variable() { return variable_; } | 1096   Variable* variable() { return variable_; } | 
| 1138   Block* catch_block() const { return catch_block_; } | 1097   Block* catch_block() const { return catch_block_; } | 
| 1139 | 1098 | 
| 1140  protected: | 1099  protected: | 
| 1141   template<class> friend class AstNodeFactory; |  | 
| 1142 |  | 
| 1143   TryCatchStatement(int index, | 1100   TryCatchStatement(int index, | 
| 1144                     Block* try_block, | 1101                     Block* try_block, | 
| 1145                     Scope* scope, | 1102                     Scope* scope, | 
| 1146                     Variable* variable, | 1103                     Variable* variable, | 
| 1147                     Block* catch_block) | 1104                     Block* catch_block) | 
| 1148       : TryStatement(index, try_block), | 1105       : TryStatement(index, try_block), | 
| 1149         scope_(scope), | 1106         scope_(scope), | 
| 1150         variable_(variable), | 1107         variable_(variable), | 
| 1151         catch_block_(catch_block) { | 1108         catch_block_(catch_block) { | 
| 1152   } | 1109   } | 
| 1153 | 1110 | 
| 1154  private: | 1111  private: | 
| 1155   Scope* scope_; | 1112   Scope* scope_; | 
| 1156   Variable* variable_; | 1113   Variable* variable_; | 
| 1157   Block* catch_block_; | 1114   Block* catch_block_; | 
| 1158 }; | 1115 }; | 
| 1159 | 1116 | 
| 1160 | 1117 | 
| 1161 class TryFinallyStatement: public TryStatement { | 1118 class TryFinallyStatement: public TryStatement { | 
| 1162  public: | 1119  public: | 
| 1163   DECLARE_NODE_TYPE(TryFinallyStatement) | 1120   DECLARE_NODE_TYPE(TryFinallyStatement) | 
| 1164 | 1121 | 
| 1165   Block* finally_block() const { return finally_block_; } | 1122   Block* finally_block() const { return finally_block_; } | 
| 1166 | 1123 | 
| 1167  protected: | 1124  protected: | 
| 1168   template<class> friend class AstNodeFactory; |  | 
| 1169 |  | 
| 1170   TryFinallyStatement(int index, Block* try_block, Block* finally_block) | 1125   TryFinallyStatement(int index, Block* try_block, Block* finally_block) | 
| 1171       : TryStatement(index, try_block), | 1126       : TryStatement(index, try_block), | 
| 1172         finally_block_(finally_block) { } | 1127         finally_block_(finally_block) { } | 
| 1173 | 1128 | 
| 1174  private: | 1129  private: | 
| 1175   Block* finally_block_; | 1130   Block* finally_block_; | 
| 1176 }; | 1131 }; | 
| 1177 | 1132 | 
| 1178 | 1133 | 
| 1179 class DebuggerStatement: public Statement { | 1134 class DebuggerStatement: public Statement { | 
| 1180  public: | 1135  public: | 
| 1181   DECLARE_NODE_TYPE(DebuggerStatement) | 1136   DECLARE_NODE_TYPE(DebuggerStatement) | 
| 1182 | 1137 | 
| 1183  protected: | 1138  protected: | 
| 1184   template<class> friend class AstNodeFactory; |  | 
| 1185 |  | 
| 1186   DebuggerStatement() {} | 1139   DebuggerStatement() {} | 
| 1187 }; | 1140 }; | 
| 1188 | 1141 | 
| 1189 | 1142 | 
| 1190 class EmptyStatement: public Statement { | 1143 class EmptyStatement: public Statement { | 
| 1191  public: | 1144  public: | 
| 1192   DECLARE_NODE_TYPE(EmptyStatement) | 1145   DECLARE_NODE_TYPE(EmptyStatement) | 
| 1193 | 1146 | 
| 1194  protected: | 1147  protected: | 
| 1195   template<class> friend class AstNodeFactory; |  | 
| 1196 |  | 
| 1197   EmptyStatement() {} | 1148   EmptyStatement() {} | 
| 1198 }; | 1149 }; | 
| 1199 | 1150 | 
| 1200 | 1151 | 
| 1201 class Literal: public Expression { | 1152 class Literal: public Expression { | 
| 1202  public: | 1153  public: | 
| 1203   DECLARE_NODE_TYPE(Literal) | 1154   DECLARE_NODE_TYPE(Literal) | 
| 1204 | 1155 | 
| 1205   virtual bool IsPropertyName() { | 1156   virtual bool IsPropertyName() { | 
| 1206     if (handle_->IsSymbol()) { | 1157     if (handle_->IsSymbol()) { | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1240 | 1191 | 
| 1241   static bool Match(void* literal1, void* literal2) { | 1192   static bool Match(void* literal1, void* literal2) { | 
| 1242     Handle<String> s1 = static_cast<Literal*>(literal1)->ToString(); | 1193     Handle<String> s1 = static_cast<Literal*>(literal1)->ToString(); | 
| 1243     Handle<String> s2 = static_cast<Literal*>(literal2)->ToString(); | 1194     Handle<String> s2 = static_cast<Literal*>(literal2)->ToString(); | 
| 1244     return s1->Equals(*s2); | 1195     return s1->Equals(*s2); | 
| 1245   } | 1196   } | 
| 1246 | 1197 | 
| 1247   TypeFeedbackId LiteralFeedbackId() const { return reuse(id()); } | 1198   TypeFeedbackId LiteralFeedbackId() const { return reuse(id()); } | 
| 1248 | 1199 | 
| 1249  protected: | 1200  protected: | 
| 1250   template<class> friend class AstNodeFactory; |  | 
| 1251 |  | 
| 1252   Literal(Isolate* isolate, Handle<Object> handle) | 1201   Literal(Isolate* isolate, Handle<Object> handle) | 
| 1253       : Expression(isolate), | 1202       : Expression(isolate), | 
| 1254         handle_(handle) { } | 1203         handle_(handle) { } | 
| 1255 | 1204 | 
| 1256  private: | 1205  private: | 
| 1257   Handle<String> ToString(); | 1206   Handle<String> ToString(); | 
| 1258 | 1207 | 
| 1259   Handle<Object> handle_; | 1208   Handle<Object> handle_; | 
| 1260 }; | 1209 }; | 
| 1261 | 1210 | 
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1359     kHasFunction = 1 << 1 | 1308     kHasFunction = 1 << 1 | 
| 1360   }; | 1309   }; | 
| 1361 | 1310 | 
| 1362   struct Accessors: public ZoneObject { | 1311   struct Accessors: public ZoneObject { | 
| 1363     Accessors() : getter(NULL), setter(NULL) { } | 1312     Accessors() : getter(NULL), setter(NULL) { } | 
| 1364     Expression* getter; | 1313     Expression* getter; | 
| 1365     Expression* setter; | 1314     Expression* setter; | 
| 1366   }; | 1315   }; | 
| 1367 | 1316 | 
| 1368  protected: | 1317  protected: | 
| 1369   template<class> friend class AstNodeFactory; |  | 
| 1370 |  | 
| 1371   ObjectLiteral(Isolate* isolate, | 1318   ObjectLiteral(Isolate* isolate, | 
| 1372                 Handle<FixedArray> constant_properties, | 1319                 Handle<FixedArray> constant_properties, | 
| 1373                 ZoneList<Property*>* properties, | 1320                 ZoneList<Property*>* properties, | 
| 1374                 int literal_index, | 1321                 int literal_index, | 
| 1375                 bool is_simple, | 1322                 bool is_simple, | 
| 1376                 bool fast_elements, | 1323                 bool fast_elements, | 
| 1377                 int depth, | 1324                 int depth, | 
| 1378                 bool has_function) | 1325                 bool has_function) | 
| 1379       : MaterializedLiteral(isolate, literal_index, is_simple, depth), | 1326       : MaterializedLiteral(isolate, literal_index, is_simple, depth), | 
| 1380         constant_properties_(constant_properties), | 1327         constant_properties_(constant_properties), | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 1392 | 1339 | 
| 1393 // Node for capturing a regexp literal. | 1340 // Node for capturing a regexp literal. | 
| 1394 class RegExpLiteral: public MaterializedLiteral { | 1341 class RegExpLiteral: public MaterializedLiteral { | 
| 1395  public: | 1342  public: | 
| 1396   DECLARE_NODE_TYPE(RegExpLiteral) | 1343   DECLARE_NODE_TYPE(RegExpLiteral) | 
| 1397 | 1344 | 
| 1398   Handle<String> pattern() const { return pattern_; } | 1345   Handle<String> pattern() const { return pattern_; } | 
| 1399   Handle<String> flags() const { return flags_; } | 1346   Handle<String> flags() const { return flags_; } | 
| 1400 | 1347 | 
| 1401  protected: | 1348  protected: | 
| 1402   template<class> friend class AstNodeFactory; |  | 
| 1403 |  | 
| 1404   RegExpLiteral(Isolate* isolate, | 1349   RegExpLiteral(Isolate* isolate, | 
| 1405                 Handle<String> pattern, | 1350                 Handle<String> pattern, | 
| 1406                 Handle<String> flags, | 1351                 Handle<String> flags, | 
| 1407                 int literal_index) | 1352                 int literal_index) | 
| 1408       : MaterializedLiteral(isolate, literal_index, false, 1), | 1353       : MaterializedLiteral(isolate, literal_index, false, 1), | 
| 1409         pattern_(pattern), | 1354         pattern_(pattern), | 
| 1410         flags_(flags) {} | 1355         flags_(flags) {} | 
| 1411 | 1356 | 
| 1412  private: | 1357  private: | 
| 1413   Handle<String> pattern_; | 1358   Handle<String> pattern_; | 
| 1414   Handle<String> flags_; | 1359   Handle<String> flags_; | 
| 1415 }; | 1360 }; | 
| 1416 | 1361 | 
| 1417 // An array literal has a literals object that is used | 1362 // An array literal has a literals object that is used | 
| 1418 // for minimizing the work when constructing it at runtime. | 1363 // for minimizing the work when constructing it at runtime. | 
| 1419 class ArrayLiteral: public MaterializedLiteral { | 1364 class ArrayLiteral: public MaterializedLiteral { | 
| 1420  public: | 1365  public: | 
| 1421   DECLARE_NODE_TYPE(ArrayLiteral) | 1366   DECLARE_NODE_TYPE(ArrayLiteral) | 
| 1422 | 1367 | 
| 1423   Handle<FixedArray> constant_elements() const { return constant_elements_; } | 1368   Handle<FixedArray> constant_elements() const { return constant_elements_; } | 
| 1424   ZoneList<Expression*>* values() const { return values_; } | 1369   ZoneList<Expression*>* values() const { return values_; } | 
| 1425 | 1370 | 
| 1426   // Return an AST id for an element that is used in simulate instructions. | 1371   // Return an AST id for an element that is used in simulate instructions. | 
| 1427   BailoutId GetIdForElement(int i) { | 1372   BailoutId GetIdForElement(int i) { | 
| 1428     return BailoutId(first_element_id_.ToInt() + i); | 1373     return BailoutId(first_element_id_.ToInt() + i); | 
| 1429   } | 1374   } | 
| 1430 | 1375 | 
| 1431  protected: | 1376  protected: | 
| 1432   template<class> friend class AstNodeFactory; |  | 
| 1433 |  | 
| 1434   ArrayLiteral(Isolate* isolate, | 1377   ArrayLiteral(Isolate* isolate, | 
| 1435                Handle<FixedArray> constant_elements, | 1378                Handle<FixedArray> constant_elements, | 
| 1436                ZoneList<Expression*>* values, | 1379                ZoneList<Expression*>* values, | 
| 1437                int literal_index, | 1380                int literal_index, | 
| 1438                bool is_simple, | 1381                bool is_simple, | 
| 1439                int depth) | 1382                int depth) | 
| 1440       : MaterializedLiteral(isolate, literal_index, is_simple, depth), | 1383       : MaterializedLiteral(isolate, literal_index, is_simple, depth), | 
| 1441         constant_elements_(constant_elements), | 1384         constant_elements_(constant_elements), | 
| 1442         values_(values), | 1385         values_(values), | 
| 1443         first_element_id_(ReserveIdRange(isolate, values->length())) {} | 1386         first_element_id_(ReserveIdRange(isolate, values->length())) {} | 
| (...skipping 30 matching lines...) Expand all  Loading... | 
| 1474   Interface* interface() const { return interface_; } | 1417   Interface* interface() const { return interface_; } | 
| 1475 | 1418 | 
| 1476 | 1419 | 
| 1477   void MarkAsTrivial() { is_trivial_ = true; } | 1420   void MarkAsTrivial() { is_trivial_ = true; } | 
| 1478   void MarkAsLValue() { is_lvalue_ = true; } | 1421   void MarkAsLValue() { is_lvalue_ = true; } | 
| 1479 | 1422 | 
| 1480   // Bind this proxy to the variable var. | 1423   // Bind this proxy to the variable var. | 
| 1481   void BindTo(Variable* var); | 1424   void BindTo(Variable* var); | 
| 1482 | 1425 | 
| 1483  protected: | 1426  protected: | 
| 1484   template<class> friend class AstNodeFactory; |  | 
| 1485 |  | 
| 1486   VariableProxy(Isolate* isolate, Variable* var); | 1427   VariableProxy(Isolate* isolate, Variable* var); | 
| 1487 | 1428 | 
| 1488   VariableProxy(Isolate* isolate, | 1429   VariableProxy(Isolate* isolate, | 
| 1489                 Handle<String> name, | 1430                 Handle<String> name, | 
| 1490                 bool is_this, | 1431                 bool is_this, | 
| 1491                 Interface* interface, | 1432                 Interface* interface, | 
| 1492                 int position); | 1433                 int position); | 
| 1493 | 1434 | 
| 1494   Handle<String> name_; | 1435   Handle<String> name_; | 
| 1495   Variable* var_;  // resolved variable, or NULL | 1436   Variable* var_;  // resolved variable, or NULL | 
| (...skipping 25 matching lines...) Expand all  Loading... | 
| 1521 | 1462 | 
| 1522   // Type feedback information. | 1463   // Type feedback information. | 
| 1523   void RecordTypeFeedback(TypeFeedbackOracle* oracle, Zone* zone); | 1464   void RecordTypeFeedback(TypeFeedbackOracle* oracle, Zone* zone); | 
| 1524   virtual bool IsMonomorphic() { return is_monomorphic_; } | 1465   virtual bool IsMonomorphic() { return is_monomorphic_; } | 
| 1525   virtual SmallMapList* GetReceiverTypes() { return &receiver_types_; } | 1466   virtual SmallMapList* GetReceiverTypes() { return &receiver_types_; } | 
| 1526   bool IsArrayLength() { return is_array_length_; } | 1467   bool IsArrayLength() { return is_array_length_; } | 
| 1527   bool IsUninitialized() { return is_uninitialized_; } | 1468   bool IsUninitialized() { return is_uninitialized_; } | 
| 1528   TypeFeedbackId PropertyFeedbackId() { return reuse(id()); } | 1469   TypeFeedbackId PropertyFeedbackId() { return reuse(id()); } | 
| 1529 | 1470 | 
| 1530  protected: | 1471  protected: | 
| 1531   template<class> friend class AstNodeFactory; |  | 
| 1532 |  | 
| 1533   Property(Isolate* isolate, | 1472   Property(Isolate* isolate, | 
| 1534            Expression* obj, | 1473            Expression* obj, | 
| 1535            Expression* key, | 1474            Expression* key, | 
| 1536            int pos) | 1475            int pos) | 
| 1537       : Expression(isolate), | 1476       : Expression(isolate), | 
| 1538         obj_(obj), | 1477         obj_(obj), | 
| 1539         key_(key), | 1478         key_(key), | 
| 1540         pos_(pos), | 1479         pos_(pos), | 
| 1541         load_id_(GetNextId(isolate)), | 1480         load_id_(GetNextId(isolate)), | 
| 1542         is_monomorphic_(false), | 1481         is_monomorphic_(false), | 
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1589   bool ComputeGlobalTarget(Handle<GlobalObject> global, LookupResult* lookup); | 1528   bool ComputeGlobalTarget(Handle<GlobalObject> global, LookupResult* lookup); | 
| 1590 | 1529 | 
| 1591   BailoutId ReturnId() const { return return_id_; } | 1530   BailoutId ReturnId() const { return return_id_; } | 
| 1592 | 1531 | 
| 1593 #ifdef DEBUG | 1532 #ifdef DEBUG | 
| 1594   // Used to assert that the FullCodeGenerator records the return site. | 1533   // Used to assert that the FullCodeGenerator records the return site. | 
| 1595   bool return_is_recorded_; | 1534   bool return_is_recorded_; | 
| 1596 #endif | 1535 #endif | 
| 1597 | 1536 | 
| 1598  protected: | 1537  protected: | 
| 1599   template<class> friend class AstNodeFactory; |  | 
| 1600 |  | 
| 1601   Call(Isolate* isolate, | 1538   Call(Isolate* isolate, | 
| 1602        Expression* expression, | 1539        Expression* expression, | 
| 1603        ZoneList<Expression*>* arguments, | 1540        ZoneList<Expression*>* arguments, | 
| 1604        int pos) | 1541        int pos) | 
| 1605       : Expression(isolate), | 1542       : Expression(isolate), | 
| 1606         expression_(expression), | 1543         expression_(expression), | 
| 1607         arguments_(arguments), | 1544         arguments_(arguments), | 
| 1608         pos_(pos), | 1545         pos_(pos), | 
| 1609         is_monomorphic_(false), | 1546         is_monomorphic_(false), | 
| 1610         check_type_(RECEIVER_MAP_CHECK), | 1547         check_type_(RECEIVER_MAP_CHECK), | 
| (...skipping 25 matching lines...) Expand all  Loading... | 
| 1636 | 1573 | 
| 1637   // Type feedback information. | 1574   // Type feedback information. | 
| 1638   TypeFeedbackId CallNewFeedbackId() const { return reuse(id()); } | 1575   TypeFeedbackId CallNewFeedbackId() const { return reuse(id()); } | 
| 1639   void RecordTypeFeedback(TypeFeedbackOracle* oracle); | 1576   void RecordTypeFeedback(TypeFeedbackOracle* oracle); | 
| 1640   virtual bool IsMonomorphic() { return is_monomorphic_; } | 1577   virtual bool IsMonomorphic() { return is_monomorphic_; } | 
| 1641   Handle<JSFunction> target() { return target_; } | 1578   Handle<JSFunction> target() { return target_; } | 
| 1642 | 1579 | 
| 1643   BailoutId ReturnId() const { return return_id_; } | 1580   BailoutId ReturnId() const { return return_id_; } | 
| 1644 | 1581 | 
| 1645  protected: | 1582  protected: | 
| 1646   template<class> friend class AstNodeFactory; |  | 
| 1647 |  | 
| 1648   CallNew(Isolate* isolate, | 1583   CallNew(Isolate* isolate, | 
| 1649           Expression* expression, | 1584           Expression* expression, | 
| 1650           ZoneList<Expression*>* arguments, | 1585           ZoneList<Expression*>* arguments, | 
| 1651           int pos) | 1586           int pos) | 
| 1652       : Expression(isolate), | 1587       : Expression(isolate), | 
| 1653         expression_(expression), | 1588         expression_(expression), | 
| 1654         arguments_(arguments), | 1589         arguments_(arguments), | 
| 1655         pos_(pos), | 1590         pos_(pos), | 
| 1656         is_monomorphic_(false), | 1591         is_monomorphic_(false), | 
| 1657         return_id_(GetNextId(isolate)) { } | 1592         return_id_(GetNextId(isolate)) { } | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
| 1677   DECLARE_NODE_TYPE(CallRuntime) | 1612   DECLARE_NODE_TYPE(CallRuntime) | 
| 1678 | 1613 | 
| 1679   Handle<String> name() const { return name_; } | 1614   Handle<String> name() const { return name_; } | 
| 1680   const Runtime::Function* function() const { return function_; } | 1615   const Runtime::Function* function() const { return function_; } | 
| 1681   ZoneList<Expression*>* arguments() const { return arguments_; } | 1616   ZoneList<Expression*>* arguments() const { return arguments_; } | 
| 1682   bool is_jsruntime() const { return function_ == NULL; } | 1617   bool is_jsruntime() const { return function_ == NULL; } | 
| 1683 | 1618 | 
| 1684   TypeFeedbackId CallRuntimeFeedbackId() const { return reuse(id()); } | 1619   TypeFeedbackId CallRuntimeFeedbackId() const { return reuse(id()); } | 
| 1685 | 1620 | 
| 1686  protected: | 1621  protected: | 
| 1687   template<class> friend class AstNodeFactory; |  | 
| 1688 |  | 
| 1689   CallRuntime(Isolate* isolate, | 1622   CallRuntime(Isolate* isolate, | 
| 1690               Handle<String> name, | 1623               Handle<String> name, | 
| 1691               const Runtime::Function* function, | 1624               const Runtime::Function* function, | 
| 1692               ZoneList<Expression*>* arguments) | 1625               ZoneList<Expression*>* arguments) | 
| 1693       : Expression(isolate), | 1626       : Expression(isolate), | 
| 1694         name_(name), | 1627         name_(name), | 
| 1695         function_(function), | 1628         function_(function), | 
| 1696         arguments_(arguments) { } | 1629         arguments_(arguments) { } | 
| 1697 | 1630 | 
| 1698  private: | 1631  private: | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
| 1711   Token::Value op() const { return op_; } | 1644   Token::Value op() const { return op_; } | 
| 1712   Expression* expression() const { return expression_; } | 1645   Expression* expression() const { return expression_; } | 
| 1713   virtual int position() const { return pos_; } | 1646   virtual int position() const { return pos_; } | 
| 1714 | 1647 | 
| 1715   BailoutId MaterializeTrueId() { return materialize_true_id_; } | 1648   BailoutId MaterializeTrueId() { return materialize_true_id_; } | 
| 1716   BailoutId MaterializeFalseId() { return materialize_false_id_; } | 1649   BailoutId MaterializeFalseId() { return materialize_false_id_; } | 
| 1717 | 1650 | 
| 1718   TypeFeedbackId UnaryOperationFeedbackId() const { return reuse(id()); } | 1651   TypeFeedbackId UnaryOperationFeedbackId() const { return reuse(id()); } | 
| 1719 | 1652 | 
| 1720  protected: | 1653  protected: | 
| 1721   template<class> friend class AstNodeFactory; |  | 
| 1722 |  | 
| 1723   UnaryOperation(Isolate* isolate, | 1654   UnaryOperation(Isolate* isolate, | 
| 1724                  Token::Value op, | 1655                  Token::Value op, | 
| 1725                  Expression* expression, | 1656                  Expression* expression, | 
| 1726                  int pos) | 1657                  int pos) | 
| 1727       : Expression(isolate), | 1658       : Expression(isolate), | 
| 1728         op_(op), | 1659         op_(op), | 
| 1729         expression_(expression), | 1660         expression_(expression), | 
| 1730         pos_(pos), | 1661         pos_(pos), | 
| 1731         materialize_true_id_(GetNextId(isolate)), | 1662         materialize_true_id_(GetNextId(isolate)), | 
| 1732         materialize_false_id_(GetNextId(isolate)) { | 1663         materialize_false_id_(GetNextId(isolate)) { | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
| 1754   Token::Value op() const { return op_; } | 1685   Token::Value op() const { return op_; } | 
| 1755   Expression* left() const { return left_; } | 1686   Expression* left() const { return left_; } | 
| 1756   Expression* right() const { return right_; } | 1687   Expression* right() const { return right_; } | 
| 1757   virtual int position() const { return pos_; } | 1688   virtual int position() const { return pos_; } | 
| 1758 | 1689 | 
| 1759   BailoutId RightId() const { return right_id_; } | 1690   BailoutId RightId() const { return right_id_; } | 
| 1760 | 1691 | 
| 1761   TypeFeedbackId BinaryOperationFeedbackId() const { return reuse(id()); } | 1692   TypeFeedbackId BinaryOperationFeedbackId() const { return reuse(id()); } | 
| 1762 | 1693 | 
| 1763  protected: | 1694  protected: | 
| 1764   template<class> friend class AstNodeFactory; |  | 
| 1765 |  | 
| 1766   BinaryOperation(Isolate* isolate, | 1695   BinaryOperation(Isolate* isolate, | 
| 1767                   Token::Value op, | 1696                   Token::Value op, | 
| 1768                   Expression* left, | 1697                   Expression* left, | 
| 1769                   Expression* right, | 1698                   Expression* right, | 
| 1770                   int pos) | 1699                   int pos) | 
| 1771       : Expression(isolate), | 1700       : Expression(isolate), | 
| 1772         op_(op), | 1701         op_(op), | 
| 1773         left_(left), | 1702         left_(left), | 
| 1774         right_(right), | 1703         right_(right), | 
| 1775         pos_(pos), | 1704         pos_(pos), | 
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1808   void RecordTypeFeedback(TypeFeedbackOracle* oracle, Zone* znoe); | 1737   void RecordTypeFeedback(TypeFeedbackOracle* oracle, Zone* znoe); | 
| 1809   virtual bool IsMonomorphic() { return is_monomorphic_; } | 1738   virtual bool IsMonomorphic() { return is_monomorphic_; } | 
| 1810   virtual SmallMapList* GetReceiverTypes() { return &receiver_types_; } | 1739   virtual SmallMapList* GetReceiverTypes() { return &receiver_types_; } | 
| 1811 | 1740 | 
| 1812   BailoutId AssignmentId() const { return assignment_id_; } | 1741   BailoutId AssignmentId() const { return assignment_id_; } | 
| 1813 | 1742 | 
| 1814   TypeFeedbackId CountBinOpFeedbackId() const { return count_id_; } | 1743   TypeFeedbackId CountBinOpFeedbackId() const { return count_id_; } | 
| 1815   TypeFeedbackId CountStoreFeedbackId() const { return reuse(id()); } | 1744   TypeFeedbackId CountStoreFeedbackId() const { return reuse(id()); } | 
| 1816 | 1745 | 
| 1817  protected: | 1746  protected: | 
| 1818   template<class> friend class AstNodeFactory; |  | 
| 1819 |  | 
| 1820   CountOperation(Isolate* isolate, | 1747   CountOperation(Isolate* isolate, | 
| 1821                  Token::Value op, | 1748                  Token::Value op, | 
| 1822                  bool is_prefix, | 1749                  bool is_prefix, | 
| 1823                  Expression* expr, | 1750                  Expression* expr, | 
| 1824                  int pos) | 1751                  int pos) | 
| 1825       : Expression(isolate), | 1752       : Expression(isolate), | 
| 1826         op_(op), | 1753         op_(op), | 
| 1827         is_prefix_(is_prefix), | 1754         is_prefix_(is_prefix), | 
| 1828         expression_(expr), | 1755         expression_(expr), | 
| 1829         pos_(pos), | 1756         pos_(pos), | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
| 1856   void RecordTypeFeedback(TypeFeedbackOracle* oracle); | 1783   void RecordTypeFeedback(TypeFeedbackOracle* oracle); | 
| 1857   bool IsSmiCompare() { return compare_type_ == SMI_ONLY; } | 1784   bool IsSmiCompare() { return compare_type_ == SMI_ONLY; } | 
| 1858   bool IsObjectCompare() { return compare_type_ == OBJECT_ONLY; } | 1785   bool IsObjectCompare() { return compare_type_ == OBJECT_ONLY; } | 
| 1859 | 1786 | 
| 1860   // Match special cases. | 1787   // Match special cases. | 
| 1861   bool IsLiteralCompareTypeof(Expression** expr, Handle<String>* check); | 1788   bool IsLiteralCompareTypeof(Expression** expr, Handle<String>* check); | 
| 1862   bool IsLiteralCompareUndefined(Expression** expr); | 1789   bool IsLiteralCompareUndefined(Expression** expr); | 
| 1863   bool IsLiteralCompareNull(Expression** expr); | 1790   bool IsLiteralCompareNull(Expression** expr); | 
| 1864 | 1791 | 
| 1865  protected: | 1792  protected: | 
| 1866   template<class> friend class AstNodeFactory; |  | 
| 1867 |  | 
| 1868   CompareOperation(Isolate* isolate, | 1793   CompareOperation(Isolate* isolate, | 
| 1869                    Token::Value op, | 1794                    Token::Value op, | 
| 1870                    Expression* left, | 1795                    Expression* left, | 
| 1871                    Expression* right, | 1796                    Expression* right, | 
| 1872                    int pos) | 1797                    int pos) | 
| 1873       : Expression(isolate), | 1798       : Expression(isolate), | 
| 1874         op_(op), | 1799         op_(op), | 
| 1875         left_(left), | 1800         left_(left), | 
| 1876         right_(right), | 1801         right_(right), | 
| 1877         pos_(pos), | 1802         pos_(pos), | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
| 1898   Expression* then_expression() const { return then_expression_; } | 1823   Expression* then_expression() const { return then_expression_; } | 
| 1899   Expression* else_expression() const { return else_expression_; } | 1824   Expression* else_expression() const { return else_expression_; } | 
| 1900 | 1825 | 
| 1901   int then_expression_position() const { return then_expression_position_; } | 1826   int then_expression_position() const { return then_expression_position_; } | 
| 1902   int else_expression_position() const { return else_expression_position_; } | 1827   int else_expression_position() const { return else_expression_position_; } | 
| 1903 | 1828 | 
| 1904   BailoutId ThenId() const { return then_id_; } | 1829   BailoutId ThenId() const { return then_id_; } | 
| 1905   BailoutId ElseId() const { return else_id_; } | 1830   BailoutId ElseId() const { return else_id_; } | 
| 1906 | 1831 | 
| 1907  protected: | 1832  protected: | 
| 1908   template<class> friend class AstNodeFactory; |  | 
| 1909 |  | 
| 1910   Conditional(Isolate* isolate, | 1833   Conditional(Isolate* isolate, | 
| 1911               Expression* condition, | 1834               Expression* condition, | 
| 1912               Expression* then_expression, | 1835               Expression* then_expression, | 
| 1913               Expression* else_expression, | 1836               Expression* else_expression, | 
| 1914               int then_expression_position, | 1837               int then_expression_position, | 
| 1915               int else_expression_position) | 1838               int else_expression_position) | 
| 1916       : Expression(isolate), | 1839       : Expression(isolate), | 
| 1917         condition_(condition), | 1840         condition_(condition), | 
| 1918         then_expression_(then_expression), | 1841         then_expression_(then_expression), | 
| 1919         else_expression_(else_expression), | 1842         else_expression_(else_expression), | 
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1961 | 1884 | 
| 1962   BailoutId AssignmentId() const { return assignment_id_; } | 1885   BailoutId AssignmentId() const { return assignment_id_; } | 
| 1963 | 1886 | 
| 1964   // Type feedback information. | 1887   // Type feedback information. | 
| 1965   TypeFeedbackId AssignmentFeedbackId() { return reuse(id()); } | 1888   TypeFeedbackId AssignmentFeedbackId() { return reuse(id()); } | 
| 1966   void RecordTypeFeedback(TypeFeedbackOracle* oracle, Zone* zone); | 1889   void RecordTypeFeedback(TypeFeedbackOracle* oracle, Zone* zone); | 
| 1967   virtual bool IsMonomorphic() { return is_monomorphic_; } | 1890   virtual bool IsMonomorphic() { return is_monomorphic_; } | 
| 1968   virtual SmallMapList* GetReceiverTypes() { return &receiver_types_; } | 1891   virtual SmallMapList* GetReceiverTypes() { return &receiver_types_; } | 
| 1969 | 1892 | 
| 1970  protected: | 1893  protected: | 
| 1971   template<class> friend class AstNodeFactory; |  | 
| 1972 |  | 
| 1973   Assignment(Isolate* isolate, | 1894   Assignment(Isolate* isolate, | 
| 1974              Token::Value op, | 1895              Token::Value op, | 
| 1975              Expression* target, | 1896              Expression* target, | 
| 1976              Expression* value, | 1897              Expression* value, | 
| 1977              int pos); | 1898              int pos); | 
| 1978 | 1899 | 
| 1979   template<class Visitor> | 1900   template<class Visitor> | 
| 1980   void Init(Isolate* isolate, AstNodeFactory<Visitor>* factory) { | 1901   void Init(Isolate* isolate, AstNodeFactory<Visitor>* factory) { | 
| 1981     ASSERT(Token::IsAssignmentOp(op_)); | 1902     ASSERT(Token::IsAssignmentOp(op_)); | 
| 1982     if (is_compound()) { | 1903     if (is_compound()) { | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
| 2002 | 1923 | 
| 2003 | 1924 | 
| 2004 class Throw: public Expression { | 1925 class Throw: public Expression { | 
| 2005  public: | 1926  public: | 
| 2006   DECLARE_NODE_TYPE(Throw) | 1927   DECLARE_NODE_TYPE(Throw) | 
| 2007 | 1928 | 
| 2008   Expression* exception() const { return exception_; } | 1929   Expression* exception() const { return exception_; } | 
| 2009   virtual int position() const { return pos_; } | 1930   virtual int position() const { return pos_; } | 
| 2010 | 1931 | 
| 2011  protected: | 1932  protected: | 
| 2012   template<class> friend class AstNodeFactory; |  | 
| 2013 |  | 
| 2014   Throw(Isolate* isolate, Expression* exception, int pos) | 1933   Throw(Isolate* isolate, Expression* exception, int pos) | 
| 2015       : Expression(isolate), exception_(exception), pos_(pos) {} | 1934       : Expression(isolate), exception_(exception), pos_(pos) {} | 
| 2016 | 1935 | 
| 2017  private: | 1936  private: | 
| 2018   Expression* exception_; | 1937   Expression* exception_; | 
| 2019   int pos_; | 1938   int pos_; | 
| 2020 }; | 1939 }; | 
| 2021 | 1940 | 
| 2022 | 1941 | 
| 2023 class FunctionLiteral: public Expression { | 1942 class FunctionLiteral: public Expression { | 
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2103     bitfield_ = IsParenthesized::update(bitfield_, kIsParenthesized); | 2022     bitfield_ = IsParenthesized::update(bitfield_, kIsParenthesized); | 
| 2104   } | 2023   } | 
| 2105 | 2024 | 
| 2106   int ast_node_count() { return ast_properties_.node_count(); } | 2025   int ast_node_count() { return ast_properties_.node_count(); } | 
| 2107   AstProperties::Flags* flags() { return ast_properties_.flags(); } | 2026   AstProperties::Flags* flags() { return ast_properties_.flags(); } | 
| 2108   void set_ast_properties(AstProperties* ast_properties) { | 2027   void set_ast_properties(AstProperties* ast_properties) { | 
| 2109     ast_properties_ = *ast_properties; | 2028     ast_properties_ = *ast_properties; | 
| 2110   } | 2029   } | 
| 2111 | 2030 | 
| 2112  protected: | 2031  protected: | 
| 2113   template<class> friend class AstNodeFactory; |  | 
| 2114 |  | 
| 2115   FunctionLiteral(Isolate* isolate, | 2032   FunctionLiteral(Isolate* isolate, | 
| 2116                   Handle<String> name, | 2033                   Handle<String> name, | 
| 2117                   Scope* scope, | 2034                   Scope* scope, | 
| 2118                   ZoneList<Statement*>* body, | 2035                   ZoneList<Statement*>* body, | 
| 2119                   int materialized_literal_count, | 2036                   int materialized_literal_count, | 
| 2120                   int expected_property_count, | 2037                   int expected_property_count, | 
| 2121                   int handler_count, | 2038                   int handler_count, | 
| 2122                   bool has_only_simple_this_property_assignments, | 2039                   bool has_only_simple_this_property_assignments, | 
| 2123                   Handle<FixedArray> this_property_assignments, | 2040                   Handle<FixedArray> this_property_assignments, | 
| 2124                   int parameter_count, | 2041                   int parameter_count, | 
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2175 | 2092 | 
| 2176 class SharedFunctionInfoLiteral: public Expression { | 2093 class SharedFunctionInfoLiteral: public Expression { | 
| 2177  public: | 2094  public: | 
| 2178   DECLARE_NODE_TYPE(SharedFunctionInfoLiteral) | 2095   DECLARE_NODE_TYPE(SharedFunctionInfoLiteral) | 
| 2179 | 2096 | 
| 2180   Handle<SharedFunctionInfo> shared_function_info() const { | 2097   Handle<SharedFunctionInfo> shared_function_info() const { | 
| 2181     return shared_function_info_; | 2098     return shared_function_info_; | 
| 2182   } | 2099   } | 
| 2183 | 2100 | 
| 2184  protected: | 2101  protected: | 
| 2185   template<class> friend class AstNodeFactory; |  | 
| 2186 |  | 
| 2187   SharedFunctionInfoLiteral( | 2102   SharedFunctionInfoLiteral( | 
| 2188       Isolate* isolate, | 2103       Isolate* isolate, | 
| 2189       Handle<SharedFunctionInfo> shared_function_info) | 2104       Handle<SharedFunctionInfo> shared_function_info) | 
| 2190       : Expression(isolate), | 2105       : Expression(isolate), | 
| 2191         shared_function_info_(shared_function_info) { } | 2106         shared_function_info_(shared_function_info) { } | 
| 2192 | 2107 | 
| 2193  private: | 2108  private: | 
| 2194   Handle<SharedFunctionInfo> shared_function_info_; | 2109   Handle<SharedFunctionInfo> shared_function_info_; | 
| 2195 }; | 2110 }; | 
| 2196 | 2111 | 
| 2197 | 2112 | 
| 2198 class ThisFunction: public Expression { | 2113 class ThisFunction: public Expression { | 
| 2199  public: | 2114  public: | 
| 2200   DECLARE_NODE_TYPE(ThisFunction) | 2115   DECLARE_NODE_TYPE(ThisFunction) | 
| 2201 | 2116 | 
| 2202  protected: | 2117  protected: | 
| 2203   template<class> friend class AstNodeFactory; |  | 
| 2204 |  | 
| 2205   explicit ThisFunction(Isolate* isolate): Expression(isolate) {} | 2118   explicit ThisFunction(Isolate* isolate): Expression(isolate) {} | 
| 2206 }; | 2119 }; | 
| 2207 | 2120 | 
| 2208 #undef DECLARE_NODE_TYPE | 2121 #undef DECLARE_NODE_TYPE | 
| 2209 | 2122 | 
| 2210 | 2123 | 
| 2211 // ---------------------------------------------------------------------------- | 2124 // ---------------------------------------------------------------------------- | 
| 2212 // Regular expressions | 2125 // Regular expressions | 
| 2213 | 2126 | 
| 2214 | 2127 | 
| (...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3005  private: | 2918  private: | 
| 3006   Isolate* isolate_; | 2919   Isolate* isolate_; | 
| 3007   Zone* zone_; | 2920   Zone* zone_; | 
| 3008   Visitor visitor_; | 2921   Visitor visitor_; | 
| 3009 }; | 2922 }; | 
| 3010 | 2923 | 
| 3011 | 2924 | 
| 3012 } }  // namespace v8::internal | 2925 } }  // namespace v8::internal | 
| 3013 | 2926 | 
| 3014 #endif  // V8_AST_H_ | 2927 #endif  // V8_AST_H_ | 
| OLD | NEW | 
|---|