| Index: src/ia32/full-codegen-ia32.cc
|
| ===================================================================
|
| --- src/ia32/full-codegen-ia32.cc (revision 6540)
|
| +++ src/ia32/full-codegen-ia32.cc (working copy)
|
| @@ -1327,7 +1327,13 @@
|
| __ push(FieldOperand(edi, JSFunction::kLiteralsOffset));
|
| __ push(Immediate(Smi::FromInt(expr->literal_index())));
|
| __ push(Immediate(expr->constant_properties()));
|
| - __ push(Immediate(Smi::FromInt(expr->fast_elements() ? 1 : 0)));
|
| + int flags = expr->fast_elements()
|
| + ? ObjectLiteral::kFastElements
|
| + : ObjectLiteral::kNoFlags;
|
| + flags |= expr->has_function()
|
| + ? ObjectLiteral::kHasFunction
|
| + : ObjectLiteral::kNoFlags;
|
| + __ push(Immediate(Smi::FromInt(flags)));
|
| if (expr->depth() > 1) {
|
| __ CallRuntime(Runtime::kCreateObjectLiteral, 4);
|
| } else {
|
| @@ -1396,6 +1402,12 @@
|
| }
|
| }
|
|
|
| + if (expr->has_function()) {
|
| + ASSERT(result_saved);
|
| + __ push(Operand(esp, 0));
|
| + __ CallRuntime(Runtime::kToFastProperties, 1);
|
| + }
|
| +
|
| if (result_saved) {
|
| context()->PlugTOS();
|
| } else {
|
|
|