Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: src/objects.h

Issue 1496503002: [runtime] [proxy] removing JSFunctionProxy and related code. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fixing merge artifacts Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/mips64/builtins-mips64.cc ('k') | src/objects.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 // - JSRegExp 62 // - JSRegExp
63 // - JSFunction 63 // - JSFunction
64 // - JSGeneratorObject 64 // - JSGeneratorObject
65 // - JSModule 65 // - JSModule
66 // - JSGlobalObject 66 // - JSGlobalObject
67 // - JSGlobalProxy 67 // - JSGlobalProxy
68 // - JSValue 68 // - JSValue
69 // - JSDate 69 // - JSDate
70 // - JSMessageObject 70 // - JSMessageObject
71 // - JSProxy 71 // - JSProxy
72 // - JSFunctionProxy
73 // - FixedArrayBase 72 // - FixedArrayBase
74 // - ByteArray 73 // - ByteArray
75 // - BytecodeArray 74 // - BytecodeArray
76 // - FixedArray 75 // - FixedArray
77 // - DescriptorArray 76 // - DescriptorArray
78 // - LiteralsArray 77 // - LiteralsArray
79 // - BindingsArray 78 // - BindingsArray
80 // - HashTable 79 // - HashTable
81 // - Dictionary 80 // - Dictionary
82 // - StringTable 81 // - StringTable
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 V(JS_MAP_TYPE) \ 431 V(JS_MAP_TYPE) \
433 V(JS_SET_ITERATOR_TYPE) \ 432 V(JS_SET_ITERATOR_TYPE) \
434 V(JS_MAP_ITERATOR_TYPE) \ 433 V(JS_MAP_ITERATOR_TYPE) \
435 V(JS_ITERATOR_RESULT_TYPE) \ 434 V(JS_ITERATOR_RESULT_TYPE) \
436 V(JS_WEAK_MAP_TYPE) \ 435 V(JS_WEAK_MAP_TYPE) \
437 V(JS_WEAK_SET_TYPE) \ 436 V(JS_WEAK_SET_TYPE) \
438 V(JS_PROMISE_TYPE) \ 437 V(JS_PROMISE_TYPE) \
439 V(JS_REGEXP_TYPE) \ 438 V(JS_REGEXP_TYPE) \
440 \ 439 \
441 V(JS_FUNCTION_TYPE) \ 440 V(JS_FUNCTION_TYPE) \
442 V(JS_FUNCTION_PROXY_TYPE) \
443 V(DEBUG_INFO_TYPE) \ 441 V(DEBUG_INFO_TYPE) \
444 V(BREAK_POINT_INFO_TYPE) 442 V(BREAK_POINT_INFO_TYPE)
445 443
446 444
447 // Since string types are not consecutive, this macro is used to 445 // Since string types are not consecutive, this macro is used to
448 // iterate over them. 446 // iterate over them.
449 #define STRING_TYPE_LIST(V) \ 447 #define STRING_TYPE_LIST(V) \
450 V(STRING_TYPE, kVariableSizeSentinel, string, String) \ 448 V(STRING_TYPE, kVariableSizeSentinel, string, String) \
451 V(ONE_BYTE_STRING_TYPE, kVariableSizeSentinel, one_byte_string, \ 449 V(ONE_BYTE_STRING_TYPE, kVariableSizeSentinel, one_byte_string, \
452 OneByteString) \ 450 OneByteString) \
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
704 WEAK_CELL_TYPE, 702 WEAK_CELL_TYPE,
705 TRANSITION_ARRAY_TYPE, 703 TRANSITION_ARRAY_TYPE,
706 PROPERTY_CELL_TYPE, 704 PROPERTY_CELL_TYPE,
707 PROTOTYPE_INFO_TYPE, 705 PROTOTYPE_INFO_TYPE,
708 SLOPPY_BLOCK_WITH_EVAL_CONTEXT_EXTENSION_TYPE, 706 SLOPPY_BLOCK_WITH_EVAL_CONTEXT_EXTENSION_TYPE,
709 707
710 // All the following types are subtypes of JSReceiver, which corresponds to 708 // All the following types are subtypes of JSReceiver, which corresponds to
711 // objects in the JS sense. The first and the last type in this range are 709 // objects in the JS sense. The first and the last type in this range are
712 // the two forms of function. This organization enables using the same 710 // the two forms of function. This organization enables using the same
713 // compares for checking the JS_RECEIVER and the NONCALLABLE_JS_OBJECT range. 711 // compares for checking the JS_RECEIVER and the NONCALLABLE_JS_OBJECT range.
714 JS_FUNCTION_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE, FIRST_JS_PROXY_TYPE 712 JS_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE
715 JS_PROXY_TYPE, // LAST_JS_PROXY_TYPE 713 JS_VALUE_TYPE, // FIRST_JS_OBJECT_TYPE
716 JS_VALUE_TYPE, // FIRST_JS_OBJECT_TYPE
717 JS_MESSAGE_OBJECT_TYPE, 714 JS_MESSAGE_OBJECT_TYPE,
718 JS_DATE_TYPE, 715 JS_DATE_TYPE,
719 JS_OBJECT_TYPE, 716 JS_OBJECT_TYPE,
720 JS_CONTEXT_EXTENSION_OBJECT_TYPE, 717 JS_CONTEXT_EXTENSION_OBJECT_TYPE,
721 JS_GENERATOR_OBJECT_TYPE, 718 JS_GENERATOR_OBJECT_TYPE,
722 JS_MODULE_TYPE, 719 JS_MODULE_TYPE,
723 JS_GLOBAL_OBJECT_TYPE, 720 JS_GLOBAL_OBJECT_TYPE,
724 JS_GLOBAL_PROXY_TYPE, 721 JS_GLOBAL_PROXY_TYPE,
725 JS_ARRAY_TYPE, 722 JS_ARRAY_TYPE,
726 JS_ARRAY_BUFFER_TYPE, 723 JS_ARRAY_BUFFER_TYPE,
(...skipping 23 matching lines...) Expand all
750 // Boundaries for testing for a fixed typed array. 747 // Boundaries for testing for a fixed typed array.
751 FIRST_FIXED_TYPED_ARRAY_TYPE = FIXED_INT8_ARRAY_TYPE, 748 FIRST_FIXED_TYPED_ARRAY_TYPE = FIXED_INT8_ARRAY_TYPE,
752 LAST_FIXED_TYPED_ARRAY_TYPE = FIXED_UINT8_CLAMPED_ARRAY_TYPE, 749 LAST_FIXED_TYPED_ARRAY_TYPE = FIXED_UINT8_CLAMPED_ARRAY_TYPE,
753 // Boundary for promotion to old space. 750 // Boundary for promotion to old space.
754 LAST_DATA_TYPE = FILLER_TYPE, 751 LAST_DATA_TYPE = FILLER_TYPE,
755 // Boundary for objects represented as JSReceiver (i.e. JSObject or JSProxy). 752 // Boundary for objects represented as JSReceiver (i.e. JSObject or JSProxy).
756 // Note that there is no range for JSObject or JSProxy, since their subtypes 753 // Note that there is no range for JSObject or JSProxy, since their subtypes
757 // are not continuous in this enum! The enum ranges instead reflect the 754 // are not continuous in this enum! The enum ranges instead reflect the
758 // external class names, where proxies are treated as either ordinary objects, 755 // external class names, where proxies are treated as either ordinary objects,
759 // or functions. 756 // or functions.
760 FIRST_JS_RECEIVER_TYPE = JS_FUNCTION_PROXY_TYPE, 757 FIRST_JS_RECEIVER_TYPE = JS_PROXY_TYPE,
761 LAST_JS_RECEIVER_TYPE = LAST_TYPE, 758 LAST_JS_RECEIVER_TYPE = LAST_TYPE,
762 // Boundaries for testing the types represented as JSObject 759 // Boundaries for testing the types represented as JSObject
763 FIRST_JS_OBJECT_TYPE = JS_VALUE_TYPE, 760 FIRST_JS_OBJECT_TYPE = JS_VALUE_TYPE,
764 LAST_JS_OBJECT_TYPE = LAST_TYPE, 761 LAST_JS_OBJECT_TYPE = LAST_TYPE,
765 // Boundaries for testing the types represented as JSProxy
766 FIRST_JS_PROXY_TYPE = JS_FUNCTION_PROXY_TYPE,
767 LAST_JS_PROXY_TYPE = JS_PROXY_TYPE,
768 // 762 //
769 FIRST_NONCALLABLE_SPEC_OBJECT_TYPE = JS_PROXY_TYPE, 763 FIRST_NONCALLABLE_SPEC_OBJECT_TYPE = JS_VALUE_TYPE,
770 LAST_NONCALLABLE_SPEC_OBJECT_TYPE = JS_REGEXP_TYPE, 764 LAST_NONCALLABLE_SPEC_OBJECT_TYPE = JS_REGEXP_TYPE,
771 // Note that the types for which typeof is "function" are not continuous. 765 // Note that the types for which typeof is "function" are not continuous.
772 // Define this so that we can put assertions on discrete checks. 766 // Define this so that we can put assertions on discrete checks.
773 NUM_OF_CALLABLE_SPEC_OBJECT_TYPES = 2 767 NUM_OF_CALLABLE_SPEC_OBJECT_TYPES = 2
774 }; 768 };
775 769
776 STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType); 770 STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType);
777 STATIC_ASSERT(FIRST_NONSTRING_TYPE == Internals::kFirstNonstringType); 771 STATIC_ASSERT(FIRST_NONSTRING_TYPE == Internals::kFirstNonstringType);
778 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType); 772 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType);
779 STATIC_ASSERT(FOREIGN_TYPE == Internals::kForeignType); 773 STATIC_ASSERT(FOREIGN_TYPE == Internals::kForeignType);
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
968 V(JSMessageObject) \ 962 V(JSMessageObject) \
969 V(StringWrapper) \ 963 V(StringWrapper) \
970 V(Foreign) \ 964 V(Foreign) \
971 V(Boolean) \ 965 V(Boolean) \
972 V(JSArray) \ 966 V(JSArray) \
973 V(JSArrayBuffer) \ 967 V(JSArrayBuffer) \
974 V(JSArrayBufferView) \ 968 V(JSArrayBufferView) \
975 V(JSTypedArray) \ 969 V(JSTypedArray) \
976 V(JSDataView) \ 970 V(JSDataView) \
977 V(JSProxy) \ 971 V(JSProxy) \
978 V(JSFunctionProxy) \
979 V(JSSet) \ 972 V(JSSet) \
980 V(JSMap) \ 973 V(JSMap) \
981 V(JSSetIterator) \ 974 V(JSSetIterator) \
982 V(JSMapIterator) \ 975 V(JSMapIterator) \
983 V(JSIteratorResult) \ 976 V(JSIteratorResult) \
984 V(JSWeakCollection) \ 977 V(JSWeakCollection) \
985 V(JSWeakMap) \ 978 V(JSWeakMap) \
986 V(JSWeakSet) \ 979 V(JSWeakSet) \
987 V(JSRegExp) \ 980 V(JSRegExp) \
988 V(HashTable) \ 981 V(HashTable) \
(...skipping 8601 matching lines...) Expand 10 before | Expand all | Expand 10 after
9590 private: 9583 private:
9591 friend class JSReceiver; 9584 friend class JSReceiver;
9592 9585
9593 MUST_USE_RESULT static MaybeHandle<Object> GetTrap(Handle<JSProxy> proxy, 9586 MUST_USE_RESULT static MaybeHandle<Object> GetTrap(Handle<JSProxy> proxy,
9594 Handle<String> trap); 9587 Handle<String> trap);
9595 9588
9596 DISALLOW_IMPLICIT_CONSTRUCTORS(JSProxy); 9589 DISALLOW_IMPLICIT_CONSTRUCTORS(JSProxy);
9597 }; 9590 };
9598 9591
9599 9592
9600 class JSFunctionProxy: public JSProxy {
9601 public:
9602 // [call_trap]: The call trap.
9603 DECL_ACCESSORS(call_trap, JSReceiver)
9604
9605 // [construct_trap]: The construct trap.
9606 DECL_ACCESSORS(construct_trap, Object)
9607
9608 DECLARE_CAST(JSFunctionProxy)
9609
9610 // Dispatched behavior.
9611 DECLARE_PRINTER(JSFunctionProxy)
9612 DECLARE_VERIFIER(JSFunctionProxy)
9613
9614 // Layout description.
9615 static const int kCallTrapOffset = JSProxy::kSize;
9616 static const int kConstructTrapOffset = kCallTrapOffset + kPointerSize;
9617 static const int kSize = kConstructTrapOffset + kPointerSize;
9618
9619 typedef FixedBodyDescriptor<kTargetOffset, kSize, kSize> BodyDescriptor;
9620
9621 private:
9622 DISALLOW_IMPLICIT_CONSTRUCTORS(JSFunctionProxy);
9623 };
9624
9625
9626 class JSCollection : public JSObject { 9593 class JSCollection : public JSObject {
9627 public: 9594 public:
9628 // [table]: the backing hash table 9595 // [table]: the backing hash table
9629 DECL_ACCESSORS(table, Object) 9596 DECL_ACCESSORS(table, Object)
9630 9597
9631 static const int kTableOffset = JSObject::kHeaderSize; 9598 static const int kTableOffset = JSObject::kHeaderSize;
9632 static const int kSize = kTableOffset + kPointerSize; 9599 static const int kSize = kTableOffset + kPointerSize;
9633 9600
9634 private: 9601 private:
9635 DISALLOW_IMPLICIT_CONSTRUCTORS(JSCollection); 9602 DISALLOW_IMPLICIT_CONSTRUCTORS(JSCollection);
(...skipping 1082 matching lines...) Expand 10 before | Expand all | Expand 10 after
10718 } 10685 }
10719 return value; 10686 return value;
10720 } 10687 }
10721 }; 10688 };
10722 10689
10723 10690
10724 } // NOLINT, false-positive due to second-order macros. 10691 } // NOLINT, false-positive due to second-order macros.
10725 } // NOLINT, false-positive due to second-order macros. 10692 } // NOLINT, false-positive due to second-order macros.
10726 10693
10727 #endif // V8_OBJECTS_H_ 10694 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/mips64/builtins-mips64.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698