| Index: src/hydrogen-instructions.h
|
| ===================================================================
|
| --- src/hydrogen-instructions.h (revision 11394)
|
| +++ src/hydrogen-instructions.h (working copy)
|
| @@ -1460,7 +1460,7 @@
|
|
|
| class HThisFunction: public HTemplateInstruction<0> {
|
| public:
|
| - explicit HThisFunction(Handle<JSFunction> closure) : closure_(closure) {
|
| + HThisFunction() {
|
| set_representation(Representation::Tagged());
|
| SetFlag(kUseGVN);
|
| }
|
| @@ -1469,18 +1469,10 @@
|
| return Representation::None();
|
| }
|
|
|
| - Handle<JSFunction> closure() const { return closure_; }
|
| -
|
| DECLARE_CONCRETE_INSTRUCTION(ThisFunction)
|
|
|
| protected:
|
| - virtual bool DataEquals(HValue* other) {
|
| - HThisFunction* b = HThisFunction::cast(other);
|
| - return *closure() == *b->closure();
|
| - }
|
| -
|
| - private:
|
| - Handle<JSFunction> closure_;
|
| + virtual bool DataEquals(HValue* other) { return true; }
|
| };
|
|
|
|
|
| @@ -4569,10 +4561,12 @@
|
| Handle<HeapObject> boilerplate_object,
|
| int length,
|
| int literal_index,
|
| - int depth)
|
| + int depth,
|
| + Handle<FixedArray> constant_elements)
|
| : HMaterializedLiteral<1>(literal_index, depth),
|
| length_(length),
|
| - boilerplate_object_(boilerplate_object) {
|
| + boilerplate_object_(boilerplate_object),
|
| + constant_elements_(constant_elements) {
|
| SetOperandAt(0, context);
|
| SetGVNFlag(kChangesNewSpacePromotion);
|
| }
|
| @@ -4585,6 +4579,7 @@
|
| return Handle<JSObject>::cast(boilerplate_object_)->GetElementsKind();
|
| }
|
| Handle<HeapObject> boilerplate_object() const { return boilerplate_object_; }
|
| + Handle<FixedArray> constant_elements() const { return constant_elements_; }
|
| int length() const { return length_; }
|
|
|
| bool IsCopyOnWrite() const;
|
| @@ -4599,6 +4594,7 @@
|
| private:
|
| int length_;
|
| Handle<HeapObject> boilerplate_object_;
|
| + Handle<FixedArray> constant_elements_;
|
| };
|
|
|
|
|
|
|