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

Unified Diff: src/objects.h

Issue 996133002: correctly invalidate global cells (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: cleanup Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/lookup.cc ('k') | src/objects.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/objects.h
diff --git a/src/objects.h b/src/objects.h
index c42e0e134b1e69b6f79e4779ad3e4f5429405d3e..ccc36639b2fd214899adfdb21bd62f0152b957fe 100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -9726,44 +9726,33 @@ class Cell: public HeapObject {
class PropertyCell: public Cell {
public:
- // [type]: type of the global property.
- HeapType* type();
- void set_type(HeapType* value, WriteBarrierMode mode = UPDATE_WRITE_BARRIER);
-
// [dependent_code]: dependent code that depends on the type of the global
// property.
DECL_ACCESSORS(dependent_code, DependentCode)
- // Sets the value of the cell and updates the type field to be the union
- // of the cell's current type and the value's type. If the change causes
- // a change of the type of the cell's contents, code dependent on the cell
- // will be deoptimized.
- // Usually returns the value that was passed in, but may perform
- // non-observable modifications on it, such as internalize strings.
- static Handle<Object> SetValueInferType(Handle<PropertyCell> cell,
- Handle<Object> value);
-
// Computes the new type of the cell's contents for the given value, but
- // without actually modifying the 'type' field.
- static Handle<HeapType> UpdatedType(Handle<PropertyCell> cell,
- Handle<Object> value);
+ // without actually modifying the details.
+ static PropertyCellType UpdatedType(Handle<PropertyCell> cell,
+ Handle<Object> value,
+ PropertyDetails details);
+ static Handle<Object> UpdateCell(Handle<NameDictionary> dictionary, int entry,
+ Handle<Object> value,
+ PropertyDetails details);
+
+ static Handle<PropertyCell> InvalidateEntry(Handle<NameDictionary> dictionary,
+ int entry);
static void AddDependentCompilationInfo(Handle<PropertyCell> cell,
CompilationInfo* info);
DECLARE_CAST(PropertyCell)
- inline Address TypeAddress() {
- return address() + kTypeOffset;
- }
-
// Dispatched behavior.
DECLARE_PRINTER(PropertyCell)
DECLARE_VERIFIER(PropertyCell)
// Layout description.
- static const int kTypeOffset = kValueOffset + kPointerSize;
- static const int kDependentCodeOffset = kTypeOffset + kPointerSize;
+ static const int kDependentCodeOffset = kValueOffset + kPointerSize;
static const int kSize = kDependentCodeOffset + kPointerSize;
static const int kPointerFieldsBeginOffset = kValueOffset;
@@ -9774,7 +9763,6 @@ class PropertyCell: public Cell {
kSize> BodyDescriptor;
private:
- DECL_ACCESSORS(type_raw, Object)
DISALLOW_IMPLICIT_CONSTRUCTORS(PropertyCell);
};
« no previous file with comments | « src/lookup.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698