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

Side by Side Diff: src/objects.h

Issue 1424703005: Remove JSBuiltinsObject. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 1 month 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
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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 // - JSSetIterator 56 // - JSSetIterator
57 // - JSMapIterator 57 // - JSMapIterator
58 // - JSWeakCollection 58 // - JSWeakCollection
59 // - JSWeakMap 59 // - JSWeakMap
60 // - JSWeakSet 60 // - JSWeakSet
61 // - JSRegExp 61 // - JSRegExp
62 // - JSFunction 62 // - JSFunction
63 // - JSGeneratorObject 63 // - JSGeneratorObject
64 // - JSModule 64 // - JSModule
65 // - GlobalObject 65 // - GlobalObject
66 // - JSGlobalObject 66 // - JSGlobalObject
Toon Verwaest 2015/11/02 10:08:48 I guess we don't need the distinction between Glob
Yang 2015/11/02 10:47:38 Yup. I'd like to remove the distinction in a separ
67 // - JSBuiltinsObject
68 // - JSGlobalProxy 67 // - JSGlobalProxy
69 // - JSValue 68 // - JSValue
70 // - JSDate 69 // - JSDate
71 // - JSMessageObject 70 // - JSMessageObject
72 // - JSProxy 71 // - JSProxy
73 // - JSFunctionProxy 72 // - JSFunctionProxy
74 // - FixedArrayBase 73 // - FixedArrayBase
75 // - ByteArray 74 // - ByteArray
76 // - BytecodeArray 75 // - BytecodeArray
77 // - FixedArray 76 // - FixedArray
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 \ 415 \
417 V(JS_MESSAGE_OBJECT_TYPE) \ 416 V(JS_MESSAGE_OBJECT_TYPE) \
418 \ 417 \
419 V(JS_VALUE_TYPE) \ 418 V(JS_VALUE_TYPE) \
420 V(JS_DATE_TYPE) \ 419 V(JS_DATE_TYPE) \
421 V(JS_OBJECT_TYPE) \ 420 V(JS_OBJECT_TYPE) \
422 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \ 421 V(JS_CONTEXT_EXTENSION_OBJECT_TYPE) \
423 V(JS_GENERATOR_OBJECT_TYPE) \ 422 V(JS_GENERATOR_OBJECT_TYPE) \
424 V(JS_MODULE_TYPE) \ 423 V(JS_MODULE_TYPE) \
425 V(JS_GLOBAL_OBJECT_TYPE) \ 424 V(JS_GLOBAL_OBJECT_TYPE) \
426 V(JS_BUILTINS_OBJECT_TYPE) \
427 V(JS_GLOBAL_PROXY_TYPE) \ 425 V(JS_GLOBAL_PROXY_TYPE) \
428 V(JS_ARRAY_TYPE) \ 426 V(JS_ARRAY_TYPE) \
429 V(JS_ARRAY_BUFFER_TYPE) \ 427 V(JS_ARRAY_BUFFER_TYPE) \
430 V(JS_TYPED_ARRAY_TYPE) \ 428 V(JS_TYPED_ARRAY_TYPE) \
431 V(JS_DATA_VIEW_TYPE) \ 429 V(JS_DATA_VIEW_TYPE) \
432 V(JS_PROXY_TYPE) \ 430 V(JS_PROXY_TYPE) \
433 V(JS_SET_TYPE) \ 431 V(JS_SET_TYPE) \
434 V(JS_MAP_TYPE) \ 432 V(JS_MAP_TYPE) \
435 V(JS_SET_ITERATOR_TYPE) \ 433 V(JS_SET_ITERATOR_TYPE) \
436 V(JS_MAP_ITERATOR_TYPE) \ 434 V(JS_MAP_ITERATOR_TYPE) \
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 JS_FUNCTION_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE, FIRST_JS_PROXY_TYPE 714 JS_FUNCTION_PROXY_TYPE, // FIRST_JS_RECEIVER_TYPE, FIRST_JS_PROXY_TYPE
717 JS_PROXY_TYPE, // LAST_JS_PROXY_TYPE 715 JS_PROXY_TYPE, // LAST_JS_PROXY_TYPE
718 JS_VALUE_TYPE, // FIRST_JS_OBJECT_TYPE 716 JS_VALUE_TYPE, // FIRST_JS_OBJECT_TYPE
719 JS_MESSAGE_OBJECT_TYPE, 717 JS_MESSAGE_OBJECT_TYPE,
720 JS_DATE_TYPE, 718 JS_DATE_TYPE,
721 JS_OBJECT_TYPE, 719 JS_OBJECT_TYPE,
722 JS_CONTEXT_EXTENSION_OBJECT_TYPE, 720 JS_CONTEXT_EXTENSION_OBJECT_TYPE,
723 JS_GENERATOR_OBJECT_TYPE, 721 JS_GENERATOR_OBJECT_TYPE,
724 JS_MODULE_TYPE, 722 JS_MODULE_TYPE,
725 JS_GLOBAL_OBJECT_TYPE, 723 JS_GLOBAL_OBJECT_TYPE,
726 JS_BUILTINS_OBJECT_TYPE,
727 JS_GLOBAL_PROXY_TYPE, 724 JS_GLOBAL_PROXY_TYPE,
728 JS_ARRAY_TYPE, 725 JS_ARRAY_TYPE,
729 JS_ARRAY_BUFFER_TYPE, 726 JS_ARRAY_BUFFER_TYPE,
730 JS_TYPED_ARRAY_TYPE, 727 JS_TYPED_ARRAY_TYPE,
731 JS_DATA_VIEW_TYPE, 728 JS_DATA_VIEW_TYPE,
732 JS_SET_TYPE, 729 JS_SET_TYPE,
733 JS_MAP_TYPE, 730 JS_MAP_TYPE,
734 JS_SET_ITERATOR_TYPE, 731 JS_SET_ITERATOR_TYPE,
735 JS_MAP_ITERATOR_TYPE, 732 JS_MAP_ITERATOR_TYPE,
736 JS_ITERATOR_RESULT_TYPE, 733 JS_ITERATOR_RESULT_TYPE,
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
846 class AccessorPair; 843 class AccessorPair;
847 class AllocationSite; 844 class AllocationSite;
848 class AllocationSiteCreationContext; 845 class AllocationSiteCreationContext;
849 class AllocationSiteUsageContext; 846 class AllocationSiteUsageContext;
850 class Cell; 847 class Cell;
851 class ConsString; 848 class ConsString;
852 class ElementsAccessor; 849 class ElementsAccessor;
853 class FixedArrayBase; 850 class FixedArrayBase;
854 class FunctionLiteral; 851 class FunctionLiteral;
855 class GlobalObject; 852 class GlobalObject;
856 class JSBuiltinsObject;
857 class KeyAccumulator; 853 class KeyAccumulator;
858 class LayoutDescriptor; 854 class LayoutDescriptor;
859 class LiteralsArray; 855 class LiteralsArray;
860 class LookupIterator; 856 class LookupIterator;
861 class ObjectHashTable; 857 class ObjectHashTable;
862 class ObjectVisitor; 858 class ObjectVisitor;
863 class PropertyCell; 859 class PropertyCell;
864 class PropertyDescriptor; 860 class PropertyDescriptor;
865 class SafepointEntry; 861 class SafepointEntry;
866 class SharedFunctionInfo; 862 class SharedFunctionInfo;
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
992 V(Dictionary) \ 988 V(Dictionary) \
993 V(StringTable) \ 989 V(StringTable) \
994 V(NormalizedMapCache) \ 990 V(NormalizedMapCache) \
995 V(CompilationCacheTable) \ 991 V(CompilationCacheTable) \
996 V(CodeCacheHashTable) \ 992 V(CodeCacheHashTable) \
997 V(PolymorphicCodeCacheHashTable) \ 993 V(PolymorphicCodeCacheHashTable) \
998 V(MapCache) \ 994 V(MapCache) \
999 V(Primitive) \ 995 V(Primitive) \
1000 V(GlobalObject) \ 996 V(GlobalObject) \
1001 V(JSGlobalObject) \ 997 V(JSGlobalObject) \
1002 V(JSBuiltinsObject) \
1003 V(JSGlobalProxy) \ 998 V(JSGlobalProxy) \
1004 V(UndetectableObject) \ 999 V(UndetectableObject) \
1005 V(AccessCheckNeeded) \ 1000 V(AccessCheckNeeded) \
1006 V(Cell) \ 1001 V(Cell) \
1007 V(PropertyCell) \ 1002 V(PropertyCell) \
1008 V(WeakCell) \ 1003 V(WeakCell) \
1009 V(ObjectHashTable) \ 1004 V(ObjectHashTable) \
1010 V(WeakHashTable) \ 1005 V(WeakHashTable) \
1011 V(OrderedHashTable) 1006 V(OrderedHashTable)
1012 1007
(...skipping 6441 matching lines...) Expand 10 before | Expand all | Expand 10 after
7454 7449
7455 private: 7450 private:
7456 DISALLOW_IMPLICIT_CONSTRUCTORS(JSGlobalProxy); 7451 DISALLOW_IMPLICIT_CONSTRUCTORS(JSGlobalProxy);
7457 }; 7452 };
7458 7453
7459 7454
7460 // Common super class for JavaScript global objects and the special 7455 // Common super class for JavaScript global objects and the special
7461 // builtins global objects. 7456 // builtins global objects.
7462 class GlobalObject: public JSObject { 7457 class GlobalObject: public JSObject {
7463 public: 7458 public:
7464 // [builtins]: the object holding the runtime routines written in JS.
7465 DECL_ACCESSORS(builtins, JSBuiltinsObject)
7466
7467 // [native context]: the natives corresponding to this global object. 7459 // [native context]: the natives corresponding to this global object.
7468 DECL_ACCESSORS(native_context, Context) 7460 DECL_ACCESSORS(native_context, Context)
7469 7461
7470 // [global proxy]: the global proxy object of the context 7462 // [global proxy]: the global proxy object of the context
7471 DECL_ACCESSORS(global_proxy, JSObject) 7463 DECL_ACCESSORS(global_proxy, JSObject)
7472 7464
7473 DECLARE_CAST(GlobalObject) 7465 DECLARE_CAST(GlobalObject)
7474 7466
7475 static void InvalidatePropertyCell(Handle<GlobalObject> object, 7467 static void InvalidatePropertyCell(Handle<GlobalObject> object,
7476 Handle<Name> name); 7468 Handle<Name> name);
7477 // Ensure that the global object has a cell for the given property name. 7469 // Ensure that the global object has a cell for the given property name.
7478 static Handle<PropertyCell> EnsurePropertyCell(Handle<GlobalObject> global, 7470 static Handle<PropertyCell> EnsurePropertyCell(Handle<GlobalObject> global,
7479 Handle<Name> name); 7471 Handle<Name> name);
7480 7472
7481 // Layout description. 7473 // Layout description.
7482 static const int kBuiltinsOffset = JSObject::kHeaderSize; 7474 static const int kNativeContextOffset = JSObject::kHeaderSize;
7483 static const int kNativeContextOffset = kBuiltinsOffset + kPointerSize;
7484 static const int kGlobalProxyOffset = kNativeContextOffset + kPointerSize; 7475 static const int kGlobalProxyOffset = kNativeContextOffset + kPointerSize;
7485 static const int kHeaderSize = kGlobalProxyOffset + kPointerSize; 7476 static const int kHeaderSize = kGlobalProxyOffset + kPointerSize;
7486 7477
7487 private: 7478 private:
7488 DISALLOW_IMPLICIT_CONSTRUCTORS(GlobalObject); 7479 DISALLOW_IMPLICIT_CONSTRUCTORS(GlobalObject);
7489 }; 7480 };
7490 7481
7491 7482
7492 // JavaScript global object. 7483 // JavaScript global object.
7493 class JSGlobalObject: public GlobalObject { 7484 class JSGlobalObject: public GlobalObject {
7494 public: 7485 public:
7495 DECLARE_CAST(JSGlobalObject) 7486 DECLARE_CAST(JSGlobalObject)
7496 7487
7497 inline bool IsDetached(); 7488 inline bool IsDetached();
7498 7489
7499 // Dispatched behavior. 7490 // Dispatched behavior.
7500 DECLARE_PRINTER(JSGlobalObject) 7491 DECLARE_PRINTER(JSGlobalObject)
7501 DECLARE_VERIFIER(JSGlobalObject) 7492 DECLARE_VERIFIER(JSGlobalObject)
7502 7493
7503 // Layout description. 7494 // Layout description.
7504 static const int kSize = GlobalObject::kHeaderSize; 7495 static const int kSize = GlobalObject::kHeaderSize;
7505 7496
7506 private: 7497 private:
7507 DISALLOW_IMPLICIT_CONSTRUCTORS(JSGlobalObject); 7498 DISALLOW_IMPLICIT_CONSTRUCTORS(JSGlobalObject);
7508 }; 7499 };
7509 7500
7510 7501
7511 // Builtins global object which holds the runtime routines written in
7512 // JavaScript.
7513 class JSBuiltinsObject: public GlobalObject {
7514 public:
7515 DECLARE_CAST(JSBuiltinsObject)
7516
7517 // Dispatched behavior.
7518 DECLARE_PRINTER(JSBuiltinsObject)
7519 DECLARE_VERIFIER(JSBuiltinsObject)
7520
7521 // Layout description.
7522 static const int kSize = GlobalObject::kHeaderSize;
7523
7524 private:
7525 DISALLOW_IMPLICIT_CONSTRUCTORS(JSBuiltinsObject);
7526 };
7527
7528
7529 // Representation for JS Wrapper objects, String, Number, Boolean, etc. 7502 // Representation for JS Wrapper objects, String, Number, Boolean, etc.
7530 class JSValue: public JSObject { 7503 class JSValue: public JSObject {
7531 public: 7504 public:
7532 // [value]: the object being wrapped. 7505 // [value]: the object being wrapped.
7533 DECL_ACCESSORS(value, Object) 7506 DECL_ACCESSORS(value, Object)
7534 7507
7535 DECLARE_CAST(JSValue) 7508 DECLARE_CAST(JSValue)
7536 7509
7537 // Dispatched behavior. 7510 // Dispatched behavior.
7538 DECLARE_PRINTER(JSValue) 7511 DECLARE_PRINTER(JSValue)
(...skipping 3301 matching lines...) Expand 10 before | Expand all | Expand 10 after
10840 // (elements + properties) in the current level. 10813 // (elements + properties) in the current level.
10841 int levelLength_ = 0; 10814 int levelLength_ = 0;
10842 10815
10843 DISALLOW_COPY_AND_ASSIGN(KeyAccumulator); 10816 DISALLOW_COPY_AND_ASSIGN(KeyAccumulator);
10844 }; 10817 };
10845 10818
10846 } // NOLINT, false-positive due to second-order macros. 10819 } // NOLINT, false-positive due to second-order macros.
10847 } // NOLINT, false-positive due to second-order macros. 10820 } // NOLINT, false-positive due to second-order macros.
10848 10821
10849 #endif // V8_OBJECTS_H_ 10822 #endif // V8_OBJECTS_H_
OLDNEW
« src/bootstrapper.cc ('K') | « src/js/json.js ('k') | src/objects-debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698