Index: src/ia32/lithium-codegen-ia32.cc |
=================================================================== |
--- src/ia32/lithium-codegen-ia32.cc (revision 7281) |
+++ src/ia32/lithium-codegen-ia32.cc (working copy) |
@@ -3676,7 +3676,13 @@ |
__ push(FieldOperand(eax, JSFunction::kLiteralsOffset)); |
__ push(Immediate(Smi::FromInt(instr->hydrogen()->literal_index()))); |
__ push(Immediate(instr->hydrogen()->constant_properties())); |
- __ push(Immediate(Smi::FromInt(instr->hydrogen()->fast_elements() ? 1 : 0))); |
+ int flags = instr->hydrogen()->fast_elements() |
+ ? ObjectLiteral::kFastElements |
+ : ObjectLiteral::kNoFlags; |
+ flags |= instr->hydrogen()->has_function() |
+ ? ObjectLiteral::kHasFunction |
+ : ObjectLiteral::kNoFlags; |
+ __ push(Immediate(Smi::FromInt(flags))); |
// Pick the right runtime function to call. |
if (instr->hydrogen()->depth() > 1) { |
@@ -3687,6 +3693,13 @@ |
} |
+void LCodeGen::DoToFastProperties(LToFastProperties* instr) { |
+ ASSERT(ToRegister(instr->InputAt(0)).is(eax)); |
+ __ push(eax); |
+ CallRuntime(Runtime::kToFastProperties, 1, instr); |
+} |
+ |
+ |
void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) { |
NearLabel materialized; |
// Registers will be used as follows: |