Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 231b69440299dadb7837501a03658534aa764c47..c9ff22facd6d01480925eacc439e76a0aede8467 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -1886,9 +1886,16 @@ class JSObject: public JSReceiver { |
// Handles the special representation of JS global objects. |
Object* GetNormalizedProperty(LookupResult* result); |
+ // Sets the property value in a normalized object given (key, value). |
+ // Handles the special representation of JS global objects. |
+ static Handle<Object> SetNormalizedProperty(Handle<JSObject> object, |
+ LookupResult* result, |
+ Handle<Object> value); |
+ |
// Sets the property value in a normalized object given a lookup result. |
// Handles the special representation of JS global objects. |
- Object* SetNormalizedProperty(LookupResult* result, Object* value); |
+ MUST_USE_RESULT MaybeObject* SetNormalizedProperty(LookupResult* result, |
+ Object* value); |
// Sets the property value in a normalized object given (key, value, details). |
// Handles the special representation of JS global objects. |
@@ -8583,6 +8590,14 @@ class PropertyCell: public Cell { |
// 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. |
+ MUST_USE_RESULT MaybeObject* SetValueInferType( |
+ Object* value, |
+ WriteBarrierMode mode = UPDATE_WRITE_BARRIER); |
+ |
// Casting. |
static inline PropertyCell* cast(Object* obj); |
@@ -8610,6 +8625,9 @@ class PropertyCell: public Cell { |
void AddDependentCode(Handle<Code> code); |
+ static Type* UpdateType(Handle<PropertyCell> cell, |
+ Handle<Object> value); |
+ |
private: |
DECL_ACCESSORS(type_raw, Object) |
DISALLOW_IMPLICIT_CONSTRUCTORS(PropertyCell); |