Index: src/x64/full-codegen-x64.cc |
=================================================================== |
--- src/x64/full-codegen-x64.cc (revision 7281) |
+++ src/x64/full-codegen-x64.cc (working copy) |
@@ -1361,7 +1361,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(Smi::FromInt(flags)); |
if (expr->depth() > 1) { |
__ CallRuntime(Runtime::kCreateObjectLiteral, 4); |
} else { |
@@ -1431,6 +1437,12 @@ |
} |
} |
+ if (expr->has_function()) { |
+ ASSERT(result_saved); |
+ __ push(Operand(rsp, 0)); |
+ __ CallRuntime(Runtime::kToFastProperties, 1); |
+ } |
+ |
if (result_saved) { |
context()->PlugTOS(); |
} else { |