| Index: src/arm/full-codegen-arm.cc
|
| ===================================================================
|
| --- src/arm/full-codegen-arm.cc (revision 7281)
|
| +++ src/arm/full-codegen-arm.cc (working copy)
|
| @@ -1397,7 +1397,13 @@
|
| __ ldr(r3, FieldMemOperand(r3, JSFunction::kLiteralsOffset));
|
| __ mov(r2, Operand(Smi::FromInt(expr->literal_index())));
|
| __ mov(r1, Operand(expr->constant_properties()));
|
| - __ mov(r0, Operand(Smi::FromInt(expr->fast_elements() ? 1 : 0)));
|
| + int flags = expr->fast_elements()
|
| + ? ObjectLiteral::kFastElements
|
| + : ObjectLiteral::kNoFlags;
|
| + flags |= expr->has_function()
|
| + ? ObjectLiteral::kHasFunction
|
| + : ObjectLiteral::kNoFlags;
|
| + __ mov(r0, Operand(Smi::FromInt(flags)));
|
| __ Push(r3, r2, r1, r0);
|
| if (expr->depth() > 1) {
|
| __ CallRuntime(Runtime::kCreateObjectLiteral, 4);
|
| @@ -1476,6 +1482,13 @@
|
| }
|
| }
|
|
|
| + if (expr->has_function()) {
|
| + ASSERT(result_saved);
|
| + __ ldr(r0, MemOperand(sp));
|
| + __ push(r0);
|
| + __ CallRuntime(Runtime::kToFastProperties, 1);
|
| + }
|
| +
|
| if (result_saved) {
|
| context()->PlugTOS();
|
| } else {
|
|
|