| Index: src/hydrogen-instructions.h
|
| ===================================================================
|
| --- src/hydrogen-instructions.h (revision 9445)
|
| +++ src/hydrogen-instructions.h (working copy)
|
| @@ -3201,15 +3201,15 @@
|
|
|
| class HLoadGlobalCell: public HTemplateInstruction<0> {
|
| public:
|
| - HLoadGlobalCell(Handle<JSGlobalPropertyCell> cell, bool check_hole_value)
|
| - : cell_(cell), check_hole_value_(check_hole_value) {
|
| + HLoadGlobalCell(Handle<JSGlobalPropertyCell> cell, PropertyDetails details)
|
| + : cell_(cell), details_(details) {
|
| set_representation(Representation::Tagged());
|
| SetFlag(kUseGVN);
|
| SetFlag(kDependsOnGlobalVars);
|
| }
|
|
|
| Handle<JSGlobalPropertyCell> cell() const { return cell_; }
|
| - bool check_hole_value() const { return check_hole_value_; }
|
| + bool RequiresHoleCheck();
|
|
|
| virtual void PrintDataTo(StringStream* stream);
|
|
|
| @@ -3232,7 +3232,7 @@
|
|
|
| private:
|
| Handle<JSGlobalPropertyCell> cell_;
|
| - bool check_hole_value_;
|
| + PropertyDetails details_;
|
| };
|
|
|
|
|
| @@ -3273,15 +3273,17 @@
|
| public:
|
| HStoreGlobalCell(HValue* value,
|
| Handle<JSGlobalPropertyCell> cell,
|
| - bool check_hole_value)
|
| + PropertyDetails details)
|
| : HUnaryOperation(value),
|
| cell_(cell),
|
| - check_hole_value_(check_hole_value) {
|
| + details_(details) {
|
| SetFlag(kChangesGlobalVars);
|
| }
|
|
|
| Handle<JSGlobalPropertyCell> cell() const { return cell_; }
|
| - bool check_hole_value() const { return check_hole_value_; }
|
| + bool RequiresHoleCheck() {
|
| + return !details_.IsDontDelete() || details_.IsReadOnly();
|
| + }
|
|
|
| virtual Representation RequiredInputRepresentation(int index) const {
|
| return Representation::Tagged();
|
| @@ -3292,7 +3294,7 @@
|
|
|
| private:
|
| Handle<JSGlobalPropertyCell> cell_;
|
| - bool check_hole_value_;
|
| + PropertyDetails details_;
|
| };
|
|
|
|
|
| @@ -3543,7 +3545,7 @@
|
|
|
| virtual void PrintDataTo(StringStream* stream);
|
|
|
| - bool RequiresHoleCheck() const;
|
| + bool RequiresHoleCheck();
|
|
|
| DECLARE_CONCRETE_INSTRUCTION(LoadKeyedFastElement)
|
|
|
| @@ -3574,8 +3576,6 @@
|
|
|
| virtual void PrintDataTo(StringStream* stream);
|
|
|
| - bool RequiresHoleCheck() const;
|
| -
|
| DECLARE_CONCRETE_INSTRUCTION(LoadKeyedFastDoubleElement)
|
|
|
| protected:
|
|
|