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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 }; | 76 }; |
77 | 77 |
78 void Initialize(); | 78 void Initialize(); |
79 | 79 |
80 Handle<JSObject> StubHolder(Handle<JSObject> receiver, | 80 Handle<JSObject> StubHolder(Handle<JSObject> receiver, |
81 Handle<JSObject> holder); | 81 Handle<JSObject> holder); |
82 | 82 |
83 Handle<Code> FindIC(Handle<Name> name, | 83 Handle<Code> FindIC(Handle<Name> name, |
84 Handle<Map> stub_holder_map, | 84 Handle<Map> stub_holder_map, |
85 Code::Kind kind, | 85 Code::Kind kind, |
86 Code::ExtraICState extra_state = Code::kNoExtraICState); | 86 Code::ExtraICState extra_state = Code::kNoExtraICState, |
87 | 87 InlineCacheHolderFlag cache_holder = OWN_MAP); |
88 Handle<Code> FindIC(Handle<Name> name, | |
89 Handle<JSObject> stub_holder, | |
90 Code::Kind kind, | |
91 Code::ExtraICState extra_state = Code::kNoExtraICState); | |
92 | 88 |
93 Handle<Code> FindHandler(Handle<Name> name, | 89 Handle<Code> FindHandler(Handle<Name> name, |
94 Handle<JSObject> receiver, | 90 Handle<Object> object, |
| 91 Handle<HeapObject> stub_holder, |
95 Code::Kind kind, | 92 Code::Kind kind, |
| 93 InlineCacheHolderFlag cache_holder = OWN_MAP, |
96 StrictModeFlag strict_mode = kNonStrictMode); | 94 StrictModeFlag strict_mode = kNonStrictMode); |
97 | 95 |
98 Handle<Code> ComputeMonomorphicIC(Handle<HeapObject> receiver, | 96 Handle<Code> ComputeMonomorphicIC(Handle<Name> name, |
| 97 Handle<HeapObject> receiver, |
99 Handle<Code> handler, | 98 Handle<Code> handler, |
100 Handle<Name> name, | |
101 StrictModeFlag strict_mode); | 99 StrictModeFlag strict_mode); |
102 | 100 |
103 // Computes the right stub matching. Inserts the result in the | 101 Handle<Code> ComputeLoadNonexistent(Handle<Name> name, Handle<Object> object); |
104 // cache before returning. This might compile a stub if needed. | |
105 Handle<Code> ComputeLoadNonexistent(Handle<Name> name, | |
106 Handle<JSObject> object); | |
107 | |
108 // --- | |
109 | 102 |
110 Handle<Code> ComputeKeyedLoadElement(Handle<Map> receiver_map); | 103 Handle<Code> ComputeKeyedLoadElement(Handle<Map> receiver_map); |
111 | 104 |
112 Handle<Code> ComputeKeyedStoreElement(Handle<Map> receiver_map, | 105 Handle<Code> ComputeKeyedStoreElement(Handle<Map> receiver_map, |
113 StrictModeFlag strict_mode, | 106 StrictModeFlag strict_mode, |
114 KeyedAccessStoreMode store_mode); | 107 KeyedAccessStoreMode store_mode); |
115 | 108 |
116 Handle<Code> ComputeCallField(int argc, | 109 Handle<Code> ComputeCallField(int argc, |
117 Code::Kind, | 110 Code::Kind, |
118 Code::ExtraICState extra_state, | 111 Code::ExtraICState extra_state, |
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
494 Register object_reg, | 487 Register object_reg, |
495 Handle<JSObject> holder, | 488 Handle<JSObject> holder, |
496 Register holder_reg, | 489 Register holder_reg, |
497 Register scratch1, | 490 Register scratch1, |
498 Register scratch2, | 491 Register scratch2, |
499 Handle<Name> name, | 492 Handle<Name> name, |
500 int save_at_depth, | 493 int save_at_depth, |
501 Label* miss, | 494 Label* miss, |
502 PrototypeCheckType check = CHECK_ALL_MAPS); | 495 PrototypeCheckType check = CHECK_ALL_MAPS); |
503 | 496 |
| 497 void GenerateBooleanCheck(Register object, Label* miss); |
504 | 498 |
505 protected: | 499 protected: |
506 Handle<Code> GetCodeWithFlags(Code::Flags flags, const char* name); | 500 Handle<Code> GetCodeWithFlags(Code::Flags flags, const char* name); |
507 Handle<Code> GetCodeWithFlags(Code::Flags flags, Handle<Name> name); | 501 Handle<Code> GetCodeWithFlags(Code::Flags flags, Handle<Name> name); |
508 | 502 |
509 MacroAssembler* masm() { return &masm_; } | 503 MacroAssembler* masm() { return &masm_; } |
510 void set_failure(Failure* failure) { failure_ = failure; } | 504 void set_failure(Failure* failure) { failure_ = failure; } |
511 | 505 |
512 static void LookupPostInterceptor(Handle<JSObject> holder, | 506 static void LookupPostInterceptor(Handle<JSObject> holder, |
513 Handle<Name> name, | 507 Handle<Name> name, |
(...skipping 10 matching lines...) Expand all Loading... |
524 MacroAssembler masm_; | 518 MacroAssembler masm_; |
525 Failure* failure_; | 519 Failure* failure_; |
526 }; | 520 }; |
527 | 521 |
528 | 522 |
529 enum FrontendCheckType { PERFORM_INITIAL_CHECKS, SKIP_INITIAL_CHECKS }; | 523 enum FrontendCheckType { PERFORM_INITIAL_CHECKS, SKIP_INITIAL_CHECKS }; |
530 | 524 |
531 | 525 |
532 class BaseLoadStoreStubCompiler: public StubCompiler { | 526 class BaseLoadStoreStubCompiler: public StubCompiler { |
533 public: | 527 public: |
534 BaseLoadStoreStubCompiler(Isolate* isolate, Code::Kind kind) | 528 BaseLoadStoreStubCompiler(Isolate* isolate, |
535 : StubCompiler(isolate), kind_(kind) { | 529 Code::Kind kind, |
| 530 InlineCacheHolderFlag cache_holder = OWN_MAP) |
| 531 : StubCompiler(isolate), kind_(kind), cache_holder_(cache_holder) { |
536 InitializeRegisters(); | 532 InitializeRegisters(); |
537 } | 533 } |
538 virtual ~BaseLoadStoreStubCompiler() { } | 534 virtual ~BaseLoadStoreStubCompiler() { } |
539 | 535 |
540 Handle<Code> CompileMonomorphicIC(Handle<Map> receiver_map, | 536 Handle<Code> CompileMonomorphicIC(Handle<Map> receiver_map, |
541 Handle<Code> handler, | 537 Handle<Code> handler, |
542 Handle<Name> name); | 538 Handle<Name> name); |
543 | 539 |
544 Handle<Code> CompilePolymorphicIC(MapHandleList* receiver_maps, | 540 Handle<Code> CompilePolymorphicIC(MapHandleList* receiver_maps, |
545 CodeHandleList* handlers, | 541 CodeHandleList* handlers, |
(...skipping 10 matching lines...) Expand all Loading... |
556 case Code::LOAD_IC: return Builtins::kLoadIC_Miss; | 552 case Code::LOAD_IC: return Builtins::kLoadIC_Miss; |
557 case Code::STORE_IC: return Builtins::kStoreIC_Miss; | 553 case Code::STORE_IC: return Builtins::kStoreIC_Miss; |
558 case Code::KEYED_LOAD_IC: return Builtins::kKeyedLoadIC_Miss; | 554 case Code::KEYED_LOAD_IC: return Builtins::kKeyedLoadIC_Miss; |
559 case Code::KEYED_STORE_IC: return Builtins::kKeyedStoreIC_Miss; | 555 case Code::KEYED_STORE_IC: return Builtins::kKeyedStoreIC_Miss; |
560 default: UNREACHABLE(); | 556 default: UNREACHABLE(); |
561 } | 557 } |
562 return Builtins::kLoadIC_Miss; | 558 return Builtins::kLoadIC_Miss; |
563 } | 559 } |
564 | 560 |
565 protected: | 561 protected: |
566 virtual Register HandlerFrontendHeader(Handle<JSObject> object, | 562 virtual Register HandlerFrontendHeader(Handle<Object> object, |
567 Register object_reg, | 563 Register object_reg, |
568 Handle<JSObject> holder, | 564 Handle<JSObject> holder, |
569 Handle<Name> name, | 565 Handle<Name> name, |
570 Label* miss) = 0; | 566 Label* miss) = 0; |
571 | 567 |
572 virtual void HandlerFrontendFooter(Handle<Name> name, | 568 virtual void HandlerFrontendFooter(Handle<Name> name, Label* miss) = 0; |
573 Label* success, | |
574 Label* miss) = 0; | |
575 | 569 |
576 Register HandlerFrontend(Handle<JSObject> object, | 570 Register HandlerFrontend(Handle<Object> object, |
577 Register object_reg, | 571 Register object_reg, |
578 Handle<JSObject> holder, | 572 Handle<JSObject> holder, |
579 Handle<Name> name, | 573 Handle<Name> name); |
580 Label* success); | |
581 | 574 |
582 Handle<Code> GetCode(Code::Kind kind, | 575 Handle<Code> GetCode(Code::Kind kind, |
583 Code::StubType type, | 576 Code::StubType type, |
584 Handle<Name> name); | 577 Handle<Name> name); |
585 | 578 |
586 Handle<Code> GetICCode(Code::Kind kind, | 579 Handle<Code> GetICCode(Code::Kind kind, |
587 Code::StubType type, | 580 Code::StubType type, |
588 Handle<Name> name, | 581 Handle<Name> name, |
589 InlineCacheState state = MONOMORPHIC); | 582 InlineCacheState state = MONOMORPHIC); |
590 Code::Kind kind() { return kind_; } | 583 Code::Kind kind() { return kind_; } |
(...skipping 19 matching lines...) Expand all Loading... |
610 virtual Code::ExtraICState extra_state() { return Code::kNoExtraICState; } | 603 virtual Code::ExtraICState extra_state() { return Code::kNoExtraICState; } |
611 virtual Register receiver() = 0; | 604 virtual Register receiver() = 0; |
612 virtual Register name() = 0; | 605 virtual Register name() = 0; |
613 virtual Register scratch1() = 0; | 606 virtual Register scratch1() = 0; |
614 virtual Register scratch2() = 0; | 607 virtual Register scratch2() = 0; |
615 virtual Register scratch3() = 0; | 608 virtual Register scratch3() = 0; |
616 | 609 |
617 void InitializeRegisters(); | 610 void InitializeRegisters(); |
618 | 611 |
619 Code::Kind kind_; | 612 Code::Kind kind_; |
| 613 InlineCacheHolderFlag cache_holder_; |
620 Register* registers_; | 614 Register* registers_; |
621 }; | 615 }; |
622 | 616 |
623 | 617 |
624 class LoadStubCompiler: public BaseLoadStoreStubCompiler { | 618 class LoadStubCompiler: public BaseLoadStoreStubCompiler { |
625 public: | 619 public: |
626 LoadStubCompiler(Isolate* isolate, Code::Kind kind = Code::LOAD_IC) | 620 LoadStubCompiler(Isolate* isolate, |
627 : BaseLoadStoreStubCompiler(isolate, kind) { } | 621 InlineCacheHolderFlag cache_holder = OWN_MAP, |
| 622 Code::Kind kind = Code::LOAD_IC) |
| 623 : BaseLoadStoreStubCompiler(isolate, kind, cache_holder) { } |
628 virtual ~LoadStubCompiler() { } | 624 virtual ~LoadStubCompiler() { } |
629 | 625 |
630 Handle<Code> CompileLoadField(Handle<JSObject> object, | 626 Handle<Code> CompileLoadField(Handle<Object> object, |
631 Handle<JSObject> holder, | 627 Handle<JSObject> holder, |
632 Handle<Name> name, | 628 Handle<Name> name, |
633 PropertyIndex index, | 629 PropertyIndex index, |
634 Representation representation); | 630 Representation representation); |
635 | 631 |
636 Handle<Code> CompileLoadCallback(Handle<JSObject> object, | 632 Handle<Code> CompileLoadCallback(Handle<Object> object, |
637 Handle<JSObject> holder, | 633 Handle<JSObject> holder, |
638 Handle<Name> name, | 634 Handle<Name> name, |
639 Handle<ExecutableAccessorInfo> callback); | 635 Handle<ExecutableAccessorInfo> callback); |
640 | 636 |
641 Handle<Code> CompileLoadCallback(Handle<JSObject> object, | 637 Handle<Code> CompileLoadCallback(Handle<Object> object, |
642 Handle<JSObject> holder, | 638 Handle<JSObject> holder, |
643 Handle<Name> name, | 639 Handle<Name> name, |
644 const CallOptimization& call_optimization); | 640 const CallOptimization& call_optimization); |
645 | 641 |
646 Handle<Code> CompileLoadConstant(Handle<JSObject> object, | 642 Handle<Code> CompileLoadConstant(Handle<Object> object, |
647 Handle<JSObject> holder, | 643 Handle<JSObject> holder, |
648 Handle<Name> name, | 644 Handle<Name> name, |
649 Handle<Object> value); | 645 Handle<Object> value); |
650 | 646 |
651 Handle<Code> CompileLoadInterceptor(Handle<JSObject> object, | 647 Handle<Code> CompileLoadInterceptor(Handle<Object> object, |
652 Handle<JSObject> holder, | 648 Handle<JSObject> holder, |
653 Handle<Name> name); | 649 Handle<Name> name); |
654 | 650 |
655 Handle<Code> CompileLoadViaGetter(Handle<JSObject> object, | 651 Handle<Code> CompileLoadViaGetter(Handle<Object> object, |
656 Handle<JSObject> holder, | 652 Handle<JSObject> holder, |
657 Handle<Name> name, | 653 Handle<Name> name, |
658 Handle<JSFunction> getter); | 654 Handle<JSFunction> getter); |
659 | 655 |
660 static void GenerateLoadViaGetter(MacroAssembler* masm, | 656 static void GenerateLoadViaGetter(MacroAssembler* masm, |
661 Register receiver, | 657 Register receiver, |
662 Handle<JSFunction> getter); | 658 Handle<JSFunction> getter); |
663 | 659 |
664 Handle<Code> CompileLoadNonexistent(Handle<JSObject> object, | 660 Handle<Code> CompileLoadNonexistent(Handle<Object> object, |
665 Handle<JSObject> last, | 661 Handle<JSObject> last, |
666 Handle<Name> name, | 662 Handle<Name> name, |
667 Handle<JSGlobalObject> global); | 663 Handle<JSGlobalObject> global); |
668 | 664 |
669 Handle<Code> CompileLoadGlobal(Handle<JSObject> object, | 665 Handle<Code> CompileLoadGlobal(Handle<Object> object, |
670 Handle<GlobalObject> holder, | 666 Handle<GlobalObject> holder, |
671 Handle<PropertyCell> cell, | 667 Handle<PropertyCell> cell, |
672 Handle<Name> name, | 668 Handle<Name> name, |
673 bool is_dont_delete); | 669 bool is_dont_delete); |
674 | 670 |
675 static Register* registers(); | 671 static Register* registers(); |
676 | 672 |
677 protected: | 673 protected: |
678 virtual Register HandlerFrontendHeader(Handle<JSObject> object, | 674 virtual Register HandlerFrontendHeader(Handle<Object> object, |
679 Register object_reg, | 675 Register object_reg, |
680 Handle<JSObject> holder, | 676 Handle<JSObject> holder, |
681 Handle<Name> name, | 677 Handle<Name> name, |
682 Label* miss); | 678 Label* miss); |
683 | 679 |
684 virtual void HandlerFrontendFooter(Handle<Name> name, | 680 virtual void HandlerFrontendFooter(Handle<Name> name, Label* miss); |
685 Label* success, | |
686 Label* miss); | |
687 | 681 |
688 Register CallbackHandlerFrontend(Handle<JSObject> object, | 682 Register CallbackHandlerFrontend(Handle<Object> object, |
689 Register object_reg, | 683 Register object_reg, |
690 Handle<JSObject> holder, | 684 Handle<JSObject> holder, |
691 Handle<Name> name, | 685 Handle<Name> name, |
692 Label* success, | |
693 Handle<Object> callback); | 686 Handle<Object> callback); |
694 void NonexistentHandlerFrontend(Handle<JSObject> object, | 687 void NonexistentHandlerFrontend(Handle<Object> object, |
695 Handle<JSObject> last, | 688 Handle<JSObject> last, |
696 Handle<Name> name, | 689 Handle<Name> name, |
697 Label* success, | |
698 Handle<JSGlobalObject> global); | 690 Handle<JSGlobalObject> global); |
699 | 691 |
700 void GenerateLoadField(Register reg, | 692 void GenerateLoadField(Register reg, |
701 Handle<JSObject> holder, | 693 Handle<JSObject> holder, |
702 PropertyIndex field, | 694 PropertyIndex field, |
703 Representation representation); | 695 Representation representation); |
704 void GenerateLoadConstant(Handle<Object> value); | 696 void GenerateLoadConstant(Handle<Object> value); |
705 void GenerateLoadCallback(Register reg, | 697 void GenerateLoadCallback(Register reg, |
706 Handle<ExecutableAccessorInfo> callback); | 698 Handle<ExecutableAccessorInfo> callback); |
707 void GenerateLoadCallback(const CallOptimization& call_optimization); | 699 void GenerateLoadCallback(const CallOptimization& call_optimization); |
708 void GenerateLoadInterceptor(Register holder_reg, | 700 void GenerateLoadInterceptor(Register holder_reg, |
709 Handle<JSObject> object, | 701 Handle<Object> object, |
710 Handle<JSObject> holder, | 702 Handle<JSObject> holder, |
711 LookupResult* lookup, | 703 LookupResult* lookup, |
712 Handle<Name> name); | 704 Handle<Name> name); |
713 void GenerateLoadPostInterceptor(Register reg, | 705 void GenerateLoadPostInterceptor(Register reg, |
714 Handle<JSObject> interceptor_holder, | 706 Handle<JSObject> interceptor_holder, |
715 Handle<Name> name, | 707 Handle<Name> name, |
716 LookupResult* lookup); | 708 LookupResult* lookup); |
717 | 709 |
718 virtual Register receiver() { return registers_[0]; } | 710 virtual Register receiver() { return registers_[0]; } |
719 virtual Register name() { return registers_[1]; } | 711 virtual Register name() { return registers_[1]; } |
720 virtual Register scratch1() { return registers_[2]; } | 712 virtual Register scratch1() { return registers_[2]; } |
721 virtual Register scratch2() { return registers_[3]; } | 713 virtual Register scratch2() { return registers_[3]; } |
722 virtual Register scratch3() { return registers_[4]; } | 714 virtual Register scratch3() { return registers_[4]; } |
723 Register scratch4() { return registers_[5]; } | 715 Register scratch4() { return registers_[5]; } |
724 }; | 716 }; |
725 | 717 |
726 | 718 |
727 class KeyedLoadStubCompiler: public LoadStubCompiler { | 719 class KeyedLoadStubCompiler: public LoadStubCompiler { |
728 public: | 720 public: |
729 explicit KeyedLoadStubCompiler(Isolate* isolate) | 721 KeyedLoadStubCompiler(Isolate* isolate, |
730 : LoadStubCompiler(isolate, Code::KEYED_LOAD_IC) { } | 722 InlineCacheHolderFlag cache_holder = OWN_MAP) |
| 723 : LoadStubCompiler(isolate, cache_holder, Code::KEYED_LOAD_IC) { } |
731 | 724 |
732 Handle<Code> CompileLoadElement(Handle<Map> receiver_map); | 725 Handle<Code> CompileLoadElement(Handle<Map> receiver_map); |
733 | 726 |
734 void CompileElementHandlers(MapHandleList* receiver_maps, | 727 void CompileElementHandlers(MapHandleList* receiver_maps, |
735 CodeHandleList* handlers); | 728 CodeHandleList* handlers); |
736 | 729 |
737 static void GenerateLoadDictionaryElement(MacroAssembler* masm); | 730 static void GenerateLoadDictionaryElement(MacroAssembler* masm); |
738 | 731 |
739 protected: | 732 protected: |
740 static Register* registers(); | 733 static Register* registers(); |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
820 static Builtins::Name SlowBuiltin(Code::Kind kind) { | 813 static Builtins::Name SlowBuiltin(Code::Kind kind) { |
821 switch (kind) { | 814 switch (kind) { |
822 case Code::STORE_IC: return Builtins::kStoreIC_Slow; | 815 case Code::STORE_IC: return Builtins::kStoreIC_Slow; |
823 case Code::KEYED_STORE_IC: return Builtins::kKeyedStoreIC_Slow; | 816 case Code::KEYED_STORE_IC: return Builtins::kKeyedStoreIC_Slow; |
824 default: UNREACHABLE(); | 817 default: UNREACHABLE(); |
825 } | 818 } |
826 return Builtins::kStoreIC_Slow; | 819 return Builtins::kStoreIC_Slow; |
827 } | 820 } |
828 | 821 |
829 protected: | 822 protected: |
830 virtual Register HandlerFrontendHeader(Handle<JSObject> object, | 823 virtual Register HandlerFrontendHeader(Handle<Object> object, |
831 Register object_reg, | 824 Register object_reg, |
832 Handle<JSObject> holder, | 825 Handle<JSObject> holder, |
833 Handle<Name> name, | 826 Handle<Name> name, |
834 Label* miss); | 827 Label* miss); |
835 | 828 |
836 virtual void HandlerFrontendFooter(Handle<Name> name, | 829 virtual void HandlerFrontendFooter(Handle<Name> name, Label* miss); |
837 Label* success, | |
838 Label* miss); | |
839 void GenerateRestoreName(MacroAssembler* masm, | 830 void GenerateRestoreName(MacroAssembler* masm, |
840 Label* label, | 831 Label* label, |
841 Handle<Name> name); | 832 Handle<Name> name); |
842 | 833 |
843 virtual Register receiver() { return registers_[0]; } | 834 virtual Register receiver() { return registers_[0]; } |
844 virtual Register name() { return registers_[1]; } | 835 virtual Register name() { return registers_[1]; } |
845 Register value() { return registers_[2]; } | 836 Register value() { return registers_[2]; } |
846 virtual Register scratch1() { return registers_[3]; } | 837 virtual Register scratch1() { return registers_[3]; } |
847 virtual Register scratch2() { return registers_[4]; } | 838 virtual Register scratch2() { return registers_[4]; } |
848 virtual Register scratch3() { return registers_[5]; } | 839 virtual Register scratch3() { return registers_[5]; } |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
921 InlineCacheHolderFlag cache_holder = OWN_MAP); | 912 InlineCacheHolderFlag cache_holder = OWN_MAP); |
922 | 913 |
923 Handle<Code> CompileCallField(Handle<JSObject> object, | 914 Handle<Code> CompileCallField(Handle<JSObject> object, |
924 Handle<JSObject> holder, | 915 Handle<JSObject> holder, |
925 PropertyIndex index, | 916 PropertyIndex index, |
926 Handle<Name> name); | 917 Handle<Name> name); |
927 | 918 |
928 void CompileHandlerFrontend(Handle<Object> object, | 919 void CompileHandlerFrontend(Handle<Object> object, |
929 Handle<JSObject> holder, | 920 Handle<JSObject> holder, |
930 Handle<Name> name, | 921 Handle<Name> name, |
931 CheckType check, | 922 CheckType check); |
932 Label* success); | |
933 | 923 |
934 void CompileHandlerBackend(Handle<JSFunction> function); | 924 void CompileHandlerBackend(Handle<JSFunction> function); |
935 | 925 |
936 Handle<Code> CompileCallConstant(Handle<Object> object, | 926 Handle<Code> CompileCallConstant(Handle<Object> object, |
937 Handle<JSObject> holder, | 927 Handle<JSObject> holder, |
938 Handle<Name> name, | 928 Handle<Name> name, |
939 CheckType check, | 929 CheckType check, |
940 Handle<JSFunction> function); | 930 Handle<JSFunction> function); |
941 | 931 |
942 Handle<Code> CompileCallInterceptor(Handle<JSObject> object, | 932 Handle<Code> CompileCallInterceptor(Handle<JSObject> object, |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1059 Handle<JSFunction> constant_function_; | 1049 Handle<JSFunction> constant_function_; |
1060 bool is_simple_api_call_; | 1050 bool is_simple_api_call_; |
1061 Handle<FunctionTemplateInfo> expected_receiver_type_; | 1051 Handle<FunctionTemplateInfo> expected_receiver_type_; |
1062 Handle<CallHandlerInfo> api_call_info_; | 1052 Handle<CallHandlerInfo> api_call_info_; |
1063 }; | 1053 }; |
1064 | 1054 |
1065 | 1055 |
1066 } } // namespace v8::internal | 1056 } } // namespace v8::internal |
1067 | 1057 |
1068 #endif // V8_STUB_CACHE_H_ | 1058 #endif // V8_STUB_CACHE_H_ |
OLD | NEW |