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

Side by Side Diff: src/objects.h

Issue 373183002: Support ES6 Map and Set in heap profiler (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fixed comment Created 6 years, 5 months 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 | Annotate | Revision Log
« no previous file with comments | « src/heap-snapshot-generator.cc ('k') | src/objects-inl.h » ('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 "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/assert-scope.h" 9 #include "src/assert-scope.h"
10 #include "src/builtins.h" 10 #include "src/builtins.h"
(...skipping 24 matching lines...) Expand all
35 // - Object 35 // - Object
36 // - Smi (immediate small integer) 36 // - Smi (immediate small integer)
37 // - HeapObject (superclass for everything allocated in the heap) 37 // - HeapObject (superclass for everything allocated in the heap)
38 // - JSReceiver (suitable for property access) 38 // - JSReceiver (suitable for property access)
39 // - JSObject 39 // - JSObject
40 // - JSArray 40 // - JSArray
41 // - JSArrayBuffer 41 // - JSArrayBuffer
42 // - JSArrayBufferView 42 // - JSArrayBufferView
43 // - JSTypedArray 43 // - JSTypedArray
44 // - JSDataView 44 // - JSDataView
45 // - JSSet 45 // - JSCollection
46 // - JSMap 46 // - JSSet
47 // - JSMap
47 // - JSSetIterator 48 // - JSSetIterator
48 // - JSMapIterator 49 // - JSMapIterator
49 // - JSWeakCollection 50 // - JSWeakCollection
50 // - JSWeakMap 51 // - JSWeakMap
51 // - JSWeakSet 52 // - JSWeakSet
52 // - JSRegExp 53 // - JSRegExp
53 // - JSFunction 54 // - JSFunction
54 // - JSGeneratorObject 55 // - JSGeneratorObject
55 // - JSModule 56 // - JSModule
56 // - GlobalObject 57 // - GlobalObject
(...skipping 10000 matching lines...) Expand 10 before | Expand all | Expand 10 after
10057 10058
10058 typedef FixedBodyDescriptor<kHandlerOffset, 10059 typedef FixedBodyDescriptor<kHandlerOffset,
10059 kConstructTrapOffset + kPointerSize, 10060 kConstructTrapOffset + kPointerSize,
10060 kSize> BodyDescriptor; 10061 kSize> BodyDescriptor;
10061 10062
10062 private: 10063 private:
10063 DISALLOW_IMPLICIT_CONSTRUCTORS(JSFunctionProxy); 10064 DISALLOW_IMPLICIT_CONSTRUCTORS(JSFunctionProxy);
10064 }; 10065 };
10065 10066
10066 10067
10068 class JSCollection : public JSObject {
10069 public:
10070 // [table]: the backing hash table
10071 DECL_ACCESSORS(table, Object)
10072
10073 static const int kTableOffset = JSObject::kHeaderSize;
10074 static const int kSize = kTableOffset + kPointerSize;
10075
10076 private:
10077 DISALLOW_IMPLICIT_CONSTRUCTORS(JSCollection);
10078 };
10079
10080
10067 // The JSSet describes EcmaScript Harmony sets 10081 // The JSSet describes EcmaScript Harmony sets
10068 class JSSet: public JSObject { 10082 class JSSet : public JSCollection {
10069 public: 10083 public:
10070 // [set]: the backing hash set containing keys.
10071 DECL_ACCESSORS(table, Object)
10072
10073 DECLARE_CAST(JSSet) 10084 DECLARE_CAST(JSSet)
10074 10085
10075 // Dispatched behavior. 10086 // Dispatched behavior.
10076 DECLARE_PRINTER(JSSet) 10087 DECLARE_PRINTER(JSSet)
10077 DECLARE_VERIFIER(JSSet) 10088 DECLARE_VERIFIER(JSSet)
10078 10089
10079 static const int kTableOffset = JSObject::kHeaderSize;
10080 static const int kSize = kTableOffset + kPointerSize;
10081
10082 private: 10090 private:
10083 DISALLOW_IMPLICIT_CONSTRUCTORS(JSSet); 10091 DISALLOW_IMPLICIT_CONSTRUCTORS(JSSet);
10084 }; 10092 };
10085 10093
10086 10094
10087 // The JSMap describes EcmaScript Harmony maps 10095 // The JSMap describes EcmaScript Harmony maps
10088 class JSMap: public JSObject { 10096 class JSMap : public JSCollection {
10089 public: 10097 public:
10090 // [table]: the backing hash table mapping keys to values.
10091 DECL_ACCESSORS(table, Object)
10092
10093 DECLARE_CAST(JSMap) 10098 DECLARE_CAST(JSMap)
10094 10099
10095 // Dispatched behavior. 10100 // Dispatched behavior.
10096 DECLARE_PRINTER(JSMap) 10101 DECLARE_PRINTER(JSMap)
10097 DECLARE_VERIFIER(JSMap) 10102 DECLARE_VERIFIER(JSMap)
10098 10103
10099 static const int kTableOffset = JSObject::kHeaderSize;
10100 static const int kSize = kTableOffset + kPointerSize;
10101
10102 private: 10104 private:
10103 DISALLOW_IMPLICIT_CONSTRUCTORS(JSMap); 10105 DISALLOW_IMPLICIT_CONSTRUCTORS(JSMap);
10104 }; 10106 };
10105 10107
10106 10108
10107 // OrderedHashTableIterator is an iterator that iterates over the keys and 10109 // OrderedHashTableIterator is an iterator that iterates over the keys and
10108 // values of an OrderedHashTable. 10110 // values of an OrderedHashTable.
10109 // 10111 //
10110 // The iterator has a reference to the underlying OrderedHashTable data, 10112 // The iterator has a reference to the underlying OrderedHashTable data,
10111 // [table], as well as the current [index] the iterator is at. 10113 // [table], as well as the current [index] the iterator is at.
(...skipping 1103 matching lines...) Expand 10 before | Expand all | Expand 10 after
11215 } else { 11217 } else {
11216 value &= ~(1 << bit_position); 11218 value &= ~(1 << bit_position);
11217 } 11219 }
11218 return value; 11220 return value;
11219 } 11221 }
11220 }; 11222 };
11221 11223
11222 } } // namespace v8::internal 11224 } } // namespace v8::internal
11223 11225
11224 #endif // V8_OBJECTS_H_ 11226 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/heap-snapshot-generator.cc ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698