| Index: src/ia32/lithium-codegen-ia32.cc
|
| ===================================================================
|
| --- src/ia32/lithium-codegen-ia32.cc (revision 6540)
|
| +++ src/ia32/lithium-codegen-ia32.cc (working copy)
|
| @@ -3346,7 +3346,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) {
|
| @@ -3357,6 +3363,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:
|
|
|