OLD | NEW |
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 5972 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5983 | 5983 |
5984 // [prototype_users]: WeakFixedArray containing maps using this prototype, | 5984 // [prototype_users]: WeakFixedArray containing maps using this prototype, |
5985 // or Smi(0) if uninitialized. | 5985 // or Smi(0) if uninitialized. |
5986 DECL_ACCESSORS(prototype_users, Object) | 5986 DECL_ACCESSORS(prototype_users, Object) |
5987 // [registry_slot]: Slot in prototype's user registry where this user | 5987 // [registry_slot]: Slot in prototype's user registry where this user |
5988 // is stored. Returns UNREGISTERED if this prototype has not been registered. | 5988 // is stored. Returns UNREGISTERED if this prototype has not been registered. |
5989 inline int registry_slot() const; | 5989 inline int registry_slot() const; |
5990 inline void set_registry_slot(int slot); | 5990 inline void set_registry_slot(int slot); |
5991 // [validity_cell]: Cell containing the validity bit for prototype chains | 5991 // [validity_cell]: Cell containing the validity bit for prototype chains |
5992 // going through this object, or Smi(0) if uninitialized. | 5992 // going through this object, or Smi(0) if uninitialized. |
| 5993 // When a prototype object changes its map, then both its own validity cell |
| 5994 // and those of all "downstream" prototypes are invalidated; handlers for a |
| 5995 // given receiver embed the currently valid cell for that receiver's prototype |
| 5996 // during their compilation and check it on execution. |
5993 DECL_ACCESSORS(validity_cell, Object) | 5997 DECL_ACCESSORS(validity_cell, Object) |
5994 // [constructor_name]: User-friendly name of the original constructor. | 5998 // [constructor_name]: User-friendly name of the original constructor. |
5995 DECL_ACCESSORS(constructor_name, Object) | 5999 DECL_ACCESSORS(constructor_name, Object) |
5996 | 6000 |
5997 DECLARE_CAST(PrototypeInfo) | 6001 DECLARE_CAST(PrototypeInfo) |
5998 | 6002 |
5999 // Dispatched behavior. | 6003 // Dispatched behavior. |
6000 DECLARE_PRINTER(PrototypeInfo) | 6004 DECLARE_PRINTER(PrototypeInfo) |
6001 DECLARE_VERIFIER(PrototypeInfo) | 6005 DECLARE_VERIFIER(PrototypeInfo) |
6002 | 6006 |
(...skipping 4570 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10573 | 10577 |
10574 Isolate* isolate_; | 10578 Isolate* isolate_; |
10575 Handle<FixedArray> keys_; | 10579 Handle<FixedArray> keys_; |
10576 Handle<OrderedHashSet> set_; | 10580 Handle<OrderedHashSet> set_; |
10577 int length_; | 10581 int length_; |
10578 DISALLOW_COPY_AND_ASSIGN(KeyAccumulator); | 10582 DISALLOW_COPY_AND_ASSIGN(KeyAccumulator); |
10579 }; | 10583 }; |
10580 } } // namespace v8::internal | 10584 } } // namespace v8::internal |
10581 | 10585 |
10582 #endif // V8_OBJECTS_H_ | 10586 #endif // V8_OBJECTS_H_ |
OLD | NEW |