Index: src/x64/full-codegen-x64.cc |
=================================================================== |
--- src/x64/full-codegen-x64.cc (revision 6540) |
+++ src/x64/full-codegen-x64.cc (working copy) |
@@ -1218,7 +1218,13 @@ |
__ push(FieldOperand(rdi, JSFunction::kLiteralsOffset)); |
__ Push(Smi::FromInt(expr->literal_index())); |
__ Push(expr->constant_properties()); |
- __ Push(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 { |
@@ -1286,6 +1292,12 @@ |
} |
} |
+ if (expr->has_function()) { |
+ ASSERT(result_saved); |
+ __ push(Operand(esp, 0)); |
+ __ CallRuntime(Runtime::kToFastProperties, 1); |
+ } |
+ |
if (result_saved) { |
context()->PlugTOS(); |
} else { |