| Index: src/hydrogen-instructions.h
|
| ===================================================================
|
| --- src/hydrogen-instructions.h (revision 7281)
|
| +++ src/hydrogen-instructions.h (working copy)
|
| @@ -156,6 +156,7 @@
|
| V(Sub) \
|
| V(Test) \
|
| V(Throw) \
|
| + V(ToFastProperties) \
|
| V(Typeof) \
|
| V(TypeofIs) \
|
| V(UnaryMathOperation) \
|
| @@ -3382,10 +3383,12 @@
|
| Handle<FixedArray> constant_properties,
|
| bool fast_elements,
|
| int literal_index,
|
| - int depth)
|
| + int depth,
|
| + bool has_function)
|
| : HMaterializedLiteral<1>(literal_index, depth),
|
| constant_properties_(constant_properties),
|
| - fast_elements_(fast_elements) {
|
| + fast_elements_(fast_elements),
|
| + has_function_(has_function) {
|
| SetOperandAt(0, context);
|
| }
|
|
|
| @@ -3394,6 +3397,7 @@
|
| return constant_properties_;
|
| }
|
| bool fast_elements() const { return fast_elements_; }
|
| + bool has_function() const { return has_function_; }
|
|
|
| virtual Representation RequiredInputRepresentation(int index) const {
|
| return Representation::Tagged();
|
| @@ -3404,6 +3408,7 @@
|
| private:
|
| Handle<FixedArray> constant_properties_;
|
| bool fast_elements_;
|
| + bool has_function_;
|
| };
|
|
|
|
|
| @@ -3467,6 +3472,24 @@
|
| };
|
|
|
|
|
| +class HToFastProperties: public HUnaryOperation {
|
| + public:
|
| + explicit HToFastProperties(HValue* value) : HUnaryOperation(value) {
|
| + // This instruction is not marked as having side effects, but
|
| + // changes the map of the input operand. Use it only when creating
|
| + // object literals.
|
| + ASSERT(value->IsObjectLiteral());
|
| + set_representation(Representation::Tagged());
|
| + }
|
| +
|
| + virtual Representation RequiredInputRepresentation(int index) const {
|
| + return Representation::Tagged();
|
| + }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(ToFastProperties, "to_fast_properties")
|
| +};
|
| +
|
| +
|
| class HValueOf: public HUnaryOperation {
|
| public:
|
| explicit HValueOf(HValue* value) : HUnaryOperation(value) {
|
|
|